From df9cecbabf6c0a3cb25fb1c8e5208150e4599416 Mon Sep 17 00:00:00 2001 From: daniel nava Date: Tue, 29 Sep 2015 11:26:22 -0500 Subject: [PATCH 01/18] =?UTF-8?q?Se=20agreg=C3=B3=20passport=20para=20soci?= =?UTF-8?q?al=20login,=20conecta=20pero=20falta=20tomar=20los=20valores=20?= =?UTF-8?q?del=20usuario?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 17 + app.js | 9 + models/User.js | 53 ++-- package.json | 22 +- passport.js | 89 ++++++ public/stylesheets/style.css | 530 +++++++++++++++++++++++++++++++- routes/index.js | 47 ++- views/Header/style.styl | 9 +- views/daniel.jade | 5 - views/layout.jade | 2 +- views/login.jade | 21 ++ views/passport.js | 88 ++++++ views/styles/style-fuentes.styl | 28 ++ views/styles/style.styl | 129 ++++++++ 14 files changed, 1002 insertions(+), 47 deletions(-) create mode 100644 .gitignore create mode 100644 passport.js delete mode 100644 views/daniel.jade create mode 100644 views/login.jade create mode 100644 views/passport.js create mode 100644 views/styles/style-fuentes.styl create mode 100644 views/styles/style.styl diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bf02f17 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +node_modules +config.js + +lib-cov +*.seed +*.log +*.csv +*.dat +*.out +*.pid +*.gz + +pids +logs +results + +npm-debug.log diff --git a/app.js b/app.js index 972efa8..e1d1e54 100644 --- a/app.js +++ b/app.js @@ -4,10 +4,14 @@ var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); +var passport = require('passport'); //PASSPORT + var routes = require('./routes/index'); var users = require('./routes/users'); +require('./passport')(passport); + var app = express(); // view engine setup @@ -22,6 +26,11 @@ app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); +//Inicializa PASSPORT +app.use(passport.initialize()); +app.use(passport.session()); + +//Enrutador app.use('/', routes); //app.use('/daniel', routes); app.use('/users', users); diff --git a/models/User.js b/models/User.js index 90b081d..60116e9 100644 --- a/models/User.js +++ b/models/User.js @@ -1,25 +1,40 @@ var db = require('../lib/db'); -var UserSchema = new db.Schema({ - username : {type: String, unique: true}, - password : String +// var UserSchema = new db.Schema({ +// username : {type: String, unique: true}, +// password : String +// +// }) +// +// var MyUser = db.mongoose.model('User', UserSchema); + +//module.exports.addUser = addUser; -}) +// function addUser(username, password, callback) { +// var instance = new MyUser(); +// instance.username = username; +// instance.password = password; +// instance.save(function(err) { +// if (err) { +// callback(err); +// } +// else { +// callback(null, instance); +// } +// }) +// } -var MyUser = db.mongoose.model('User', UserSchema); -module.exports.addUser = addUser; +//PASSPORT TUTO +// Campos que vamos a guardar en la base de datos +var UserSchema = new db.Schema({ + name : String, // Nombre del usuario + //provider : String, // Cuenta del usuario (Twitter o Facebook en este ejemplo) + provider_id : {type: String, unique: true}, // ID que proporciona Twitter o Facebook + photo : String, // Avatar o foto del usuario + createdAt : {type: Date, default: Date.now} // Fecha de creación +}); -function addUser(username, password, callback) { - var instance = new MyUser(); - instance.username = username; - instance.password = password; - instance.save(function(err) { - if (err) { - callback(err); - } - else { - callback(null, instance); - } - }) -} +// Exportamos el modelo 'User' para usarlo en otras +// partes de la aplicación +var User = db.mongoose.model('User', UserSchema); diff --git a/package.json b/package.json index d4bb947..51c3e9d 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,21 @@ "version": "0.0.0", "private": true, "scripts": { - "start": "nodemon ./bin/www" + "start": "nodemon ./bin/www", + "jade": "jade --watch --pretty lib/index.jade lib/form.jade --out ./public", + "stylus": "stylus --use nib --watch ./views/styles --out ./public/stylesheets", + "babel": "babel --watch lib --out-dir public" }, + "repository": { + "type": "git", + "url": "git+https://github.com/NerdStudio/webadmin.git" + }, + "author": "Nerd Studio", + "license": "ISC", + "bugs": { + "url": "https://github.com/NerdStudio/webadmin/issues" + }, + "homepage": "https://github.com/NerdStudio/webadmin#readme", "dependencies": { "body-parser": "~1.12.0", "cookie-parser": "~1.3.4", @@ -13,6 +26,11 @@ "jade": "~1.9.2", "morgan": "~1.5.1", "serve-favicon": "~2.2.0", - "mongoose": "~4.1.8" + "mongoose": "~4.1.8", + "normalize-styl": "~3.0.3", + "nib": "~1.1.0", + "passport": "~0.3.0", + "passport-facebook": "~2.0.0", + "passport-twitter": "~1.0.3" } } diff --git a/passport.js b/passport.js new file mode 100644 index 0000000..9be975d --- /dev/null +++ b/passport.js @@ -0,0 +1,89 @@ +var mongoose = require('mongoose'); +var db = require('./lib/db'); +var User = db.mongoose.model('User'); +// Estrategia de autenticación con Twitter +var TwitterStrategy = require('passport-twitter').Strategy; +// Estrategia de autenticación con Facebook +var FacebookStrategy = require('passport-facebook').Strategy; +// Fichero de configuración donde se encuentran las API keys +// Este archivo no debe subirse a GitHub ya que contiene datos +// que pueden comprometer la seguridad de la aplicación. +var config = require('./config'); + +// Exportamos como módulo las funciones de passport, de manera que +// podamos utilizarlas en otras partes de la aplicación. +// De esta manera, mantenemos el código separado en varios archivos +// logrando que sea más manejable. +module.exports = function(passport) { + + // Serializa al usuario para almacenarlo en la sesión + passport.serializeUser(function(user, done) { + done(null, user); + }); + + // Deserializa el objeto usuario almacenado en la sesión para + // poder utilizarlo + passport.deserializeUser(function(obj, done) { + done(null, obj); + }); + + // Configuración del autenticado con Twitter + passport.use(new TwitterStrategy({ + consumerKey : config.twitter.key, + consumerSecret : config.twitter.secret, + callbackURL : '/auth/twitter/callback' + }, function(accessToken, refreshToken, profile, done) { + // Busca en la base de datos si el usuario ya se autenticó en otro + // momento y ya está almacenado en ella + User.findOne({provider_id: profile.id}, function(err, user) { + if(err) throw(err); + // Si existe en la Base de Datos, lo devuelve + if(!err && user!= null) return done(null, user); + + // Si no existe crea un nuevo objecto usuario + var user = new User({ + provider_id : profile.id, + provider : profile.provider, + name : profile.displayName, + photo : profile.photos[0].value + }); + //...y lo almacena en la base de datos + user.save(function(err) { + if(err) throw err; + done(null, user); + }); + }); + })); + + // Configuración del autenticado con Facebook + passport.use(new FacebookStrategy({ + clientID : config.facebook.key, + clientSecret : config.facebook.secret, + callbackURL : '/auth/facebook/callback', + profileFields : ['id', 'displayName', /*'provider',*/ 'photos'] + }, function(accessToken, refreshToken, profile, done) { + // El campo 'profileFields' nos permite que los campos que almacenamos + // se llamen igual tanto para si el usuario se autentica por Twitter o + // por Facebook, ya que cada proveedor entrega los datos en el JSON con + // un nombre diferente. + // Passport esto lo sabe y nos lo pone más sencillo con ese campo + User.findOne({provider_id: profile.id}, function(err, user) { + if(err) throw(err); + if(!err && user!= null) return done(null, user); + + // Al igual que antes, si el usuario ya existe lo devuelve + // y si no, lo crea y salva en la base de datos + var user = new User({ + provider_id : profile.id, + provider : profile.provider, + name : profile.displayName, + photo : profile.photos[0].value + }); + user.save(function(err) { + if(err) throw err; + done(null, user); + }); + }); + })); + +}; diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css index 30e047d..2b2df16 100644 --- a/public/stylesheets/style.css +++ b/public/stylesheets/style.css @@ -1,8 +1,528 @@ +/* normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} body { - padding: 50px; - font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; + margin: 0; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} +audio:not([controls]) { + display: none; + height: 0; +} +[hidden], +template { + display: none; } - a { - color: #00B7FF; -} \ No newline at end of file + background-color: transparent; +} +a:active, +a:hover { + outline: 0; +} +abbr[title] { + border-bottom: 1px dotted; +} +b, +strong { + font-weight: bold; +} +dfn { + font-style: italic; +} +h1 { + font-size: 2em; + margin: 0.67em 0; +} +mark { + background: #ff0; + color: #000; +} +small { + font-size: 80%; +} +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + border: 0; +} +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 1em 40px; +} +hr { + box-sizing: content-box; + height: 0; +} +pre { + overflow: auto; +} +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + margin: 0; +} +button { + overflow: visible; +} +button, +select { + text-transform: none; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +button[disabled], +html input[disabled] { + cursor: default; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} +input { + line-height: normal; +} +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + padding: 0; +} +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +input[type="search"] { + -webkit-appearance: textfield; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +legend { + border: 0; + padding: 0; +} +textarea { + overflow: auto; +} +optgroup { + font-weight: bold; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +td, +th { + padding: 0; +} +.bg-primary { + background-color: rgba(26,35,126,0.7); +} +.bg-secundary { + background-color: rgba(227,242,253,0.4); +} +.box { + background-color: #fff; + padding: 5px 10px; + border-radius: 2px; + box-shadow: 0px 2px 1px rgba(0,0,0,0.1); +} +.minwidth1 { + min-width: 300px; +} +.margin10 { + margin: 10px auto 10px 2px; +} +.margin20 { + margin: 10px auto 10px 20px; +} +.marginbtm { + margin-bottom: 10px; +} +.titulo1 { + font-size: 1.6rem; + padding: 5px; + color: rgba(33,33,33,0.95); +} +.titulo2 { + font-size: 1.1rem; + color: rgba(33,33,33,0.7); +} +.titulo3 { + font-size: 1.4rem; + color: rgba(33,33,33,0.9); + font-weight: 600; +} +.titulo4 { + font-size: 0.9rem; + font-weight: 500; + color: rgba(33,33,33,0.9); +} +.divider { + height: 1px; + overflow: hidden; + background-color: #e0e0e0; +} +.styleicon { + font-size: 4rem; + text-align: center; + margin: 10px auto; + color: #273e48; +} +.styleicon:hover { + color: rgba(39,62,72,0.7); +} +.justifytext { + text-align: justify; +} +body { + font-size: 18px; +} +.Main { + display: flex; + align-items: stretch; +} +.Formpanel { + items-align: center; + margin-top: 2rem; + width: 50vw; +} +input { + background-color: transparent; + border-width: 0px; + border-bottom: 1px solid rgba(39,62,72,0.6); + border-radius: 0; + outline: none; + width: 100%; + font-size: 1rem; + margin: 0 0 15px 0; + padding: 0; + box-shadow: none; + height: 1.3rem; + font-family: 'Merriweather' serif; +} +input:focus { + outline: none; + border-width: 0px; + border-bottom: 2px solid rgba(38,166,152,0.9); +} +.btn { + text-decoration: none; + color: #fff; + background-color: #26a69a; + box-shadow: 0px 2px 1px rgba(0,0,0,0.18); + text-align: center; + letter-spacing: 0.5px; + border: none; + border-radius: 2px; + display: inline-block; + height: 36px; + line-height: 36px; + outline: 0; + padding: 0 2rem; + text-transform: capitalize; + width: 200px; +} +.btn:hover { + background-color: #2bbbad; + box-shadow: 0 5px 11px 0 rgba(0,0,0,0.18), 0 4px 15px 0 rgba(0,0,0,0.15); +} +.Form-add { + display: flex; + flex-direction: column; + justify-content: space-around; +} +.inputstyle { + display: flex; + flex-direction: column; + margin: 10px 0px 20px 0px; +} +.btnstyle { + display: flex; + justify-content: flex-end; + items-align: center; + margin: 10px 0px 0px 0px; +} +.btnstyle1 { + display: flex; + justify-content: center; + items-align: center; + margin: 10px 0px 10px 0px; +} +.selectbox { + font-size: 1em; + font-family: 'Merriweather' serif; +} +select option { + font-family: 'Merriweather' serif; +} +select option["selected"] { + font-family: 'Merriweather' serif; +} +.lbl { + font-family: 'Noto Serif'; + margin-bottom: 5px; + font-weight: 600; +} +.Header { + background-color: #273e48; + box-shadow: 0px -5px 7px 5px #777; +} +.Header-sidenav { + padding: 5px 20px; + min-height: 100vh; + width: 15vw; +} +.Header-logo { + color: #fff; + font-size: 6rem; + text-align: center; +} +.Nav { + color: #fff; + margin: 30px auto; + color: rgba(229,229,229,0.7); +} +.Nav-item { + display: flex; + align-items: center; + margin: 10px auto; + color: rgba(229,229,229,0.7); + cursor: pointer; +} +.Nav-item:hover { + color: #f0f0f0; +} +.Nav-item-text { + font-size: 0.8rem; + margin-left: 15px; +} +.Nav-item[data-lastitem] { + margin-top: 15px; +} +.iconstyle { + font-size: 1.4rem; + display: flex; + align-items: center; +} +.iconstyle[data-cross] { + font-size: 1.4rem; +} +.notifi { + background-color: rgba(88,114,125,0.9); + margin-left: 30px; + font-size: 0.8rem; + width: 16px; + text-align: center; + padding: 2px; + border-radius: 2px; +} +.MyCard { + margin-top: 10px; + margin-bottom: 30px; + display: flex; + flex-direction: column; + align-items: center; +} +.MyCard-photo { + width: 100px; + border-radius: 50%; + padding: 2px; +} +.MyCard-photo-img { + background-color: #e0e0e0; + width: 100px; + border-radius: 50%; +} +.MyCard-name { + display: flex; + flex-direction: column; + text-align: center; + justify-content: center; +} +.MyCard--textStyle { + font-family: 'Roboto Condensed', sans-serif; + color: rgba(229,229,229,0.7); +} +.MyCard-title { + color: #fafafa; + font-family: 'Noto Serif'; + font-style: italic; + margin-top: -7px; + display: flex; + align-items: center; + justify-content: center; +} +.Section { + width: 85vw; + background-color: rgba(229,229,229,0.7); +} +.Section-secciones { + display: flex; + flex-wrap: wrap; + margin: 30px auto; + flex-direction: row; + justify-content: space-around; + align-items: flex-start; + align-content: space-around; +} +.Section-item { + width: 250px; + margin: 10px; +} +.Font-playfair { + font-family: 'Playfair Display' serif; +} +.Font-abril { + font-family: 'Abril Fatface' cursive; +} +.Font-bevan { + font-family: 'Bevan' cursive; +} +.Font-alegreya { + font-family: 'Alegreya Sans' sans-serif; +} +.Font-francois { + font-family: 'Francois One' sans-serif; +} +.Font-librebasker { + font-family: 'Libre Baskerville' serif; +} +.Font-lato { + font-family: 'Lato' sans-serif; +} +.Font-merriw { + font-family: 'Merriweather' serif; +} +.Font-merriws { + font-family: 'Merriweather Sans' sans-serif; +} +.Font-openssans { + font-family: 'Open Sans' sans-serif; +} +.Font-roboto { + font-family: 'Roboto Condensed' sans-serif; +} +.FontStylebold { + font-style: bold; + font-weight: 700; +} +.Fontcolor1 { + color: rgba(39,62,72,0.86); +} +@media screen and (max-width: 320px) { + main { + display: flex; + flex-direction: row; + } + .Section { + width: 100vw; + } + .Section-secciones { + flex-direction: column; + } + .Header { + box-shadow: -1px 4px 2px 0px #777; + } + .Header-sidenav { + width: 100%; + padding: 0px; + } + .MyCard { + margin-top: 0px; + } + .Formpanel { + items-align: center; + margin-top: 2rem; + width: 90vw; + } +} +@media screen and (max-width: 720px) { + main { + display: flex; + flex-direction: column; + } + .Section { + width: 100vw; + } + .Section-secciones { + flex-direction: row; + flex-wrap: wrap; + } + .Header { + box-shadow: -1px 4px 2px 0px #777; + } + .Header-sidenav { + padding: 0px; + width: 100%; + } + .MyCard { + margin-top: 0px; + } + .Formpanel { + items-align: center; + margin-top: 2rem; + width: 90vw; + } +} diff --git a/routes/index.js b/routes/index.js index e800c04..ef67134 100644 --- a/routes/index.js +++ b/routes/index.js @@ -1,25 +1,52 @@ var express = require('express'); var router = express.Router(); var User = require('../models/User.js') +var passport = require('passport'); /* GET home page. */ router.get('/', function(req, res, next) { - res.render('index', { title: 'Express' }); + res.render('login', { title: 'Login' }); }); -router.get('/daniel', function(req, res, next) { - res.render('daniel', { title: 'Daniel' }); +router.get('/index', function(req, res, next) { + res.render('index', { + title: 'Index', + user: req.user + }); + }); router.get('/form', function(req, res, next) { res.render('form', { title: 'Form' }); }); -router.post('/signup', function(req, res) { - var webname = req.body.webname; - var propietario = req.body.propietario; - User.addUser(username, propietario, function(err, user){ - console.log(username + " " + password); - res.render('form', { title: 'Form' }); - }); +// router.post('/signup', function(req, res) { +// var webname = req.body.webname; +// var propietario = req.body.propietario; +// User.addUser(username, propietario, function(err, user){ +// console.log(username + " " + password); +// res.render('form', { title: 'Form' }); +// }); +// }); + +//Rutas para Social Login ----> + +//ruta para desloguear +router.get('/logout', function(req, res) { + req.logout(); + res.redirect('/'); }); +// Ruta para autenticarse con Twitter (enlace de login) +router.get('/auth/twitter', passport.authenticate('twitter')); +// Ruta para autenticarse con Facebook (enlace de login) +router.get('/auth/facebook', passport.authenticate('facebook')); +// Ruta de callback, a la que redirigirá tras autenticarse con Twitter. +// En caso de fallo redirige a otra vista '/login' +router.get('/auth/twitter/callback', passport.authenticate('twitter', + { successRedirect: '/', failureRedirect: '/login' } +)); +// Ruta de callback, a la que redirigirá tras autenticarse con Facebook. +// En caso de fallo redirige a otra vista '/login' +router.get('/auth/facebook/callback', passport.authenticate('facebook', + { successRedirect: '/index', failureRedirect: '/login' } +)); module.exports = router; diff --git a/views/Header/style.styl b/views/Header/style.styl index bbd7189..91b0e0f 100644 --- a/views/Header/style.styl +++ b/views/Header/style.styl @@ -3,8 +3,7 @@ box-shadow: 0px -5px 7px 5px #777; &-sidenav padding 5px 20px - - // height 150vh + min-height 100vh width 15vw &-logo color white @@ -26,11 +25,11 @@ color rgba(240,240,240,1) &-item-text font-size 0.8rem - margin-left 15px - + margin-left 15px + .Nav-item[data-lastitem] margin-top 15px - + .iconstyle font-size 1.4rem display flex diff --git a/views/daniel.jade b/views/daniel.jade deleted file mode 100644 index a98fa99..0000000 --- a/views/daniel.jade +++ /dev/null @@ -1,5 +0,0 @@ -extends layout - -block content - nav - h1= title diff --git a/views/layout.jade b/views/layout.jade index fcf558e..332019c 100644 --- a/views/layout.jade +++ b/views/layout.jade @@ -10,7 +10,7 @@ html(lang="en") meta(charset="UTF-8") meta(name="viewport", content="width=device-width, user-scalable=no") title Agregar - link(rel="stylesheet", href="/stylesheets/style0.css") + link(rel="stylesheet", href="/stylesheets/style.css") link(rel="stylesheet", href="/stylesheets/style-fonts.css") link(rel="stylesheet", href='https://fonts.googleapis.com/css?family=Playfair+Display:400,700,400italic,700italic|Abril+Fatface|Bevan|Alegreya+Sans:400,700,400italic,500italic,700italic|Francois+One|Libre+Baskerville:400,400italic,700|Lato:400,700,400italic,700italic|Merriweather:400,400italic,700,700italic|Merriweather+Sans:400,400italic,700|Open+Sans:400,400italic,700,700italic|Roboto+Condensed:400,400italic,700,700italic') meta(name="viewport", content="width=device-width, initial-scale=1.0") diff --git a/views/login.jade b/views/login.jade new file mode 100644 index 0000000..bd193a2 --- /dev/null +++ b/views/login.jade @@ -0,0 +1,21 @@ +extends layout + +block content + include ./Header/template.jade + include ./Section-main/template.jade + h1= title + + hr + if(user) + ul + li + img(src="#{user.photo}") + li Bienvenido #{user.name} + li + a(href='logout') Salir + else + ul + li + a(href='auth/twitter') Login con Twitter + li + a(href='auth/facebook') Login con Facebook diff --git a/views/passport.js b/views/passport.js new file mode 100644 index 0000000..5fd370e --- /dev/null +++ b/views/passport.js @@ -0,0 +1,88 @@ +var mongoose = require('mongoose'); +var User = mongoose.model('User'); +// Estrategia de autenticación con Twitter +var TwitterStrategy = require('passport-twitter').Strategy; +// Estrategia de autenticación con Facebook +var FacebookStrategy = require('passport-facebook').Strategy; +// Fichero de configuración donde se encuentran las API keys +// Este archivo no debe subirse a GitHub ya que contiene datos +// que pueden comprometer la seguridad de la aplicación. +var config = require('./config'); + +// Exportamos como módulo las funciones de passport, de manera que +// podamos utilizarlas en otras partes de la aplicación. +// De esta manera, mantenemos el código separado en varios archivos +// logrando que sea más manejable. +module.exports = function(passport) { + + // Serializa al usuario para almacenarlo en la sesión + passport.serializeUser(function(user, done) { + done(null, user); + }); + + // Deserializa el objeto usuario almacenado en la sesión para + // poder utilizarlo + passport.deserializeUser(function(obj, done) { + done(null, obj); + }); + + // Configuración del autenticado con Twitter + passport.use(new TwitterStrategy({ + consumerKey : config.twitter.key, + consumerSecret : config.twitter.secret, + callbackURL : '/auth/twitter/callback' + }, function(accessToken, refreshToken, profile, done) { + // Busca en la base de datos si el usuario ya se autenticó en otro + // momento y ya está almacenado en ella + User.findOne({provider_id: profile.id}, function(err, user) { + if(err) throw(err); + // Si existe en la Base de Datos, lo devuelve + if(!err && user!= null) return done(null, user); + + // Si no existe crea un nuevo objecto usuario + var user = new User({ + provider_id : profile.id, + provider : profile.provider, + name : profile.displayName, + photo : profile.photos[0].value + }); + //...y lo almacena en la base de datos + user.save(function(err) { + if(err) throw err; + done(null, user); + }); + }); + })); + + // Configuración del autenticado con Facebook + passport.use(new FacebookStrategy({ + clientID : config.facebook.key, + clientSecret : config.facebook.secret, + callbackURL : '/auth/facebook/callback', + profileFields : ['id', 'displayName', /*'provider',*/ 'photos'] + }, function(accessToken, refreshToken, profile, done) { + // El campo 'profileFields' nos permite que los campos que almacenamos + // se llamen igual tanto para si el usuario se autentica por Twitter o + // por Facebook, ya que cada proveedor entrega los datos en el JSON con + // un nombre diferente. + // Passport esto lo sabe y nos lo pone más sencillo con ese campo + User.findOne({provider_id: profile.id}, function(err, user) { + if(err) throw(err); + if(!err && user!= null) return done(null, user); + + // Al igual que antes, si el usuario ya existe lo devuelve + // y si no, lo crea y salva en la base de datos + var user = new User({ + provider_id : profile.id, + provider : profile.provider, + name : profile.displayName, + photo : profile.photos[0].value + }); + user.save(function(err) { + if(err) throw err; + done(null, user); + }); + }); + })); + +}; diff --git a/views/styles/style-fuentes.styl b/views/styles/style-fuentes.styl new file mode 100644 index 0000000..080396b --- /dev/null +++ b/views/styles/style-fuentes.styl @@ -0,0 +1,28 @@ +.Font-playfair + font-family 'Playfair Display' serif +.Font-abril + font-family 'Abril Fatface' cursive +.Font-bevan + font-family 'Bevan' cursive +.Font-alegreya + font-family 'Alegreya Sans' sans-serif +.Font-francois + font-family 'Francois One' sans-serif +.Font-librebasker + font-family 'Libre Baskerville' serif +.Font-lato + font-family 'Lato' sans-serif +.Font-merriw + font-family 'Merriweather' serif +.Font-merriws + font-family 'Merriweather Sans' sans-serif +.Font-openssans + font-family 'Open Sans' sans-serif +.Font-roboto + font-family 'Roboto Condensed' sans-serif + +.FontStylebold + font-style bold + font-weight 700 +.Fontcolor1 + color rgba(#273e48, 0.86) diff --git a/views/styles/style.styl b/views/styles/style.styl new file mode 100644 index 0000000..fb93c68 --- /dev/null +++ b/views/styles/style.styl @@ -0,0 +1,129 @@ +@import "../../node_modules/normalize-styl/normalize.styl" + +// Código de Compra +// 26979700 + +.bg-primary + background-color rgba(#1a237e, 0.7) +.bg-secundary + background-color rgba(#e3f2fd, 0.4) + + +.box + background-color white + padding 5px 10px + border-radius 2px + box-shadow 0px 2px 1px rgba(0,0,0,0.1) +.minwidth1 + min-width 300px +// .widthbox1 +// width 250px +// .flexbox-colwrp +// display flex +// flex-wrap wrap +// flex-direction column +.margin10 + margin 10px auto 10px 2px +.margin20 + margin 10px auto 10px 20px +.marginbtm + margin-bottom 10px +.titulo1 + font-size 1.6rem + padding 5px + color rgba(#212121, .95) +.titulo2 + font-size 1.1rem + color rgba(#212121, 0.7) +.titulo3 + font-size 1.4rem + color rgba(#212121, 0.9) + font-weight 600 +.titulo4 + font-size .9rem + font-weight 500 + color rgba(#212121, 0.9) +.divider + height 1px + overflow hidden + background-color #e0e0e0 + + +.styleicon + font-size 4rem + text-align center + margin 10px auto + color rgba(#273e48, 1) + &:hover + color rgba(#273e48, .7) +.justifytext + text-align justify + + +body + font-size 18px +.Main + display flex + align-items stretch + + +@import "../Add-nueva-pagina/style.styl" +@import "../Header/style.styl" +@import "../Card/style.styl" +@import "../Bienvenido/style.styl" +@import "style-fuentes.styl" + + + +@media screen and (max-width: 320px) + + main + display flex + flex-direction row + + .Section + width 100vw + &-secciones + flex-direction column + + .Header + box-shadow: -1px 4px 2px 0px #777; + &-sidenav + width 100% + padding 0px + .MyCard + margin-top 0px + .Formpanel + // display flex + // justify-content center + // flex-wrap wrap + // flex-direction column + items-align center + margin-top 2rem + width 90vw + +@media screen and (max-width: 720px) + + main + display flex + flex-direction column + .Section + width 100vw + &-secciones + flex-direction row + flex-wrap wrap + .Header + box-shadow: -1px 4px 2px 0px #777; + &-sidenav + padding 0px + width 100% + .MyCard + margin-top 0px + .Formpanel + // display flex + // justify-content center + // flex-wrap wrap + // flex-direction column + items-align center + margin-top 2rem + width 90vw From 4f734cc2349c4e84bf193ded36ae13da797b4bde Mon Sep 17 00:00:00 2001 From: daniel nava Date: Tue, 29 Sep 2015 16:34:56 -0500 Subject: [PATCH 02/18] Ya ingresa con social login y toma valores de FB --- app.js | 8 ++++++++ package.json | 3 ++- public/stylesheets/style.css | 34 +++++++++++++++++++++++++++++++++- routes/index.js | 4 +++- views/Card/style.styl | 11 ++++++----- views/Card/template.jade | 10 ++++++++-- views/login.jade | 2 +- views/styles/style.styl | 22 ++++++++++++++++++++++ 8 files changed, 83 insertions(+), 11 deletions(-) diff --git a/app.js b/app.js index e1d1e54..5cfb9ff 100644 --- a/app.js +++ b/app.js @@ -4,6 +4,8 @@ var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); +var session = require('express-session'); + var passport = require('passport'); //PASSPORT @@ -26,6 +28,12 @@ app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); +// Indicamos que use sesiones, para almacenar el objeto usuario +// y que lo recuerde aunque abandonemos la página +app.use(session({ resave: true, + saveUninitialized: true, + secret: 'lollllo' })); + //Inicializa PASSPORT app.use(passport.initialize()); app.use(passport.session()); diff --git a/package.json b/package.json index 51c3e9d..3fbaf17 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "nib": "~1.1.0", "passport": "~0.3.0", "passport-facebook": "~2.0.0", - "passport-twitter": "~1.0.3" + "passport-twitter": "~1.0.3", + "express-session": "~1.11.3" } } diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css index 2b2df16..61b632a 100644 --- a/public/stylesheets/style.css +++ b/public/stylesheets/style.css @@ -384,6 +384,7 @@ select option["selected"] { display: flex; flex-direction: column; align-items: center; + text-align: center; } .MyCard-photo { width: 100px; @@ -392,7 +393,7 @@ select option["selected"] { } .MyCard-photo-img { background-color: #e0e0e0; - width: 100px; + width: 80px; border-radius: 50%; } .MyCard-name { @@ -472,6 +473,18 @@ select option["selected"] { color: rgba(39,62,72,0.86); } @media screen and (max-width: 320px) { + .titulo1 { + font-size: 1.3rem; + } + .titulo2 { + font-size: 0.9rem; + } + .titulo3 { + font-size: 1.1rem; + } + .titulo4 { + font-size: 0.8rem; + } main { display: flex; flex-direction: row; @@ -484,6 +497,7 @@ select option["selected"] { } .Header { box-shadow: -1px 4px 2px 0px #777; + max-height: 420px; } .Header-sidenav { width: 100%; @@ -492,6 +506,13 @@ select option["selected"] { .MyCard { margin-top: 0px; } + .MyCard-photo { + text-align: center; + } + .MyCard-photo-img { + text-align: center; + width: 70px; + } .Formpanel { items-align: center; margin-top: 2rem; @@ -512,14 +533,25 @@ select option["selected"] { } .Header { box-shadow: -1px 4px 2px 0px #777; + max-height: 420px; } .Header-sidenav { padding: 0px; width: 100%; } + .Header-logo { + font-size: 4.5rem; + } .MyCard { margin-top: 0px; } + .MyCard-photo { + text-align: center; + } + .MyCard-photo-img { + text-align: center; + width: 70px; + } .Formpanel { items-align: center; margin-top: 2rem; diff --git a/routes/index.js b/routes/index.js index ef67134..588b375 100644 --- a/routes/index.js +++ b/routes/index.js @@ -6,13 +6,14 @@ var passport = require('passport'); /* GET home page. */ router.get('/', function(req, res, next) { res.render('login', { title: 'Login' }); + }); router.get('/index', function(req, res, next) { res.render('index', { title: 'Index', user: req.user }); - + console.log(req) }); router.get('/form', function(req, res, next) { res.render('form', { title: 'Form' }); @@ -47,6 +48,7 @@ router.get('/auth/twitter/callback', passport.authenticate('twitter', // En caso de fallo redirige a otra vista '/login' router.get('/auth/facebook/callback', passport.authenticate('facebook', { successRedirect: '/index', failureRedirect: '/login' } + )); module.exports = router; diff --git a/views/Card/style.styl b/views/Card/style.styl index db8447f..07b55ba 100644 --- a/views/Card/style.styl +++ b/views/Card/style.styl @@ -4,6 +4,7 @@ display flex flex-direction column align-items center + text-align center &-photo width 100px border-radius 50% @@ -11,7 +12,7 @@ padding 2px &-photo-img background-color #E0E0E0 - width 100px + width 80px border-radius 50% &-name display flex @@ -21,18 +22,18 @@ justify-content center //background-color #FBC02D //height 50px - &--textStyle + &--textStyle //padding 15px auto //letter-spacing 0.3em font-family: 'Roboto Condensed', sans-serif; color rgba(229,229,229,0.7) - &-title + &-title color #FAFAFA - font-family 'Noto Serif' + font-family 'Noto Serif' font-style italic margin-top -7px //letter-spacing 0.1em //height: 50px; display: flex; align-items: center; - justify-content: center; \ No newline at end of file + justify-content: center; diff --git a/views/Card/template.jade b/views/Card/template.jade index 3851594..4daeb0e 100644 --- a/views/Card/template.jade +++ b/views/Card/template.jade @@ -1,6 +1,12 @@ .MyCard .MyCard-photo - img(src="./images/cara.png", class="MyCard-photo-img") + if(user) + img(src="#{user.photo}", class="MyCard-photo-img") + else + img(src="/images/cara.png", class="MyCard-photo-img") .MyCard-name - .MyCard--textStyle.borderStyle.titulo1 Daniel Nava + if(user) + .MyCard--textStyle.borderStyle.titulo1 #{user.name} + else + .MyCard--textStyle.borderStyle.titulo1 Daniel .MyCard-title.titulo2 Administrador diff --git a/views/login.jade b/views/login.jade index bd193a2..f1a8a23 100644 --- a/views/login.jade +++ b/views/login.jade @@ -1,7 +1,7 @@ extends layout block content - include ./Header/template.jade + //- include ./Header/template.jade include ./Section-main/template.jade h1= title diff --git a/views/styles/style.styl b/views/styles/style.styl index fb93c68..9dd7b21 100644 --- a/views/styles/style.styl +++ b/views/styles/style.styl @@ -76,6 +76,14 @@ body @media screen and (max-width: 320px) + .titulo1 + font-size 1.3rem + .titulo2 + font-size 0.9rem + .titulo3 + font-size 1.1rem + .titulo4 + font-size .8rem main display flex @@ -88,11 +96,17 @@ body .Header box-shadow: -1px 4px 2px 0px #777; + max-height 420px &-sidenav width 100% padding 0px .MyCard margin-top 0px + &-photo + text-align center + &-photo-img + text-align center + width 70px .Formpanel // display flex // justify-content center @@ -114,11 +128,19 @@ body flex-wrap wrap .Header box-shadow: -1px 4px 2px 0px #777; + max-height 420px &-sidenav padding 0px width 100% + &-logo + font-size 4.5rem .MyCard margin-top 0px + &-photo + text-align center + &-photo-img + text-align center + width 70px .Formpanel // display flex // justify-content center From 140f0143efbbee10c0b8e93cbb5d61a6d758259b Mon Sep 17 00:00:00 2001 From: daniel nava Date: Wed, 30 Sep 2015 10:40:35 -0500 Subject: [PATCH 03/18] Falta login social con Github, aun en proceso --- package.json | 3 ++- passport.js | 31 +++++++++++++++++++++++++++++++ public/stylesheets/style.css | 14 ++++++++++++-- routes/index.js | 12 ++++++++++-- views/Bienvenido/template.jade | 2 +- views/Header/template.jade | 11 ++++++++--- views/layout.jade | 2 +- views/login.jade | 31 ++++++++++++++----------------- views/styles/style.styl | 12 ++++++++++-- 9 files changed, 89 insertions(+), 29 deletions(-) diff --git a/package.json b/package.json index 3fbaf17..f62eca0 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "passport": "~0.3.0", "passport-facebook": "~2.0.0", "passport-twitter": "~1.0.3", - "express-session": "~1.11.3" + "express-session": "~1.11.3", + "passport-github2": "~0.1.9" } } diff --git a/passport.js b/passport.js index 9be975d..0b47f39 100644 --- a/passport.js +++ b/passport.js @@ -5,6 +5,8 @@ var User = db.mongoose.model('User'); var TwitterStrategy = require('passport-twitter').Strategy; // Estrategia de autenticación con Facebook var FacebookStrategy = require('passport-facebook').Strategy; + +var GitHubStrategy = require('passport-github2').Strategy; // Fichero de configuración donde se encuentran las API keys // Este archivo no debe subirse a GitHub ya que contiene datos // que pueden comprometer la seguridad de la aplicación. @@ -86,4 +88,33 @@ module.exports = function(passport) { }); })); + passport.use(new GitHubStrategy({ + clientID: config.github.key, + clientSecret: config.github.secret, + callbackURL: "/auth/github/callback" + }, + function(accessToken, refreshToken, profile, done) { + //console.log(profile._json) + User.findOne({provider_id: profile.id}, function(err, user) { + if(err) throw(err); + // Si existe en la Base de Datos, lo devuelve + if(!err && user!= null) return done(null, user); + + // Si no existe crea un nuevo objecto usuario + //console.log(user) + var user = new User({ + //provider_id : profile.id, + provider : profile.provider, + name : profile.username, + photo : profile._json.avatar_url + }); + //...y lo almacena en la base de datos + user.save(function(err) { + if(err) throw err; + done(null, user); + }); + //console.log(user) + }); + } +)); }; diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css index 61b632a..a53e627 100644 --- a/public/stylesheets/style.css +++ b/public/stylesheets/style.css @@ -224,6 +224,16 @@ th { overflow: hidden; background-color: #e0e0e0; } +.linknone { + text-decoration: none; + color: rgba(229,229,229,0.9); +} +.linksocial { + color: #273e48; +} +.loginsocial { + text-align: center; +} .styleicon { font-size: 4rem; text-align: center; @@ -497,7 +507,7 @@ select option["selected"] { } .Header { box-shadow: -1px 4px 2px 0px #777; - max-height: 420px; + max-height: 100%; } .Header-sidenav { width: 100%; @@ -533,7 +543,7 @@ select option["selected"] { } .Header { box-shadow: -1px 4px 2px 0px #777; - max-height: 420px; + max-height: 100%; } .Header-sidenav { padding: 0px; diff --git a/routes/index.js b/routes/index.js index 588b375..120147b 100644 --- a/routes/index.js +++ b/routes/index.js @@ -13,7 +13,7 @@ router.get('/index', function(req, res, next) { title: 'Index', user: req.user }); - console.log(req) + //console.log(req) }); router.get('/form', function(req, res, next) { res.render('form', { title: 'Form' }); @@ -40,6 +40,8 @@ router.get('/auth/twitter', passport.authenticate('twitter')); // Ruta para autenticarse con Facebook (enlace de login) router.get('/auth/facebook', passport.authenticate('facebook')); // Ruta de callback, a la que redirigirá tras autenticarse con Twitter. +router.get('/auth/github', passport.authenticate('github', { scope: [ 'user:email' ] })); + // En caso de fallo redirige a otra vista '/login' router.get('/auth/twitter/callback', passport.authenticate('twitter', { successRedirect: '/', failureRedirect: '/login' } @@ -48,7 +50,13 @@ router.get('/auth/twitter/callback', passport.authenticate('twitter', // En caso de fallo redirige a otra vista '/login' router.get('/auth/facebook/callback', passport.authenticate('facebook', { successRedirect: '/index', failureRedirect: '/login' } - )); +router.get('/auth/github/callback', passport.authenticate('github', + { failureRedirect: '/login' }), + function(req, res) { + // Successful authentication, redirect home. + res.redirect('/index'); + } + ); module.exports = router; diff --git a/views/Bienvenido/template.jade b/views/Bienvenido/template.jade index dd8453b..7e6dfa1 100644 --- a/views/Bienvenido/template.jade +++ b/views/Bienvenido/template.jade @@ -10,7 +10,7 @@ .divider .btnstyle1 button.btn - a(href="/form") Ir + a(href="/form", class="linknone") Ir .Section-item.box.flexbox-colwrp .titulo3.margin10.Font-francois.Fontcolor1 Agregar categoría .divider diff --git a/views/Header/template.jade b/views/Header/template.jade index f3b6fa2..b9e910f 100644 --- a/views/Header/template.jade +++ b/views/Header/template.jade @@ -1,9 +1,11 @@ header.Header .Header-sidenav .Header-logo.icon-logos_Logoytexto.margin10 - include ../Card/template.jade + if(user) + include ../Card/template.jade .divider .Nav + if(user) .Nav-item .iconstyle.icon-user div.Nav-item-text Ver perfil @@ -16,5 +18,8 @@ header.Header .notifi 2 .Nav-item(data-lastitem) .iconstyle(data-cross).icon-cross - div.Nav-item-text Cerrar sesión - \ No newline at end of file + a(href="/logout", class="linknone") + div.Nav-item-text Cerrar sesión + + + diff --git a/views/layout.jade b/views/layout.jade index 332019c..5a1c67e 100644 --- a/views/layout.jade +++ b/views/layout.jade @@ -9,7 +9,7 @@ html(lang="en") head meta(charset="UTF-8") meta(name="viewport", content="width=device-width, user-scalable=no") - title Agregar + title #{title} link(rel="stylesheet", href="/stylesheets/style.css") link(rel="stylesheet", href="/stylesheets/style-fonts.css") link(rel="stylesheet", href='https://fonts.googleapis.com/css?family=Playfair+Display:400,700,400italic,700italic|Abril+Fatface|Bevan|Alegreya+Sans:400,700,400italic,500italic,700italic|Francois+One|Libre+Baskerville:400,400italic,700|Lato:400,700,400italic,700italic|Merriweather:400,400italic,700,700italic|Merriweather+Sans:400,400italic,700|Open+Sans:400,400italic,700,700italic|Roboto+Condensed:400,400italic,700,700italic') diff --git a/views/login.jade b/views/login.jade index f1a8a23..e9c10c7 100644 --- a/views/login.jade +++ b/views/login.jade @@ -1,21 +1,18 @@ extends layout block content - //- include ./Header/template.jade + include ./Header/template.jade + //nav Sistema de Administración include ./Section-main/template.jade - h1= title - - hr - if(user) - ul - li - img(src="#{user.photo}") - li Bienvenido #{user.name} - li - a(href='logout') Salir - else - ul - li - a(href='auth/twitter') Login con Twitter - li - a(href='auth/facebook') Login con Facebook + .Section-secciones + .Section-item.box.flexbox-colwrp + .styleicon.icon-facebook + .titulo3.margin10.Font-francois.Fontcolor1.loginsocial + a(href='auth/facebook', class="linknone linksocial") Iniciar con Facebook + .Section-secciones + .Section-item.box.flexbox-colwrp + .styleicon.icon-github + .titulo3.margin10.Font-francois.Fontcolor1.loginsocial + a(href='auth/github', class="linknone linksocial") Iniciar con Github + //- .Section-item.box.flexbox-colwrp + //- a(href='auth/facebook') Login con Facebook diff --git a/views/styles/style.styl b/views/styles/style.styl index 9dd7b21..e780cf9 100644 --- a/views/styles/style.styl +++ b/views/styles/style.styl @@ -49,6 +49,14 @@ background-color #e0e0e0 +.linknone + text-decoration none + color rgba(229,229,229,0.9) +.linksocial + color: #273e48; +.loginsocial + text-align center + .styleicon font-size 4rem text-align center @@ -96,7 +104,7 @@ body .Header box-shadow: -1px 4px 2px 0px #777; - max-height 420px + max-height 100% &-sidenav width 100% padding 0px @@ -128,7 +136,7 @@ body flex-wrap wrap .Header box-shadow: -1px 4px 2px 0px #777; - max-height 420px + max-height 100% &-sidenav padding 0px width 100% From 94172e8688a7a57483620cc5dc352fe870bc0fc8 Mon Sep 17 00:00:00 2001 From: daniel nava Date: Wed, 30 Sep 2015 14:02:21 -0500 Subject: [PATCH 04/18] =?UTF-8?q?se=20agreg=C3=B3=20views/models=5Fjade,?= =?UTF-8?q?=20y=20ya=20qued=C3=B3=20el=20login=20con=20github=20y=20facebo?= =?UTF-8?q?ok?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/db.js | 4 +- models/User.js | 25 +----- passport.js | 6 +- views/form.jade | 6 +- views/index.jade | 6 +- views/login.jade | 4 +- .../Add-nueva-pagina/style.styl | 8 +- .../Add-nueva-pagina/template.jade | 0 views/{ => models_jade}/Bienvenido/style.styl | 0 .../Bienvenido/template.jade | 0 views/{ => models_jade}/Card/style.styl | 0 views/{ => models_jade}/Card/template.jade | 0 views/{ => models_jade}/Header/style.styl | 0 views/{ => models_jade}/Header/template.jade | 0 .../Section-main/template.jade | 0 views/passport.js | 88 ------------------- views/styles/style.styl | 8 +- 17 files changed, 22 insertions(+), 133 deletions(-) rename views/{ => models_jade}/Add-nueva-pagina/style.styl (98%) rename views/{ => models_jade}/Add-nueva-pagina/template.jade (100%) rename views/{ => models_jade}/Bienvenido/style.styl (100%) rename views/{ => models_jade}/Bienvenido/template.jade (100%) rename views/{ => models_jade}/Card/style.styl (100%) rename views/{ => models_jade}/Card/template.jade (100%) rename views/{ => models_jade}/Header/style.styl (100%) rename views/{ => models_jade}/Header/template.jade (100%) rename views/{ => models_jade}/Section-main/template.jade (100%) delete mode 100644 views/passport.js diff --git a/lib/db.js b/lib/db.js index bae438c..5ca8572 100644 --- a/lib/db.js +++ b/lib/db.js @@ -6,12 +6,12 @@ module.exports.Schema = Schema; var dbuser = "dani"; var dbpassword = "123"; -var address = "@ds041871.mongolab.com:41871/labase"; +var dbaddress = "@ds041871.mongolab.com:41871/labase"; connect(); function connect(){ - var url = 'mongodb://' + dbuser + ':' + dbpassword + address; + var url = 'mongodb://' + dbuser + ':' + dbpassword + dbaddress; mongoose.connect(url); } diff --git a/models/User.js b/models/User.js index 60116e9..4942a38 100644 --- a/models/User.js +++ b/models/User.js @@ -1,28 +1,5 @@ var db = require('../lib/db'); -// var UserSchema = new db.Schema({ -// username : {type: String, unique: true}, -// password : String -// -// }) -// -// var MyUser = db.mongoose.model('User', UserSchema); - -//module.exports.addUser = addUser; - -// function addUser(username, password, callback) { -// var instance = new MyUser(); -// instance.username = username; -// instance.password = password; -// instance.save(function(err) { -// if (err) { -// callback(err); -// } -// else { -// callback(null, instance); -// } -// }) -// } //PASSPORT TUTO @@ -30,7 +7,7 @@ var db = require('../lib/db'); var UserSchema = new db.Schema({ name : String, // Nombre del usuario //provider : String, // Cuenta del usuario (Twitter o Facebook en este ejemplo) - provider_id : {type: String, unique: true}, // ID que proporciona Twitter o Facebook + provider_id : {type: String}, // ID que proporciona Twitter o Facebook photo : String, // Avatar o foto del usuario createdAt : {type: Date, default: Date.now} // Fecha de creación }); diff --git a/passport.js b/passport.js index 0b47f39..c6c1c28 100644 --- a/passport.js +++ b/passport.js @@ -100,10 +100,10 @@ module.exports = function(passport) { // Si existe en la Base de Datos, lo devuelve if(!err && user!= null) return done(null, user); - // Si no existe crea un nuevo objecto usuario - //console.log(user) + //Si no existe crea un nuevo objecto usuario + console.log(user) var user = new User({ - //provider_id : profile.id, + provider_id : profile.id, provider : profile.provider, name : profile.username, photo : profile._json.avatar_url diff --git a/views/form.jade b/views/form.jade index 12a000d..0ec02f2 100644 --- a/views/form.jade +++ b/views/form.jade @@ -14,7 +14,7 @@ block content //- br //- div //- input(type="submit", value="sign up") - include ./Header/template.jade - include ./Section-main/template.jade - include ./Add-nueva-pagina/template.jade + include ./models_jade/Header/template.jade + include ./models_jade/Section-main/template.jade + include ./models_jade/Add-nueva-pagina/template.jade //- script(src="https://code.jquery.com/jquery-2.1.1.min.js") diff --git a/views/index.jade b/views/index.jade index 6941fff..5ac21cb 100644 --- a/views/index.jade +++ b/views/index.jade @@ -3,8 +3,8 @@ extends layout block content //- h1= title //- p Welcome to #{title} - include ./Header/template.jade - include ./Section-main/template.jade - include ./Bienvenido/template.jade + include ./models_jade/Header/template.jade + include ./models_jade/Section-main/template.jade + include ./models_jade/Bienvenido/template.jade //- script(src="https://code.jquery.com/jquery-2.1.1.min.js") //- script(src="./js/materialize.js") diff --git a/views/login.jade b/views/login.jade index e9c10c7..fb313d8 100644 --- a/views/login.jade +++ b/views/login.jade @@ -1,9 +1,9 @@ extends layout block content - include ./Header/template.jade + include ./models_jade/Header/template.jade //nav Sistema de Administración - include ./Section-main/template.jade + include ./models_jade/Section-main/template.jade .Section-secciones .Section-item.box.flexbox-colwrp .styleicon.icon-facebook diff --git a/views/Add-nueva-pagina/style.styl b/views/models_jade/Add-nueva-pagina/style.styl similarity index 98% rename from views/Add-nueva-pagina/style.styl rename to views/models_jade/Add-nueva-pagina/style.styl index 8b8e23f..455af11 100644 --- a/views/Add-nueva-pagina/style.styl +++ b/views/models_jade/Add-nueva-pagina/style.styl @@ -10,9 +10,9 @@ /*input border-radius 2px border-width 0px - + margin 10px*/ - + input background-color transparent border-width 0px @@ -55,7 +55,7 @@ input:focus display flex flex-direction column justify-content space-around - + .inputstyle display flex flex-direction column @@ -80,4 +80,4 @@ select option["selected"] .lbl font-family 'Noto Serif' margin-bottom 5px - font-weight 600 \ No newline at end of file + font-weight 600 diff --git a/views/Add-nueva-pagina/template.jade b/views/models_jade/Add-nueva-pagina/template.jade similarity index 100% rename from views/Add-nueva-pagina/template.jade rename to views/models_jade/Add-nueva-pagina/template.jade diff --git a/views/Bienvenido/style.styl b/views/models_jade/Bienvenido/style.styl similarity index 100% rename from views/Bienvenido/style.styl rename to views/models_jade/Bienvenido/style.styl diff --git a/views/Bienvenido/template.jade b/views/models_jade/Bienvenido/template.jade similarity index 100% rename from views/Bienvenido/template.jade rename to views/models_jade/Bienvenido/template.jade diff --git a/views/Card/style.styl b/views/models_jade/Card/style.styl similarity index 100% rename from views/Card/style.styl rename to views/models_jade/Card/style.styl diff --git a/views/Card/template.jade b/views/models_jade/Card/template.jade similarity index 100% rename from views/Card/template.jade rename to views/models_jade/Card/template.jade diff --git a/views/Header/style.styl b/views/models_jade/Header/style.styl similarity index 100% rename from views/Header/style.styl rename to views/models_jade/Header/style.styl diff --git a/views/Header/template.jade b/views/models_jade/Header/template.jade similarity index 100% rename from views/Header/template.jade rename to views/models_jade/Header/template.jade diff --git a/views/Section-main/template.jade b/views/models_jade/Section-main/template.jade similarity index 100% rename from views/Section-main/template.jade rename to views/models_jade/Section-main/template.jade diff --git a/views/passport.js b/views/passport.js deleted file mode 100644 index 5fd370e..0000000 --- a/views/passport.js +++ /dev/null @@ -1,88 +0,0 @@ -var mongoose = require('mongoose'); -var User = mongoose.model('User'); -// Estrategia de autenticación con Twitter -var TwitterStrategy = require('passport-twitter').Strategy; -// Estrategia de autenticación con Facebook -var FacebookStrategy = require('passport-facebook').Strategy; -// Fichero de configuración donde se encuentran las API keys -// Este archivo no debe subirse a GitHub ya que contiene datos -// que pueden comprometer la seguridad de la aplicación. -var config = require('./config'); - -// Exportamos como módulo las funciones de passport, de manera que -// podamos utilizarlas en otras partes de la aplicación. -// De esta manera, mantenemos el código separado en varios archivos -// logrando que sea más manejable. -module.exports = function(passport) { - - // Serializa al usuario para almacenarlo en la sesión - passport.serializeUser(function(user, done) { - done(null, user); - }); - - // Deserializa el objeto usuario almacenado en la sesión para - // poder utilizarlo - passport.deserializeUser(function(obj, done) { - done(null, obj); - }); - - // Configuración del autenticado con Twitter - passport.use(new TwitterStrategy({ - consumerKey : config.twitter.key, - consumerSecret : config.twitter.secret, - callbackURL : '/auth/twitter/callback' - }, function(accessToken, refreshToken, profile, done) { - // Busca en la base de datos si el usuario ya se autenticó en otro - // momento y ya está almacenado en ella - User.findOne({provider_id: profile.id}, function(err, user) { - if(err) throw(err); - // Si existe en la Base de Datos, lo devuelve - if(!err && user!= null) return done(null, user); - - // Si no existe crea un nuevo objecto usuario - var user = new User({ - provider_id : profile.id, - provider : profile.provider, - name : profile.displayName, - photo : profile.photos[0].value - }); - //...y lo almacena en la base de datos - user.save(function(err) { - if(err) throw err; - done(null, user); - }); - }); - })); - - // Configuración del autenticado con Facebook - passport.use(new FacebookStrategy({ - clientID : config.facebook.key, - clientSecret : config.facebook.secret, - callbackURL : '/auth/facebook/callback', - profileFields : ['id', 'displayName', /*'provider',*/ 'photos'] - }, function(accessToken, refreshToken, profile, done) { - // El campo 'profileFields' nos permite que los campos que almacenamos - // se llamen igual tanto para si el usuario se autentica por Twitter o - // por Facebook, ya que cada proveedor entrega los datos en el JSON con - // un nombre diferente. - // Passport esto lo sabe y nos lo pone más sencillo con ese campo - User.findOne({provider_id: profile.id}, function(err, user) { - if(err) throw(err); - if(!err && user!= null) return done(null, user); - - // Al igual que antes, si el usuario ya existe lo devuelve - // y si no, lo crea y salva en la base de datos - var user = new User({ - provider_id : profile.id, - provider : profile.provider, - name : profile.displayName, - photo : profile.photos[0].value - }); - user.save(function(err) { - if(err) throw err; - done(null, user); - }); - }); - })); - -}; diff --git a/views/styles/style.styl b/views/styles/style.styl index e780cf9..c0e274f 100644 --- a/views/styles/style.styl +++ b/views/styles/style.styl @@ -75,10 +75,10 @@ body align-items stretch -@import "../Add-nueva-pagina/style.styl" -@import "../Header/style.styl" -@import "../Card/style.styl" -@import "../Bienvenido/style.styl" +@import "../models_jade/Add-nueva-pagina/style.styl" +@import "../models_jade/Header/style.styl" +@import "../models_jade/Card/style.styl" +@import "../models_jade/Bienvenido/style.styl" @import "style-fuentes.styl" From 6f39b7cba31b710b570cc28a4b7e69cb15329cfa Mon Sep 17 00:00:00 2001 From: daniel nava Date: Wed, 30 Sep 2015 14:32:34 -0500 Subject: [PATCH 05/18] se acomodaron los box con flex-stretch --- lib/db.js | 2 +- package.json | 2 +- public/stylesheets/style.css | 2 +- views/models_jade/Bienvenido/style.styl | 4 ++-- views/{ => models_jade}/styles/style-fuentes.styl | 0 views/{ => models_jade}/styles/style.styl | 10 +++++----- 6 files changed, 10 insertions(+), 10 deletions(-) rename views/{ => models_jade}/styles/style-fuentes.styl (100%) rename views/{ => models_jade}/styles/style.styl (90%) diff --git a/lib/db.js b/lib/db.js index 5ca8572..cb53a10 100644 --- a/lib/db.js +++ b/lib/db.js @@ -6,7 +6,7 @@ module.exports.Schema = Schema; var dbuser = "dani"; var dbpassword = "123"; -var dbaddress = "@ds041871.mongolab.com:41871/labase"; +var dbaddress = "@ds059908.mongolab.com:59908/labasebkp"; connect(); diff --git a/package.json b/package.json index f62eca0..0092055 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "scripts": { "start": "nodemon ./bin/www", "jade": "jade --watch --pretty lib/index.jade lib/form.jade --out ./public", - "stylus": "stylus --use nib --watch ./views/styles --out ./public/stylesheets", + "stylus": "stylus --use nib --watch ./views/models_jade/styles --out ./public/stylesheets", "babel": "babel --watch lib --out-dir public" }, "repository": { diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css index a53e627..5316fb0 100644 --- a/public/stylesheets/style.css +++ b/public/stylesheets/style.css @@ -435,7 +435,7 @@ select option["selected"] { margin: 30px auto; flex-direction: row; justify-content: space-around; - align-items: flex-start; + align-items: flex-stretch; align-content: space-around; } .Section-item { diff --git a/views/models_jade/Bienvenido/style.styl b/views/models_jade/Bienvenido/style.styl index c46ef90..8ba9898 100644 --- a/views/models_jade/Bienvenido/style.styl +++ b/views/models_jade/Bienvenido/style.styl @@ -9,8 +9,8 @@ margin 30px auto flex-direction row justify-content space-around - align-items flex-start + align-items flex-stretch align-content space-around &-item width 250px - margin 10px \ No newline at end of file + margin 10px diff --git a/views/styles/style-fuentes.styl b/views/models_jade/styles/style-fuentes.styl similarity index 100% rename from views/styles/style-fuentes.styl rename to views/models_jade/styles/style-fuentes.styl diff --git a/views/styles/style.styl b/views/models_jade/styles/style.styl similarity index 90% rename from views/styles/style.styl rename to views/models_jade/styles/style.styl index c0e274f..316acc8 100644 --- a/views/styles/style.styl +++ b/views/models_jade/styles/style.styl @@ -1,4 +1,4 @@ -@import "../../node_modules/normalize-styl/normalize.styl" +@import "../../../node_modules/normalize-styl/normalize.styl" // Código de Compra // 26979700 @@ -75,10 +75,10 @@ body align-items stretch -@import "../models_jade/Add-nueva-pagina/style.styl" -@import "../models_jade/Header/style.styl" -@import "../models_jade/Card/style.styl" -@import "../models_jade/Bienvenido/style.styl" +@import "../Add-nueva-pagina/style.styl" +@import "../Header/style.styl" +@import "../Card/style.styl" +@import "../Bienvenido/style.styl" @import "style-fuentes.styl" From cf8ec6a077b7d2d9865ba551d9cc902c9a6b6c53 Mon Sep 17 00:00:00 2001 From: daniel nava Date: Wed, 30 Sep 2015 15:56:27 -0500 Subject: [PATCH 06/18] =?UTF-8?q?Hasta=20aqu=C3=AD=20funciona?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routes/index.js | 5 ++++- views/login.jade | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/routes/index.js b/routes/index.js index 120147b..b4acd7b 100644 --- a/routes/index.js +++ b/routes/index.js @@ -16,7 +16,10 @@ router.get('/index', function(req, res, next) { //console.log(req) }); router.get('/form', function(req, res, next) { - res.render('form', { title: 'Form' }); + res.render('form', { + title: 'Form', + user: req.user + }); }); // router.post('/signup', function(req, res) { diff --git a/views/login.jade b/views/login.jade index fb313d8..b947f26 100644 --- a/views/login.jade +++ b/views/login.jade @@ -9,7 +9,7 @@ block content .styleicon.icon-facebook .titulo3.margin10.Font-francois.Fontcolor1.loginsocial a(href='auth/facebook', class="linknone linksocial") Iniciar con Facebook - .Section-secciones + //.Section-secciones .Section-item.box.flexbox-colwrp .styleicon.icon-github .titulo3.margin10.Font-francois.Fontcolor1.loginsocial From 2690b748fe8ee9745ce2068896988783b73537f3 Mon Sep 17 00:00:00 2001 From: daniel nava Date: Wed, 30 Sep 2015 17:54:40 -0500 Subject: [PATCH 07/18] Maneja la ruta post(/addpage) --- app.js | 7 +++++-- routes/form.js | 14 ++++++++++++++ routes/index.js | 19 +++++++++++-------- routes/users.js | 9 +++++++-- .../Add-nueva-pagina/template.jade | 4 ++-- 5 files changed, 39 insertions(+), 14 deletions(-) create mode 100644 routes/form.js diff --git a/app.js b/app.js index 5cfb9ff..1f1850d 100644 --- a/app.js +++ b/app.js @@ -10,7 +10,7 @@ var passport = require('passport'); //PASSPORT var routes = require('./routes/index'); -var users = require('./routes/users'); +var form = require('./routes/form'); require('./passport')(passport); @@ -39,9 +39,12 @@ app.use(passport.initialize()); app.use(passport.session()); //Enrutador + + app.use('/', routes); +app.use('/form', form); //app.use('/daniel', routes); -app.use('/users', users); +//app.use('/users', users); // catch 404 and forward to error handler app.use(function(req, res, next) { diff --git a/routes/form.js b/routes/form.js new file mode 100644 index 0000000..b82e378 --- /dev/null +++ b/routes/form.js @@ -0,0 +1,14 @@ +var express = require('express'); +var router = express.Router(); + +/* GET users listing. */ +router.post('/addpage', function(req, res) { + // var webname = req.body.webname; + // var propietario = req.body.propietario; + // User.addUser(username, propietario, function(err, user){ + // console.log(username + " " + password); + res.render('form', { title: 'Form' }); + // }); +}); + +module.exports = router; diff --git a/routes/index.js b/routes/index.js index b4acd7b..abd3412 100644 --- a/routes/index.js +++ b/routes/index.js @@ -22,14 +22,17 @@ router.get('/form', function(req, res, next) { }); }); -// router.post('/signup', function(req, res) { -// var webname = req.body.webname; -// var propietario = req.body.propietario; -// User.addUser(username, propietario, function(err, user){ -// console.log(username + " " + password); -// res.render('form', { title: 'Form' }); -// }); -// }); +router.post('/addpage', function(req, res) { + // var webname = req.body.webname; + // var propietario = req.body.propietario; + // User.addUser(username, propietario, function(err, user){ + // console.log(username + " " + password); + res.render('form', { + title: 'Form', + user: req.user + }); + // }); +}); //Rutas para Social Login ----> diff --git a/routes/users.js b/routes/users.js index 623e430..b82e378 100644 --- a/routes/users.js +++ b/routes/users.js @@ -2,8 +2,13 @@ var express = require('express'); var router = express.Router(); /* GET users listing. */ -router.get('/', function(req, res, next) { - res.send('respond with a resource'); +router.post('/addpage', function(req, res) { + // var webname = req.body.webname; + // var propietario = req.body.propietario; + // User.addUser(username, propietario, function(err, user){ + // console.log(username + " " + password); + res.render('form', { title: 'Form' }); + // }); }); module.exports = router; diff --git a/views/models_jade/Add-nueva-pagina/template.jade b/views/models_jade/Add-nueva-pagina/template.jade index 91c3678..d9cc7db 100644 --- a/views/models_jade/Add-nueva-pagina/template.jade +++ b/views/models_jade/Add-nueva-pagina/template.jade @@ -6,10 +6,10 @@ .titulo3.margin10.Font-francois.Fontcolor1 Formulario .divider .Form - form(id="agregarweb", method="post", action="/signup", class="Form-add") + form(id="agregarweb", method="post", action="/addpage", class="Form-add") .inputstyle.Fontcolor1 label(for="input-nombre", class="lbl") Nombre de la nueva web: - input(type="text", id="input-nombre", name="webname") + input(type="text", id="input-nombre", name="namepage") .inputstyle.Fontcolor1 label(for="input-nombre", class="lbl") Nombre del propietario: input(type="text", id="input-propietario", placeholder="", name="propietario") From e3cd1d171fe6dd90921ca36d2815e102a3036a83 Mon Sep 17 00:00:00 2001 From: daniel nava Date: Thu, 1 Oct 2015 14:06:32 -0500 Subject: [PATCH 08/18] =?UTF-8?q?Se=20mantiene=20el=20enrutador=20de=20For?= =?UTF-8?q?m=20en=20Index.js,=20se=20modific=C3=B3=20el=20gitignored?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- app.js | 4 +- public/stylesheets/style0.css | 527 ------------------ routes/form.js | 7 + routes/index.js | 16 +- routes/users.js | 14 - .../Add-nueva-pagina/template.jade | 9 +- views/models_jade/Bienvenido/template.jade | 8 +- .../Pages-stored.jade/template.jade | 30 + views/models_jade/Pages-stored/template.jade | 31 ++ views/stored.jade | 7 + 11 files changed, 102 insertions(+), 553 deletions(-) delete mode 100644 public/stylesheets/style0.css delete mode 100644 routes/users.js create mode 100644 views/models_jade/Pages-stored.jade/template.jade create mode 100644 views/models_jade/Pages-stored/template.jade create mode 100644 views/stored.jade diff --git a/.gitignore b/.gitignore index bf02f17..a731730 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -node_modules +node_modules/ config.js lib-cov diff --git a/app.js b/app.js index 1f1850d..ac4f1a8 100644 --- a/app.js +++ b/app.js @@ -40,9 +40,9 @@ app.use(passport.session()); //Enrutador - -app.use('/', routes); app.use('/form', form); +app.use('/', routes); +//app.use('/form', form); //app.use('/daniel', routes); //app.use('/users', users); diff --git a/public/stylesheets/style0.css b/public/stylesheets/style0.css deleted file mode 100644 index 0dadb3f..0000000 --- a/public/stylesheets/style0.css +++ /dev/null @@ -1,527 +0,0 @@ -/* normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ -html { - font-family: sans-serif; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; -} -body { - margin: 0; -} -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} -audio:not([controls]) { - display: none; - height: 0; -} -[hidden], -template { - display: none; -} -a { - background-color: transparent; -} -a:active, -a:hover { - outline: 0; -} -abbr[title] { - border-bottom: 1px dotted; -} -b, -strong { - font-weight: bold; -} -dfn { - font-style: italic; -} -h1 { - font-size: 2em; - margin: 0.67em 0; -} -mark { - background: #ff0; - color: #000; -} -small { - font-size: 80%; -} -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} -sup { - top: -0.5em; -} -sub { - bottom: -0.25em; -} -img { - border: 0; -} -svg:not(:root) { - overflow: hidden; -} -figure { - margin: 1em 40px; -} -hr { - box-sizing: content-box; - height: 0; -} -pre { - overflow: auto; -} -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -button, -input, -optgroup, -select, -textarea { - color: inherit; - font: inherit; - margin: 0; -} -button { - overflow: visible; -} -button, -select { - text-transform: none; -} -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} -button[disabled], -html input[disabled] { - cursor: default; -} -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} -input { - line-height: normal; -} -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - padding: 0; -} -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} -input[type="search"] { - -webkit-appearance: textfield; - box-sizing: content-box; -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} -legend { - border: 0; - padding: 0; -} -textarea { - overflow: auto; -} -optgroup { - font-weight: bold; -} -table { - border-collapse: collapse; - border-spacing: 0; -} -td, -th { - padding: 0; -} -.bg-primary { - background-color: rgba(26,35,126,0.7); -} -.bg-secundary { - background-color: rgba(227,242,253,0.4); -} -.box { - background-color: #fff; - padding: 5px 10px; - border-radius: 2px; - box-shadow: 0px 2px 1px rgba(0,0,0,0.1); -} -.minwidth1 { - min-width: 300px; -} -.margin10 { - margin: 10px auto 10px 2px; -} -.margin20 { - margin: 10px auto 10px 20px; -} -.marginbtm { - margin-bottom: 10px; -} -.titulo1 { - font-size: 1.6rem; - padding: 5px; - color: rgba(33,33,33,0.95); -} -.titulo2 { - font-size: 1.1rem; - color: rgba(33,33,33,0.7); -} -.titulo3 { - font-size: 1.4rem; - color: rgba(33,33,33,0.9); - font-weight: 600; -} -.titulo4 { - font-size: 0.9rem; - font-weight: 500; - color: rgba(33,33,33,0.9); -} -.divider { - height: 1px; - overflow: hidden; - background-color: #e0e0e0; -} -.styleicon { - font-size: 4rem; - text-align: center; - margin: 10px auto; - color: #273e48; -} -.styleicon:hover { - color: rgba(39,62,72,0.7); -} -.justifytext { - text-align: justify; -} -body { - font-size: 18px; -} -.Main { - display: flex; - align-items: stretch; -} -.Formpanel { - items-align: center; - margin-top: 2rem; - width: 50vw; -} -input { - background-color: transparent; - border-width: 0px; - border-bottom: 1px solid rgba(39,62,72,0.6); - border-radius: 0; - outline: none; - width: 100%; - font-size: 1rem; - margin: 0 0 15px 0; - padding: 0; - box-shadow: none; - height: 1.3rem; - font-family: 'Merriweather' serif; -} -input:focus { - outline: none; - border-width: 0px; - border-bottom: 2px solid rgba(38,166,152,0.9); -} -.btn { - text-decoration: none; - color: #fff; - background-color: #26a69a; - box-shadow: 0px 2px 1px rgba(0,0,0,0.18); - text-align: center; - letter-spacing: 0.5px; - border: none; - border-radius: 2px; - display: inline-block; - height: 36px; - line-height: 36px; - outline: 0; - padding: 0 2rem; - text-transform: capitalize; - width: 200px; -} -.btn:hover { - background-color: #2bbbad; - box-shadow: 0 5px 11px 0 rgba(0,0,0,0.18), 0 4px 15px 0 rgba(0,0,0,0.15); -} -.Form-add { - display: flex; - flex-direction: column; - justify-content: space-around; -} -.inputstyle { - display: flex; - flex-direction: column; - margin: 10px 0px 20px 0px; -} -.btnstyle { - display: flex; - justify-content: flex-end; - items-align: center; - margin: 10px 0px 0px 0px; -} -.btnstyle1 { - display: flex; - justify-content: center; - items-align: center; - margin: 10px 0px 10px 0px; -} -.selectbox { - font-size: 1em; - font-family: 'Merriweather' serif; -} -select option { - font-family: 'Merriweather' serif; -} -select option["selected"] { - font-family: 'Merriweather' serif; -} -.lbl { - font-family: 'Noto Serif'; - margin-bottom: 5px; - font-weight: 600; -} -.Header { - background-color: #273e48; - box-shadow: 0px -5px 7px 5px #777; -} -.Header-sidenav { - padding: 5px 20px; - width: 15vw; -} -.Header-logo { - color: #fff; - font-size: 6rem; - text-align: center; -} -.Nav { - color: #fff; - margin: 30px auto; - color: rgba(229,229,229,0.7); -} -.Nav-item { - display: flex; - align-items: center; - margin: 10px auto; - color: rgba(229,229,229,0.7); - cursor: pointer; -} -.Nav-item:hover { - color: #f0f0f0; -} -.Nav-item-text { - font-size: 0.8rem; - margin-left: 15px; -} -.Nav-item[data-lastitem] { - margin-top: 15px; -} -.iconstyle { - font-size: 1.4rem; - display: flex; - align-items: center; -} -.iconstyle[data-cross] { - font-size: 1.4rem; -} -.notifi { - background-color: rgba(88,114,125,0.9); - margin-left: 30px; - font-size: 0.8rem; - width: 16px; - text-align: center; - padding: 2px; - border-radius: 2px; -} -.MyCard { - margin-top: 10px; - margin-bottom: 30px; - display: flex; - flex-direction: column; - align-items: center; -} -.MyCard-photo { - width: 100px; - border-radius: 50%; - padding: 2px; -} -.MyCard-photo-img { - background-color: #e0e0e0; - width: 100px; - border-radius: 50%; -} -.MyCard-name { - display: flex; - flex-direction: column; - text-align: center; - justify-content: center; -} -.MyCard--textStyle { - font-family: 'Roboto Condensed', sans-serif; - color: rgba(229,229,229,0.7); -} -.MyCard-title { - color: #fafafa; - font-family: 'Noto Serif'; - font-style: italic; - margin-top: -7px; - display: flex; - align-items: center; - justify-content: center; -} -.Section { - width: 85vw; - background-color: rgba(229,229,229,0.7); -} -.Section-secciones { - display: flex; - flex-wrap: wrap; - margin: 30px auto; - flex-direction: row; - justify-content: space-around; - align-items: flex-start; - align-content: space-around; -} -.Section-item { - width: 250px; - margin: 10px; -} -.Font-playfair { - font-family: 'Playfair Display' serif; -} -.Font-abril { - font-family: 'Abril Fatface' cursive; -} -.Font-bevan { - font-family: 'Bevan' cursive; -} -.Font-alegreya { - font-family: 'Alegreya Sans' sans-serif; -} -.Font-francois { - font-family: 'Francois One' sans-serif; -} -.Font-librebasker { - font-family: 'Libre Baskerville' serif; -} -.Font-lato { - font-family: 'Lato' sans-serif; -} -.Font-merriw { - font-family: 'Merriweather' serif; -} -.Font-merriws { - font-family: 'Merriweather Sans' sans-serif; -} -.Font-openssans { - font-family: 'Open Sans' sans-serif; -} -.Font-roboto { - font-family: 'Roboto Condensed' sans-serif; -} -.FontStylebold { - font-style: bold; - font-weight: 700; -} -.Fontcolor1 { - color: rgba(39,62,72,0.86); -} -@media screen and (max-width: 320px) { - main { - display: flex; - flex-direction: row; - } - .Section { - width: 100vw; - } - .Section-secciones { - flex-direction: column; - } - .Header { - box-shadow: -1px 4px 2px 0px #777; - } - .Header-sidenav { - width: 100%; - padding: 0px; - } - .MyCard { - margin-top: 0px; - } - .Formpanel { - items-align: center; - margin-top: 2rem; - width: 90vw; - } -} -@media screen and (max-width: 720px) { - main { - display: flex; - flex-direction: column; - } - .Section { - width: 100vw; - } - .Section-secciones { - flex-direction: row; - flex-wrap: wrap; - } - .Header { - box-shadow: -1px 4px 2px 0px #777; - } - .Header-sidenav { - padding: 0px; - width: 100%; - } - .MyCard { - margin-top: 0px; - } - .Formpanel { - items-align: center; - margin-top: 2rem; - width: 90vw; - } -} diff --git a/routes/form.js b/routes/form.js index b82e378..3124b20 100644 --- a/routes/form.js +++ b/routes/form.js @@ -2,6 +2,13 @@ var express = require('express'); var router = express.Router(); /* GET users listing. */ +router.get('/form', function(req, res, next) { + res.render('form', { + title: 'Form', + user: req.user + }); +}); + router.post('/addpage', function(req, res) { // var webname = req.body.webname; // var propietario = req.body.propietario; diff --git a/routes/index.js b/routes/index.js index abd3412..683d2cd 100644 --- a/routes/index.js +++ b/routes/index.js @@ -3,6 +3,7 @@ var router = express.Router(); var User = require('../models/User.js') var passport = require('passport'); + /* GET home page. */ router.get('/', function(req, res, next) { res.render('login', { title: 'Login' }); @@ -15,6 +16,9 @@ router.get('/index', function(req, res, next) { }); //console.log(req) }); + + +//-------- Rutas para FORM - formulario que agrega páginas al catalogo router.get('/form', function(req, res, next) { res.render('form', { title: 'Form', @@ -22,7 +26,7 @@ router.get('/form', function(req, res, next) { }); }); -router.post('/addpage', function(req, res) { +router.post('/form', function(req, res) { // var webname = req.body.webname; // var propietario = req.body.propietario; // User.addUser(username, propietario, function(err, user){ @@ -34,6 +38,15 @@ router.post('/addpage', function(req, res) { // }); }); + +// ---- Rutas para Pages Stored +router.get('/stored', function(req, res, next) { + res.render('stored', { + title: 'Stored', + user: req.user + }); +}); + //Rutas para Social Login ----> //ruta para desloguear @@ -41,6 +54,7 @@ router.get('/logout', function(req, res) { req.logout(); res.redirect('/'); }); + // Ruta para autenticarse con Twitter (enlace de login) router.get('/auth/twitter', passport.authenticate('twitter')); // Ruta para autenticarse con Facebook (enlace de login) diff --git a/routes/users.js b/routes/users.js deleted file mode 100644 index b82e378..0000000 --- a/routes/users.js +++ /dev/null @@ -1,14 +0,0 @@ -var express = require('express'); -var router = express.Router(); - -/* GET users listing. */ -router.post('/addpage', function(req, res) { - // var webname = req.body.webname; - // var propietario = req.body.propietario; - // User.addUser(username, propietario, function(err, user){ - // console.log(username + " " + password); - res.render('form', { title: 'Form' }); - // }); -}); - -module.exports = router; diff --git a/views/models_jade/Add-nueva-pagina/template.jade b/views/models_jade/Add-nueva-pagina/template.jade index d9cc7db..bf5273e 100644 --- a/views/models_jade/Add-nueva-pagina/template.jade +++ b/views/models_jade/Add-nueva-pagina/template.jade @@ -1,12 +1,13 @@ -.titulo1.margin20.Font-francois.FontStylebold.Fontcolor1 Agregar nueva página al catálogo - .titulo2.Font-alegreya Sistema de Administración de catálogo -.divider +section + .titulo1.margin20.Font-francois.FontStylebold.Fontcolor1 Agregar nueva página al catálogo + .titulo2.Font-alegreya Sistema de Administración de catálogo + .divider .Section-secciones .Section-agregar.box.Formpanel .titulo3.margin10.Font-francois.Fontcolor1 Formulario .divider .Form - form(id="agregarweb", method="post", action="/addpage", class="Form-add") + form(id="agregarweb", method="post", action="/form", class="Form-add") .inputstyle.Fontcolor1 label(for="input-nombre", class="lbl") Nombre de la nueva web: input(type="text", id="input-nombre", name="namepage") diff --git a/views/models_jade/Bienvenido/template.jade b/views/models_jade/Bienvenido/template.jade index 7e6dfa1..b1770cb 100644 --- a/views/models_jade/Bienvenido/template.jade +++ b/views/models_jade/Bienvenido/template.jade @@ -9,8 +9,8 @@ p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis .divider .btnstyle1 - button.btn - a(href="/form", class="linknone") Ir + button.btn(onClick="location.href='/form'") Ir + //a(href="/form", class="linknone") Ir .Section-item.box.flexbox-colwrp .titulo3.margin10.Font-francois.Fontcolor1 Agregar categoría .divider @@ -18,7 +18,7 @@ p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis .divider .btnstyle1 - button.btn Ir + button.btn(onClick="location.href='/stored'") Ir .Section-item.box.flexbox-colwrp .titulo3.margin10.Font-francois.Fontcolor1 Ver la base de datos .divider @@ -26,7 +26,7 @@ p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis .divider .btnstyle1 - button.btn Ir + button.btn(onClick="location.href='/stored'") Ir .Section-item.box.flexbox-colwrp .titulo3.margin10.Font-francois.Fontcolor1 Ver estadísticas diff --git a/views/models_jade/Pages-stored.jade/template.jade b/views/models_jade/Pages-stored.jade/template.jade new file mode 100644 index 0000000..61e7c72 --- /dev/null +++ b/views/models_jade/Pages-stored.jade/template.jade @@ -0,0 +1,30 @@ +.titulo1.margin20.Font-francois.FontStylebold.Fontcolor1 Agregar nueva página al catálogo + .titulo2.Font-alegreya Sistema de Administración de catálogo +.divider +.Section-secciones + .Section-agregar.box.Formpanel + .titulo3.margin10.Font-francois.Fontcolor1 Formulario + .divider + .Form + form(id="agregarweb", method="post", action="/form", class="Form-add") + .inputstyle.Fontcolor1 + label(for="input-nombre", class="lbl") Nombre de la nueva web: + input(type="text", id="input-nombre", name="namepage") + .inputstyle.Fontcolor1 + label(for="input-nombre", class="lbl") Nombre del propietario: + input(type="text", id="input-propietario", placeholder="", name="propietario") + .inputstyle.Fontcolor1 + label(class="lbl") Categoría: + select.box + option(selected) Negocios: + option Música + option Blogs + .inputstyle.Font-openssans.Fontcolor1 + label(class="lbl") Tipo: + select.box + option(selected) Estática + option Dinamicas + option Sistemas + .divider + .btnstyle.Font-openssans + input(type="submit", class="btn", value="Salvar") diff --git a/views/models_jade/Pages-stored/template.jade b/views/models_jade/Pages-stored/template.jade new file mode 100644 index 0000000..276c0b4 --- /dev/null +++ b/views/models_jade/Pages-stored/template.jade @@ -0,0 +1,31 @@ +section + .titulo1.margin20.Font-francois.FontStylebold.Fontcolor1 Páginas almacenadas + .titulo2.Font-alegreya Sistema de Administración de catálogo + .divider +.Section-secciones + .Section-agregar.box + //- .titulo3.margin10.Font-francois.Fontcolor1 Formulario + //- .divider + //- .Form + //- form(id="agregarweb", method="post", action="/form", class="Form-add") + //- .inputstyle.Fontcolor1 + //- label(for="input-nombre", class="lbl") Nombre de la nueva web: + //- input(type="text", id="input-nombre", name="namepage") + //- .inputstyle.Fontcolor1 + //- label(for="input-nombre", class="lbl") Nombre del propietario: + //- input(type="text", id="input-propietario", placeholder="", name="propietario") + //- .inputstyle.Fontcolor1 + //- label(class="lbl") Categoría: + //- select.box + //- option(selected) Negocios: + //- option Música + //- option Blogs + //- .inputstyle.Font-openssans.Fontcolor1 + //- label(class="lbl") Tipo: + //- select.box + //- option(selected) Estática + //- option Dinamicas + //- option Sistemas + //- .divider + //- .btnstyle.Font-openssans + //- input(type="submit", class="btn", value="Salvar") diff --git a/views/stored.jade b/views/stored.jade new file mode 100644 index 0000000..4291d8b --- /dev/null +++ b/views/stored.jade @@ -0,0 +1,7 @@ +extends layout + +block content + + include ./models_jade/Header/template.jade + include ./models_jade/Section-main/template.jade + include ./models_jade/Pages-stored/template.jade From 7d6e2b36d060164eeee8ba30829dd339b04234a9 Mon Sep 17 00:00:00 2001 From: daniel nava Date: Thu, 1 Oct 2015 22:06:36 -0500 Subject: [PATCH 09/18] ya muestra tabla de usuario --- lib/db.js | 4 +- models/User.js | 7 +++- public/stylesheets/style.css | 13 ++++++ routes/index.js | 20 +++++++--- .../Pages-stored.jade/template.jade | 30 -------------- views/models_jade/Pages-stored/style.styl | 9 +++++ views/models_jade/Pages-stored/template.jade | 40 +++++++------------ views/models_jade/styles/style.styl | 1 + 8 files changed, 60 insertions(+), 64 deletions(-) delete mode 100644 views/models_jade/Pages-stored.jade/template.jade create mode 100644 views/models_jade/Pages-stored/style.styl diff --git a/lib/db.js b/lib/db.js index cb53a10..c13b19e 100644 --- a/lib/db.js +++ b/lib/db.js @@ -6,8 +6,8 @@ module.exports.Schema = Schema; var dbuser = "dani"; var dbpassword = "123"; -var dbaddress = "@ds059908.mongolab.com:59908/labasebkp"; - +// var dbaddress = "@ds059908.mongolab.com:59908/labasebkp"; +var dbaddress = "@ds041871.mongolab.com:41871/labase" connect(); function connect(){ diff --git a/models/User.js b/models/User.js index 4942a38..d4e9275 100644 --- a/models/User.js +++ b/models/User.js @@ -6,12 +6,17 @@ var db = require('../lib/db'); // Campos que vamos a guardar en la base de datos var UserSchema = new db.Schema({ name : String, // Nombre del usuario - //provider : String, // Cuenta del usuario (Twitter o Facebook en este ejemplo) + provider : String, // Cuenta del usuario (Twitter o Facebook en este ejemplo) provider_id : {type: String}, // ID que proporciona Twitter o Facebook photo : String, // Avatar o foto del usuario createdAt : {type: Date, default: Date.now} // Fecha de creación }); +// var UserSchema.statics.findByName = function (name, cb) { +// return this.find({ name: new RegExp(name, 'i') }, cb); +// } // Exportamos el modelo 'User' para usarlo en otras // partes de la aplicación var User = db.mongoose.model('User', UserSchema); + +module.exports = UserSchema diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css index 5316fb0..369db11 100644 --- a/public/stylesheets/style.css +++ b/public/stylesheets/style.css @@ -442,6 +442,19 @@ select option["selected"] { width: 250px; margin: 10px; } +.Table { + width: 800px; +} +.Table-user-photo { + width: 40px; + border-radius: 50%; +} +.th { + text-align: justify; +} +.td { + margin-top: 10px; +} .Font-playfair { font-family: 'Playfair Display' serif; } diff --git a/routes/index.js b/routes/index.js index 683d2cd..e185067 100644 --- a/routes/index.js +++ b/routes/index.js @@ -1,6 +1,10 @@ var express = require('express'); var router = express.Router(); -var User = require('../models/User.js') + +var userschema = require('../models/User') +var db = require('../lib/db'); +var User = db.mongoose.model('User', userschema); + var passport = require('passport'); @@ -41,10 +45,16 @@ router.post('/form', function(req, res) { // ---- Rutas para Pages Stored router.get('/stored', function(req, res, next) { - res.render('stored', { - title: 'Stored', - user: req.user - }); + User.find({}, function(err, docs){ + if(err) throw(err) + else{ + res.render('stored', { + title: 'Stored', + user: req.user, + users: docs + }); + } + }) }); //Rutas para Social Login ----> diff --git a/views/models_jade/Pages-stored.jade/template.jade b/views/models_jade/Pages-stored.jade/template.jade deleted file mode 100644 index 61e7c72..0000000 --- a/views/models_jade/Pages-stored.jade/template.jade +++ /dev/null @@ -1,30 +0,0 @@ -.titulo1.margin20.Font-francois.FontStylebold.Fontcolor1 Agregar nueva página al catálogo - .titulo2.Font-alegreya Sistema de Administración de catálogo -.divider -.Section-secciones - .Section-agregar.box.Formpanel - .titulo3.margin10.Font-francois.Fontcolor1 Formulario - .divider - .Form - form(id="agregarweb", method="post", action="/form", class="Form-add") - .inputstyle.Fontcolor1 - label(for="input-nombre", class="lbl") Nombre de la nueva web: - input(type="text", id="input-nombre", name="namepage") - .inputstyle.Fontcolor1 - label(for="input-nombre", class="lbl") Nombre del propietario: - input(type="text", id="input-propietario", placeholder="", name="propietario") - .inputstyle.Fontcolor1 - label(class="lbl") Categoría: - select.box - option(selected) Negocios: - option Música - option Blogs - .inputstyle.Font-openssans.Fontcolor1 - label(class="lbl") Tipo: - select.box - option(selected) Estática - option Dinamicas - option Sistemas - .divider - .btnstyle.Font-openssans - input(type="submit", class="btn", value="Salvar") diff --git a/views/models_jade/Pages-stored/style.styl b/views/models_jade/Pages-stored/style.styl new file mode 100644 index 0000000..d0262ed --- /dev/null +++ b/views/models_jade/Pages-stored/style.styl @@ -0,0 +1,9 @@ +.Table + width 800px + &-user-photo + width 40px + border-radius 50% +.th + text-align justify +.td + margin-top 10px diff --git a/views/models_jade/Pages-stored/template.jade b/views/models_jade/Pages-stored/template.jade index 276c0b4..7bba9a0 100644 --- a/views/models_jade/Pages-stored/template.jade +++ b/views/models_jade/Pages-stored/template.jade @@ -3,29 +3,17 @@ section .titulo2.Font-alegreya Sistema de Administración de catálogo .divider .Section-secciones - .Section-agregar.box - //- .titulo3.margin10.Font-francois.Fontcolor1 Formulario - //- .divider - //- .Form - //- form(id="agregarweb", method="post", action="/form", class="Form-add") - //- .inputstyle.Fontcolor1 - //- label(for="input-nombre", class="lbl") Nombre de la nueva web: - //- input(type="text", id="input-nombre", name="namepage") - //- .inputstyle.Fontcolor1 - //- label(for="input-nombre", class="lbl") Nombre del propietario: - //- input(type="text", id="input-propietario", placeholder="", name="propietario") - //- .inputstyle.Fontcolor1 - //- label(class="lbl") Categoría: - //- select.box - //- option(selected) Negocios: - //- option Música - //- option Blogs - //- .inputstyle.Font-openssans.Fontcolor1 - //- label(class="lbl") Tipo: - //- select.box - //- option(selected) Estática - //- option Dinamicas - //- option Sistemas - //- .divider - //- .btnstyle.Font-openssans - //- input(type="submit", class="btn", value="Salvar") + .box + table(class="Table") + thead + tr + th(class="th" data-field='id') Usuario + th(class="th" data-field='name') Provedor + th(class="th" data-field='price') Foto + tbody + each user in users + tr(class="tr") + td(class="td") #{user.name} + td(class="td") #{user.provider} + td(class="td") + img(src="#{user.photo}", class="Table-user-photo") diff --git a/views/models_jade/styles/style.styl b/views/models_jade/styles/style.styl index 316acc8..ac96d08 100644 --- a/views/models_jade/styles/style.styl +++ b/views/models_jade/styles/style.styl @@ -79,6 +79,7 @@ body @import "../Header/style.styl" @import "../Card/style.styl" @import "../Bienvenido/style.styl" +@import "../Pages-stored/style.styl" @import "style-fuentes.styl" From 1b63be4f18c1aba0c5a382bc7e27c94b0bb92136 Mon Sep 17 00:00:00 2001 From: daniel nava Date: Sat, 10 Oct 2015 13:24:01 -0500 Subject: [PATCH 10/18] _ --- routes/index.js | 14 ++++++++++++++ views/admin-users.jade | 7 +++++++ .../{Pages-stored => Admin-users}/style.styl | 0 .../{Pages-stored => Admin-users}/template.jade | 2 +- views/models_jade/Bienvenido/template.jade | 2 +- views/stored.jade | 2 +- 6 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 views/admin-users.jade rename views/models_jade/{Pages-stored => Admin-users}/style.styl (100%) rename views/models_jade/{Pages-stored => Admin-users}/template.jade (86%) diff --git a/routes/index.js b/routes/index.js index e185067..6a3d62f 100644 --- a/routes/index.js +++ b/routes/index.js @@ -57,6 +57,20 @@ router.get('/stored', function(req, res, next) { }) }); +// --- Ruta para Usuarios Administradores +router.get('/admin-users', function(req, res, next) { + User.find({}, function(err, docs){ + if(err) throw(err) + else{ + res.render('admin-users', { + title: 'Stored', + user: req.user, + users: docs + }); + } + }) +}); + //Rutas para Social Login ----> //ruta para desloguear diff --git a/views/admin-users.jade b/views/admin-users.jade new file mode 100644 index 0000000..6fc709f --- /dev/null +++ b/views/admin-users.jade @@ -0,0 +1,7 @@ +extends layout + +block content + + include ./models_jade/Header/template.jade + include ./models_jade/Section-main/template.jade + include ./models_jade/Admin-users/template.jade diff --git a/views/models_jade/Pages-stored/style.styl b/views/models_jade/Admin-users/style.styl similarity index 100% rename from views/models_jade/Pages-stored/style.styl rename to views/models_jade/Admin-users/style.styl diff --git a/views/models_jade/Pages-stored/template.jade b/views/models_jade/Admin-users/template.jade similarity index 86% rename from views/models_jade/Pages-stored/template.jade rename to views/models_jade/Admin-users/template.jade index 7bba9a0..b9bb055 100644 --- a/views/models_jade/Pages-stored/template.jade +++ b/views/models_jade/Admin-users/template.jade @@ -1,5 +1,5 @@ section - .titulo1.margin20.Font-francois.FontStylebold.Fontcolor1 Páginas almacenadas + .titulo1.margin20.Font-francois.FontStylebold.Fontcolor1 Usuarios Administradores .titulo2.Font-alegreya Sistema de Administración de catálogo .divider .Section-secciones diff --git a/views/models_jade/Bienvenido/template.jade b/views/models_jade/Bienvenido/template.jade index b1770cb..1d9e6d3 100644 --- a/views/models_jade/Bienvenido/template.jade +++ b/views/models_jade/Bienvenido/template.jade @@ -43,7 +43,7 @@ p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis .divider .btnstyle1 - button.btn Ir + button.btn(onClick="location.href='/admin-users'") Ir .Section-item.box.flexbox-colwrp .titulo3.margin10.Font-francois.Fontcolor1 Ver archivos .divider diff --git a/views/stored.jade b/views/stored.jade index 4291d8b..0d556b4 100644 --- a/views/stored.jade +++ b/views/stored.jade @@ -4,4 +4,4 @@ block content include ./models_jade/Header/template.jade include ./models_jade/Section-main/template.jade - include ./models_jade/Pages-stored/template.jade + //include ./models_jade/Admin-users/template.jade From c305aaff00d5e6f2c1d81c7e7e9ad05df512092d Mon Sep 17 00:00:00 2001 From: Luis Santiago Date: Tue, 20 Oct 2015 13:09:25 +0000 Subject: [PATCH 11/18] Commit inicial --- README.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 README.txt diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..e69de29 From c4a4237a24803463e16a97a8215deb3fcb17c43a Mon Sep 17 00:00:00 2001 From: Luis Santiago Date: Tue, 20 Oct 2015 13:11:48 +0000 Subject: [PATCH 12/18] Se agrego .gitignore --- .gitignore | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3d1ea5d --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +node_modules/ +config.js + +lib-cov +*.seed +*.log +*.csv +*.dat +*.out +*.pid +*.gz + +pids +logs +results + +npm-debug.log From 02e739791b63685751e0b12c142f7eff4defc269 Mon Sep 17 00:00:00 2001 From: Luis Santiago Date: Tue, 20 Oct 2015 13:18:03 +0000 Subject: [PATCH 13/18] =?UTF-8?q?Creaci=C3=B3n=20de=20estructura=20con=20e?= =?UTF-8?q?xpress?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.js | 61 ++++++++++++++++++++++++ bin/www | 90 +++++++++++++++++++++++++++++++++++ package.json | 18 +++++++ public/stylesheets/style.styl | 5 ++ routes/index.js | 9 ++++ routes/users.js | 9 ++++ views/error.jade | 6 +++ views/index.jade | 5 ++ views/layout.jade | 7 +++ 9 files changed, 210 insertions(+) create mode 100644 app.js create mode 100644 bin/www create mode 100644 package.json create mode 100644 public/stylesheets/style.styl create mode 100644 routes/index.js create mode 100644 routes/users.js create mode 100644 views/error.jade create mode 100644 views/index.jade create mode 100644 views/layout.jade diff --git a/app.js b/app.js new file mode 100644 index 0000000..9d5a4ab --- /dev/null +++ b/app.js @@ -0,0 +1,61 @@ +var express = require('express'); +var path = require('path'); +var favicon = require('serve-favicon'); +var logger = require('morgan'); +var cookieParser = require('cookie-parser'); +var bodyParser = require('body-parser'); + +var routes = require('./routes/index'); +var users = require('./routes/users'); + +var app = express(); + +// view engine setup +app.set('views', path.join(__dirname, 'views')); +app.set('view engine', 'jade'); + +// uncomment after placing your favicon in /public +//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); +app.use(logger('dev')); +app.use(bodyParser.json()); +app.use(bodyParser.urlencoded({ extended: false })); +app.use(cookieParser()); +app.use(require('stylus').middleware(path.join(__dirname, 'public'))); +app.use(express.static(path.join(__dirname, 'public'))); + +app.use('/', routes); +app.use('/users', users); + +// catch 404 and forward to error handler +app.use(function(req, res, next) { + var err = new Error('Not Found'); + err.status = 404; + next(err); +}); + +// error handlers + +// development error handler +// will print stacktrace +if (app.get('env') === 'development') { + app.use(function(err, req, res, next) { + res.status(err.status || 500); + res.render('error', { + message: err.message, + error: err + }); + }); +} + +// production error handler +// no stacktraces leaked to user +app.use(function(err, req, res, next) { + res.status(err.status || 500); + res.render('error', { + message: err.message, + error: {} + }); +}); + + +module.exports = app; diff --git a/bin/www b/bin/www new file mode 100644 index 0000000..945ef1e --- /dev/null +++ b/bin/www @@ -0,0 +1,90 @@ +#!/usr/bin/env node + +/** + * Module dependencies. + */ + +var app = require('../app'); +var debug = require('debug')('webadmin:server'); +var http = require('http'); + +/** + * Get port from environment and store in Express. + */ + +var port = normalizePort(process.env.PORT || '3000'); +app.set('port', port); + +/** + * Create HTTP server. + */ + +var server = http.createServer(app); + +/** + * Listen on provided port, on all network interfaces. + */ + +server.listen(port); +server.on('error', onError); +server.on('listening', onListening); + +/** + * Normalize a port into a number, string, or false. + */ + +function normalizePort(val) { + var port = parseInt(val, 10); + + if (isNaN(port)) { + // named pipe + return val; + } + + if (port >= 0) { + // port number + return port; + } + + return false; +} + +/** + * Event listener for HTTP server "error" event. + */ + +function onError(error) { + if (error.syscall !== 'listen') { + throw error; + } + + var bind = typeof port === 'string' + ? 'Pipe ' + port + : 'Port ' + port; + + // handle specific listen errors with friendly messages + switch (error.code) { + case 'EACCES': + console.error(bind + ' requires elevated privileges'); + process.exit(1); + break; + case 'EADDRINUSE': + console.error(bind + ' is already in use'); + process.exit(1); + break; + default: + throw error; + } +} + +/** + * Event listener for HTTP server "listening" event. + */ + +function onListening() { + var addr = server.address(); + var bind = typeof addr === 'string' + ? 'pipe ' + addr + : 'port ' + addr.port; + debug('Listening on ' + bind); +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..4881cc2 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "webadmin", + "version": "0.0.0", + "private": true, + "scripts": { + "start": "node ./bin/www" + }, + "dependencies": { + "body-parser": "~1.13.2", + "cookie-parser": "~1.3.5", + "debug": "~2.2.0", + "express": "~4.13.1", + "jade": "~1.11.0", + "morgan": "~1.6.1", + "serve-favicon": "~2.3.0", + "stylus": "0.42.3" + } +} \ No newline at end of file diff --git a/public/stylesheets/style.styl b/public/stylesheets/style.styl new file mode 100644 index 0000000..98047c5 --- /dev/null +++ b/public/stylesheets/style.styl @@ -0,0 +1,5 @@ +body + padding: 50px + font: 14px "Lucida Grande", Helvetica, Arial, sans-serif +a + color: #00B7FF diff --git a/routes/index.js b/routes/index.js new file mode 100644 index 0000000..ecca96a --- /dev/null +++ b/routes/index.js @@ -0,0 +1,9 @@ +var express = require('express'); +var router = express.Router(); + +/* GET home page. */ +router.get('/', function(req, res, next) { + res.render('index', { title: 'Express' }); +}); + +module.exports = router; diff --git a/routes/users.js b/routes/users.js new file mode 100644 index 0000000..623e430 --- /dev/null +++ b/routes/users.js @@ -0,0 +1,9 @@ +var express = require('express'); +var router = express.Router(); + +/* GET users listing. */ +router.get('/', function(req, res, next) { + res.send('respond with a resource'); +}); + +module.exports = router; diff --git a/views/error.jade b/views/error.jade new file mode 100644 index 0000000..51ec12c --- /dev/null +++ b/views/error.jade @@ -0,0 +1,6 @@ +extends layout + +block content + h1= message + h2= error.status + pre #{error.stack} diff --git a/views/index.jade b/views/index.jade new file mode 100644 index 0000000..3d63b9a --- /dev/null +++ b/views/index.jade @@ -0,0 +1,5 @@ +extends layout + +block content + h1= title + p Welcome to #{title} diff --git a/views/layout.jade b/views/layout.jade new file mode 100644 index 0000000..15af079 --- /dev/null +++ b/views/layout.jade @@ -0,0 +1,7 @@ +doctype html +html + head + title= title + link(rel='stylesheet', href='/stylesheets/style.css') + body + block content From 1f43c6da741fa6e8a023dd8c930701ce51b4acbc Mon Sep 17 00:00:00 2001 From: Luis Santiago Date: Tue, 20 Oct 2015 13:37:46 +0000 Subject: [PATCH 14/18] =?UTF-8?q?Actualizaci=C3=B3n=20de=20package.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 4881cc2..0f04758 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,11 @@ "version": "0.0.0", "private": true, "scripts": { - "start": "node ./bin/www" + "start": "nodemon ./bin/www" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/NerdStudio/webadmin.git" }, "dependencies": { "body-parser": "~1.13.2", @@ -11,8 +15,11 @@ "debug": "~2.2.0", "express": "~4.13.1", "jade": "~1.11.0", + "mongoose": "^4.1.12", "morgan": "~1.6.1", + "nodemon": "^1.7.3", + "normalize-styl": "^3.0.3", "serve-favicon": "~2.3.0", "stylus": "0.42.3" } -} \ No newline at end of file +} From 364301f37475ec3c723762d8e515c1dfd46186fb Mon Sep 17 00:00:00 2001 From: Luis Santiago Date: Wed, 21 Oct 2015 12:52:42 +0000 Subject: [PATCH 15/18] funcionan todas las vistas --- app.js | 6 + package.json | 4 +- public/fonts/icomoon.eot | Bin 0 -> 27836 bytes public/fonts/icomoon.svg | 277 + public/fonts/icomoon.ttf | Bin 0 -> 27672 bytes public/fonts/icomoon.woff | Bin 0 -> 27752 bytes public/fonts/icomoon.zip | Bin 0 -> 423311 bytes public/stylesheets/materialize.css | 7921 +++++++++++++++++ public/stylesheets/style-fonts.css | 325 + public/stylesheets/style-fuentes.css | 40 + public/stylesheets/style.css | 570 ++ public/stylesheets/style.styl | 5 - routes/form.js | 20 + routes/session.js | 8 + routes/webadmin.js | 9 + views/form.jade | 20 + views/layout.jade | 21 +- views/login.jade | 18 + views/models_jade/Add-nueva-pagina/style.styl | 83 + .../Add-nueva-pagina/template.jade | 31 + views/models_jade/Bienvenido/style.styl | 16 + views/models_jade/Bienvenido/template.jade | 54 + views/models_jade/Card/style.styl | 39 + views/models_jade/Card/template.jade | 12 + views/models_jade/Header/style.styl | 49 + views/models_jade/Header/template.jade | 25 + .../Pages-stored.jade/template.jade | 30 + views/models_jade/Pages-stored/template.jade | 31 + views/models_jade/Section-main/template.jade | 3 + views/models_jade/styles/style-fuentes.styl | 28 + views/models_jade/styles/style.styl | 159 + views/session.jade | 10 + 32 files changed, 9804 insertions(+), 10 deletions(-) create mode 100644 public/fonts/icomoon.eot create mode 100644 public/fonts/icomoon.svg create mode 100644 public/fonts/icomoon.ttf create mode 100644 public/fonts/icomoon.woff create mode 100644 public/fonts/icomoon.zip create mode 100644 public/stylesheets/materialize.css create mode 100644 public/stylesheets/style-fonts.css create mode 100644 public/stylesheets/style-fuentes.css create mode 100644 public/stylesheets/style.css delete mode 100644 public/stylesheets/style.styl create mode 100644 routes/form.js create mode 100644 routes/session.js create mode 100644 routes/webadmin.js create mode 100644 views/form.jade create mode 100644 views/login.jade create mode 100644 views/models_jade/Add-nueva-pagina/style.styl create mode 100644 views/models_jade/Add-nueva-pagina/template.jade create mode 100644 views/models_jade/Bienvenido/style.styl create mode 100644 views/models_jade/Bienvenido/template.jade create mode 100644 views/models_jade/Card/style.styl create mode 100644 views/models_jade/Card/template.jade create mode 100644 views/models_jade/Header/style.styl create mode 100644 views/models_jade/Header/template.jade create mode 100644 views/models_jade/Pages-stored.jade/template.jade create mode 100644 views/models_jade/Pages-stored/template.jade create mode 100644 views/models_jade/Section-main/template.jade create mode 100644 views/models_jade/styles/style-fuentes.styl create mode 100644 views/models_jade/styles/style.styl create mode 100644 views/session.jade diff --git a/app.js b/app.js index 9d5a4ab..c9cb3cd 100644 --- a/app.js +++ b/app.js @@ -7,6 +7,9 @@ var bodyParser = require('body-parser'); var routes = require('./routes/index'); var users = require('./routes/users'); +var webadmin = require('./routes/webadmin'); +var session = require('./routes/session'); +var form = require('./routes/form'); var app = express(); @@ -25,6 +28,9 @@ app.use(express.static(path.join(__dirname, 'public'))); app.use('/', routes); app.use('/users', users); +app.use('/webadmin', webadmin); +app.use('/session', session); +app.use('/form', form); // catch 404 and forward to error handler app.use(function(req, res, next) { diff --git a/package.json b/package.json index 0f04758..43e1ba9 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,9 @@ "version": "0.0.0", "private": true, "scripts": { - "start": "nodemon ./bin/www" + "start": "nodemon ./bin/www", + "stylus": "stylus --use nib --watch ./views/models_jade/styles --out ./public/stylesheets" + }, "repository": { "type": "git", diff --git a/public/fonts/icomoon.eot b/public/fonts/icomoon.eot new file mode 100644 index 0000000000000000000000000000000000000000..c82abfe191fbdaeec08e24daca9928df542e7c5e GIT binary patch literal 27836 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 + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/fonts/icomoon.ttf b/public/fonts/icomoon.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d87663e823796a433c508418a52f56b7b374eef1 GIT binary patch literal 27672 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 PMP++1>+rX}+2?-)b02iR literal 0 HcmV?d00001 diff --git a/public/fonts/icomoon.zip b/public/fonts/icomoon.zip new file mode 100644 index 0000000000000000000000000000000000000000..0cbb00adf04f6127a3fdb18476405425634081b4 GIT binary patch literal 423311 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 literal 0 HcmV?d00001 diff --git a/public/stylesheets/materialize.css b/public/stylesheets/materialize.css new file mode 100644 index 0000000..81944bf --- /dev/null +++ b/public/stylesheets/materialize.css @@ -0,0 +1,7921 @@ +.materialize-red.lighten-5 { + background-color: #fdeaeb !important; } + +.materialize-red-text.text-lighten-5 { + color: #fdeaeb !important; } + +.materialize-red.lighten-4 { + background-color: #f8c1c3 !important; } + +.materialize-red-text.text-lighten-4 { + color: #f8c1c3 !important; } + +.materialize-red.lighten-3 { + background-color: #f3989b !important; } + +.materialize-red-text.text-lighten-3 { + color: #f3989b !important; } + +.materialize-red.lighten-2 { + background-color: #ee6e73 !important; } + +.materialize-red-text.text-lighten-2 { + color: #ee6e73 !important; } + +.materialize-red.lighten-1 { + background-color: #ea454b !important; } + +.materialize-red-text.text-lighten-1 { + color: #ea454b !important; } + +.materialize-red { + background-color: #e51c23 !important; } + +.materialize-red-text { + color: #e51c23 !important; } + +.materialize-red.darken-1 { + background-color: #d0181e !important; } + +.materialize-red-text.text-darken-1 { + color: #d0181e !important; } + +.materialize-red.darken-2 { + background-color: #b9151b !important; } + +.materialize-red-text.text-darken-2 { + color: #b9151b !important; } + +.materialize-red.darken-3 { + background-color: #a21318 !important; } + +.materialize-red-text.text-darken-3 { + color: #a21318 !important; } + +.materialize-red.darken-4 { + background-color: #8b1014 !important; } + +.materialize-red-text.text-darken-4 { + color: #8b1014 !important; } + +.red.lighten-5 { + background-color: #FFEBEE !important; } + +.red-text.text-lighten-5 { + color: #FFEBEE !important; } + +.red.lighten-4 { + background-color: #FFCDD2 !important; } + +.red-text.text-lighten-4 { + color: #FFCDD2 !important; } + +.red.lighten-3 { + background-color: #EF9A9A !important; } + +.red-text.text-lighten-3 { + color: #EF9A9A !important; } + +.red.lighten-2 { + background-color: #E57373 !important; } + +.red-text.text-lighten-2 { + color: #E57373 !important; } + +.red.lighten-1 { + background-color: #EF5350 !important; } + +.red-text.text-lighten-1 { + color: #EF5350 !important; } + +.red { + background-color: #F44336 !important; } + +.red-text { + color: #F44336 !important; } + +.red.darken-1 { + background-color: #E53935 !important; } + +.red-text.text-darken-1 { + color: #E53935 !important; } + +.red.darken-2 { + background-color: #D32F2F !important; } + +.red-text.text-darken-2 { + color: #D32F2F !important; } + +.red.darken-3 { + background-color: #C62828 !important; } + +.red-text.text-darken-3 { + color: #C62828 !important; } + +.red.darken-4 { + background-color: #B71C1C !important; } + +.red-text.text-darken-4 { + color: #B71C1C !important; } + +.red.accent-1 { + background-color: #FF8A80 !important; } + +.red-text.text-accent-1 { + color: #FF8A80 !important; } + +.red.accent-2 { + background-color: #FF5252 !important; } + +.red-text.text-accent-2 { + color: #FF5252 !important; } + +.red.accent-3 { + background-color: #FF1744 !important; } + +.red-text.text-accent-3 { + color: #FF1744 !important; } + +.red.accent-4 { + background-color: #D50000 !important; } + +.red-text.text-accent-4 { + color: #D50000 !important; } + +.pink.lighten-5 { + background-color: #fce4ec !important; } + +.pink-text.text-lighten-5 { + color: #fce4ec !important; } + +.pink.lighten-4 { + background-color: #f8bbd0 !important; } + +.pink-text.text-lighten-4 { + color: #f8bbd0 !important; } + +.pink.lighten-3 { + background-color: #f48fb1 !important; } + +.pink-text.text-lighten-3 { + color: #f48fb1 !important; } + +.pink.lighten-2 { + background-color: #f06292 !important; } + +.pink-text.text-lighten-2 { + color: #f06292 !important; } + +.pink.lighten-1 { + background-color: #ec407a !important; } + +.pink-text.text-lighten-1 { + color: #ec407a !important; } + +.pink { + background-color: #e91e63 !important; } + +.pink-text { + color: #e91e63 !important; } + +.pink.darken-1 { + background-color: #d81b60 !important; } + +.pink-text.text-darken-1 { + color: #d81b60 !important; } + +.pink.darken-2 { + background-color: #c2185b !important; } + +.pink-text.text-darken-2 { + color: #c2185b !important; } + +.pink.darken-3 { + background-color: #ad1457 !important; } + +.pink-text.text-darken-3 { + color: #ad1457 !important; } + +.pink.darken-4 { + background-color: #880e4f !important; } + +.pink-text.text-darken-4 { + color: #880e4f !important; } + +.pink.accent-1 { + background-color: #ff80ab !important; } + +.pink-text.text-accent-1 { + color: #ff80ab !important; } + +.pink.accent-2 { + background-color: #ff4081 !important; } + +.pink-text.text-accent-2 { + color: #ff4081 !important; } + +.pink.accent-3 { + background-color: #f50057 !important; } + +.pink-text.text-accent-3 { + color: #f50057 !important; } + +.pink.accent-4 { + background-color: #c51162 !important; } + +.pink-text.text-accent-4 { + color: #c51162 !important; } + +.purple.lighten-5 { + background-color: #f3e5f5 !important; } + +.purple-text.text-lighten-5 { + color: #f3e5f5 !important; } + +.purple.lighten-4 { + background-color: #e1bee7 !important; } + +.purple-text.text-lighten-4 { + color: #e1bee7 !important; } + +.purple.lighten-3 { + background-color: #ce93d8 !important; } + +.purple-text.text-lighten-3 { + color: #ce93d8 !important; } + +.purple.lighten-2 { + background-color: #ba68c8 !important; } + +.purple-text.text-lighten-2 { + color: #ba68c8 !important; } + +.purple.lighten-1 { + background-color: #ab47bc !important; } + +.purple-text.text-lighten-1 { + color: #ab47bc !important; } + +.purple { + background-color: #9c27b0 !important; } + +.purple-text { + color: #9c27b0 !important; } + +.purple.darken-1 { + background-color: #8e24aa !important; } + +.purple-text.text-darken-1 { + color: #8e24aa !important; } + +.purple.darken-2 { + background-color: #7b1fa2 !important; } + +.purple-text.text-darken-2 { + color: #7b1fa2 !important; } + +.purple.darken-3 { + background-color: #6a1b9a !important; } + +.purple-text.text-darken-3 { + color: #6a1b9a !important; } + +.purple.darken-4 { + background-color: #4a148c !important; } + +.purple-text.text-darken-4 { + color: #4a148c !important; } + +.purple.accent-1 { + background-color: #ea80fc !important; } + +.purple-text.text-accent-1 { + color: #ea80fc !important; } + +.purple.accent-2 { + background-color: #e040fb !important; } + +.purple-text.text-accent-2 { + color: #e040fb !important; } + +.purple.accent-3 { + background-color: #d500f9 !important; } + +.purple-text.text-accent-3 { + color: #d500f9 !important; } + +.purple.accent-4 { + background-color: #aa00ff !important; } + +.purple-text.text-accent-4 { + color: #aa00ff !important; } + +.deep-purple.lighten-5 { + background-color: #ede7f6 !important; } + +.deep-purple-text.text-lighten-5 { + color: #ede7f6 !important; } + +.deep-purple.lighten-4 { + background-color: #d1c4e9 !important; } + +.deep-purple-text.text-lighten-4 { + color: #d1c4e9 !important; } + +.deep-purple.lighten-3 { + background-color: #b39ddb !important; } + +.deep-purple-text.text-lighten-3 { + color: #b39ddb !important; } + +.deep-purple.lighten-2 { + background-color: #9575cd !important; } + +.deep-purple-text.text-lighten-2 { + color: #9575cd !important; } + +.deep-purple.lighten-1 { + background-color: #7e57c2 !important; } + +.deep-purple-text.text-lighten-1 { + color: #7e57c2 !important; } + +.deep-purple { + background-color: #673ab7 !important; } + +.deep-purple-text { + color: #673ab7 !important; } + +.deep-purple.darken-1 { + background-color: #5e35b1 !important; } + +.deep-purple-text.text-darken-1 { + color: #5e35b1 !important; } + +.deep-purple.darken-2 { + background-color: #512da8 !important; } + +.deep-purple-text.text-darken-2 { + color: #512da8 !important; } + +.deep-purple.darken-3 { + background-color: #4527a0 !important; } + +.deep-purple-text.text-darken-3 { + color: #4527a0 !important; } + +.deep-purple.darken-4 { + background-color: #311b92 !important; } + +.deep-purple-text.text-darken-4 { + color: #311b92 !important; } + +.deep-purple.accent-1 { + background-color: #b388ff !important; } + +.deep-purple-text.text-accent-1 { + color: #b388ff !important; } + +.deep-purple.accent-2 { + background-color: #7c4dff !important; } + +.deep-purple-text.text-accent-2 { + color: #7c4dff !important; } + +.deep-purple.accent-3 { + background-color: #651fff !important; } + +.deep-purple-text.text-accent-3 { + color: #651fff !important; } + +.deep-purple.accent-4 { + background-color: #6200ea !important; } + +.deep-purple-text.text-accent-4 { + color: #6200ea !important; } + +.indigo.lighten-5 { + background-color: #e8eaf6 !important; } + +.indigo-text.text-lighten-5 { + color: #e8eaf6 !important; } + +.indigo.lighten-4 { + background-color: #c5cae9 !important; } + +.indigo-text.text-lighten-4 { + color: #c5cae9 !important; } + +.indigo.lighten-3 { + background-color: #9fa8da !important; } + +.indigo-text.text-lighten-3 { + color: #9fa8da !important; } + +.indigo.lighten-2 { + background-color: #7986cb !important; } + +.indigo-text.text-lighten-2 { + color: #7986cb !important; } + +.indigo.lighten-1 { + background-color: #5c6bc0 !important; } + +.indigo-text.text-lighten-1 { + color: #5c6bc0 !important; } + +.indigo { + background-color: #3f51b5 !important; } + +.indigo-text { + color: #3f51b5 !important; } + +.indigo.darken-1 { + background-color: #3949ab !important; } + +.indigo-text.text-darken-1 { + color: #3949ab !important; } + +.indigo.darken-2 { + background-color: #303f9f !important; } + +.indigo-text.text-darken-2 { + color: #303f9f !important; } + +.indigo.darken-3 { + background-color: #283593 !important; } + +.indigo-text.text-darken-3 { + color: #283593 !important; } + +.indigo.darken-4 { + background-color: #1a237e !important; } + +.indigo-text.text-darken-4 { + color: #1a237e !important; } + +.indigo.accent-1 { + background-color: #8c9eff !important; } + +.indigo-text.text-accent-1 { + color: #8c9eff !important; } + +.indigo.accent-2 { + background-color: #536dfe !important; } + +.indigo-text.text-accent-2 { + color: #536dfe !important; } + +.indigo.accent-3 { + background-color: #3d5afe !important; } + +.indigo-text.text-accent-3 { + color: #3d5afe !important; } + +.indigo.accent-4 { + background-color: #304ffe !important; } + +.indigo-text.text-accent-4 { + color: #304ffe !important; } + +.blue.lighten-5 { + background-color: #E3F2FD !important; } + +.blue-text.text-lighten-5 { + color: #E3F2FD !important; } + +.blue.lighten-4 { + background-color: #BBDEFB !important; } + +.blue-text.text-lighten-4 { + color: #BBDEFB !important; } + +.blue.lighten-3 { + background-color: #90CAF9 !important; } + +.blue-text.text-lighten-3 { + color: #90CAF9 !important; } + +.blue.lighten-2 { + background-color: #64B5F6 !important; } + +.blue-text.text-lighten-2 { + color: #64B5F6 !important; } + +.blue.lighten-1 { + background-color: #42A5F5 !important; } + +.blue-text.text-lighten-1 { + color: #42A5F5 !important; } + +.blue { + background-color: #2196F3 !important; } + +.blue-text { + color: #2196F3 !important; } + +.blue.darken-1 { + background-color: #1E88E5 !important; } + +.blue-text.text-darken-1 { + color: #1E88E5 !important; } + +.blue.darken-2 { + background-color: #1976D2 !important; } + +.blue-text.text-darken-2 { + color: #1976D2 !important; } + +.blue.darken-3 { + background-color: #1565C0 !important; } + +.blue-text.text-darken-3 { + color: #1565C0 !important; } + +.blue.darken-4 { + background-color: #0D47A1 !important; } + +.blue-text.text-darken-4 { + color: #0D47A1 !important; } + +.blue.accent-1 { + background-color: #82B1FF !important; } + +.blue-text.text-accent-1 { + color: #82B1FF !important; } + +.blue.accent-2 { + background-color: #448AFF !important; } + +.blue-text.text-accent-2 { + color: #448AFF !important; } + +.blue.accent-3 { + background-color: #2979FF !important; } + +.blue-text.text-accent-3 { + color: #2979FF !important; } + +.blue.accent-4 { + background-color: #2962FF !important; } + +.blue-text.text-accent-4 { + color: #2962FF !important; } + +.light-blue.lighten-5 { + background-color: #e1f5fe !important; } + +.light-blue-text.text-lighten-5 { + color: #e1f5fe !important; } + +.light-blue.lighten-4 { + background-color: #b3e5fc !important; } + +.light-blue-text.text-lighten-4 { + color: #b3e5fc !important; } + +.light-blue.lighten-3 { + background-color: #81d4fa !important; } + +.light-blue-text.text-lighten-3 { + color: #81d4fa !important; } + +.light-blue.lighten-2 { + background-color: #4fc3f7 !important; } + +.light-blue-text.text-lighten-2 { + color: #4fc3f7 !important; } + +.light-blue.lighten-1 { + background-color: #29b6f6 !important; } + +.light-blue-text.text-lighten-1 { + color: #29b6f6 !important; } + +.light-blue { + background-color: #03a9f4 !important; } + +.light-blue-text { + color: #03a9f4 !important; } + +.light-blue.darken-1 { + background-color: #039be5 !important; } + +.light-blue-text.text-darken-1 { + color: #039be5 !important; } + +.light-blue.darken-2 { + background-color: #0288d1 !important; } + +.light-blue-text.text-darken-2 { + color: #0288d1 !important; } + +.light-blue.darken-3 { + background-color: #0277bd !important; } + +.light-blue-text.text-darken-3 { + color: #0277bd !important; } + +.light-blue.darken-4 { + background-color: #01579b !important; } + +.light-blue-text.text-darken-4 { + color: #01579b !important; } + +.light-blue.accent-1 { + background-color: #80d8ff !important; } + +.light-blue-text.text-accent-1 { + color: #80d8ff !important; } + +.light-blue.accent-2 { + background-color: #40c4ff !important; } + +.light-blue-text.text-accent-2 { + color: #40c4ff !important; } + +.light-blue.accent-3 { + background-color: #00b0ff !important; } + +.light-blue-text.text-accent-3 { + color: #00b0ff !important; } + +.light-blue.accent-4 { + background-color: #0091ea !important; } + +.light-blue-text.text-accent-4 { + color: #0091ea !important; } + +.cyan.lighten-5 { + background-color: #e0f7fa !important; } + +.cyan-text.text-lighten-5 { + color: #e0f7fa !important; } + +.cyan.lighten-4 { + background-color: #b2ebf2 !important; } + +.cyan-text.text-lighten-4 { + color: #b2ebf2 !important; } + +.cyan.lighten-3 { + background-color: #80deea !important; } + +.cyan-text.text-lighten-3 { + color: #80deea !important; } + +.cyan.lighten-2 { + background-color: #4dd0e1 !important; } + +.cyan-text.text-lighten-2 { + color: #4dd0e1 !important; } + +.cyan.lighten-1 { + background-color: #26c6da !important; } + +.cyan-text.text-lighten-1 { + color: #26c6da !important; } + +.cyan { + background-color: #00bcd4 !important; } + +.cyan-text { + color: #00bcd4 !important; } + +.cyan.darken-1 { + background-color: #00acc1 !important; } + +.cyan-text.text-darken-1 { + color: #00acc1 !important; } + +.cyan.darken-2 { + background-color: #0097a7 !important; } + +.cyan-text.text-darken-2 { + color: #0097a7 !important; } + +.cyan.darken-3 { + background-color: #00838f !important; } + +.cyan-text.text-darken-3 { + color: #00838f !important; } + +.cyan.darken-4 { + background-color: #006064 !important; } + +.cyan-text.text-darken-4 { + color: #006064 !important; } + +.cyan.accent-1 { + background-color: #84ffff !important; } + +.cyan-text.text-accent-1 { + color: #84ffff !important; } + +.cyan.accent-2 { + background-color: #18ffff !important; } + +.cyan-text.text-accent-2 { + color: #18ffff !important; } + +.cyan.accent-3 { + background-color: #00e5ff !important; } + +.cyan-text.text-accent-3 { + color: #00e5ff !important; } + +.cyan.accent-4 { + background-color: #00b8d4 !important; } + +.cyan-text.text-accent-4 { + color: #00b8d4 !important; } + +.teal.lighten-5 { + background-color: #e0f2f1 !important; } + +.teal-text.text-lighten-5 { + color: #e0f2f1 !important; } + +.teal.lighten-4 { + background-color: #b2dfdb !important; } + +.teal-text.text-lighten-4 { + color: #b2dfdb !important; } + +.teal.lighten-3 { + background-color: #80cbc4 !important; } + +.teal-text.text-lighten-3 { + color: #80cbc4 !important; } + +.teal.lighten-2 { + background-color: #4db6ac !important; } + +.teal-text.text-lighten-2 { + color: #4db6ac !important; } + +.teal.lighten-1 { + background-color: #26a69a !important; } + +.teal-text.text-lighten-1 { + color: #26a69a !important; } + +.teal { + background-color: #009688 !important; } + +.teal-text { + color: #009688 !important; } + +.teal.darken-1 { + background-color: #00897b !important; } + +.teal-text.text-darken-1 { + color: #00897b !important; } + +.teal.darken-2 { + background-color: #00796b !important; } + +.teal-text.text-darken-2 { + color: #00796b !important; } + +.teal.darken-3 { + background-color: #00695c !important; } + +.teal-text.text-darken-3 { + color: #00695c !important; } + +.teal.darken-4 { + background-color: #004d40 !important; } + +.teal-text.text-darken-4 { + color: #004d40 !important; } + +.teal.accent-1 { + background-color: #a7ffeb !important; } + +.teal-text.text-accent-1 { + color: #a7ffeb !important; } + +.teal.accent-2 { + background-color: #64ffda !important; } + +.teal-text.text-accent-2 { + color: #64ffda !important; } + +.teal.accent-3 { + background-color: #1de9b6 !important; } + +.teal-text.text-accent-3 { + color: #1de9b6 !important; } + +.teal.accent-4 { + background-color: #00bfa5 !important; } + +.teal-text.text-accent-4 { + color: #00bfa5 !important; } + +.green.lighten-5 { + background-color: #E8F5E9 !important; } + +.green-text.text-lighten-5 { + color: #E8F5E9 !important; } + +.green.lighten-4 { + background-color: #C8E6C9 !important; } + +.green-text.text-lighten-4 { + color: #C8E6C9 !important; } + +.green.lighten-3 { + background-color: #A5D6A7 !important; } + +.green-text.text-lighten-3 { + color: #A5D6A7 !important; } + +.green.lighten-2 { + background-color: #81C784 !important; } + +.green-text.text-lighten-2 { + color: #81C784 !important; } + +.green.lighten-1 { + background-color: #66BB6A !important; } + +.green-text.text-lighten-1 { + color: #66BB6A !important; } + +.green { + background-color: #4CAF50 !important; } + +.green-text { + color: #4CAF50 !important; } + +.green.darken-1 { + background-color: #43A047 !important; } + +.green-text.text-darken-1 { + color: #43A047 !important; } + +.green.darken-2 { + background-color: #388E3C !important; } + +.green-text.text-darken-2 { + color: #388E3C !important; } + +.green.darken-3 { + background-color: #2E7D32 !important; } + +.green-text.text-darken-3 { + color: #2E7D32 !important; } + +.green.darken-4 { + background-color: #1B5E20 !important; } + +.green-text.text-darken-4 { + color: #1B5E20 !important; } + +.green.accent-1 { + background-color: #B9F6CA !important; } + +.green-text.text-accent-1 { + color: #B9F6CA !important; } + +.green.accent-2 { + background-color: #69F0AE !important; } + +.green-text.text-accent-2 { + color: #69F0AE !important; } + +.green.accent-3 { + background-color: #00E676 !important; } + +.green-text.text-accent-3 { + color: #00E676 !important; } + +.green.accent-4 { + background-color: #00C853 !important; } + +.green-text.text-accent-4 { + color: #00C853 !important; } + +.light-green.lighten-5 { + background-color: #f1f8e9 !important; } + +.light-green-text.text-lighten-5 { + color: #f1f8e9 !important; } + +.light-green.lighten-4 { + background-color: #dcedc8 !important; } + +.light-green-text.text-lighten-4 { + color: #dcedc8 !important; } + +.light-green.lighten-3 { + background-color: #c5e1a5 !important; } + +.light-green-text.text-lighten-3 { + color: #c5e1a5 !important; } + +.light-green.lighten-2 { + background-color: #aed581 !important; } + +.light-green-text.text-lighten-2 { + color: #aed581 !important; } + +.light-green.lighten-1 { + background-color: #9ccc65 !important; } + +.light-green-text.text-lighten-1 { + color: #9ccc65 !important; } + +.light-green { + background-color: #8bc34a !important; } + +.light-green-text { + color: #8bc34a !important; } + +.light-green.darken-1 { + background-color: #7cb342 !important; } + +.light-green-text.text-darken-1 { + color: #7cb342 !important; } + +.light-green.darken-2 { + background-color: #689f38 !important; } + +.light-green-text.text-darken-2 { + color: #689f38 !important; } + +.light-green.darken-3 { + background-color: #558b2f !important; } + +.light-green-text.text-darken-3 { + color: #558b2f !important; } + +.light-green.darken-4 { + background-color: #33691e !important; } + +.light-green-text.text-darken-4 { + color: #33691e !important; } + +.light-green.accent-1 { + background-color: #ccff90 !important; } + +.light-green-text.text-accent-1 { + color: #ccff90 !important; } + +.light-green.accent-2 { + background-color: #b2ff59 !important; } + +.light-green-text.text-accent-2 { + color: #b2ff59 !important; } + +.light-green.accent-3 { + background-color: #76ff03 !important; } + +.light-green-text.text-accent-3 { + color: #76ff03 !important; } + +.light-green.accent-4 { + background-color: #64dd17 !important; } + +.light-green-text.text-accent-4 { + color: #64dd17 !important; } + +.lime.lighten-5 { + background-color: #f9fbe7 !important; } + +.lime-text.text-lighten-5 { + color: #f9fbe7 !important; } + +.lime.lighten-4 { + background-color: #f0f4c3 !important; } + +.lime-text.text-lighten-4 { + color: #f0f4c3 !important; } + +.lime.lighten-3 { + background-color: #e6ee9c !important; } + +.lime-text.text-lighten-3 { + color: #e6ee9c !important; } + +.lime.lighten-2 { + background-color: #dce775 !important; } + +.lime-text.text-lighten-2 { + color: #dce775 !important; } + +.lime.lighten-1 { + background-color: #d4e157 !important; } + +.lime-text.text-lighten-1 { + color: #d4e157 !important; } + +.lime { + background-color: #cddc39 !important; } + +.lime-text { + color: #cddc39 !important; } + +.lime.darken-1 { + background-color: #c0ca33 !important; } + +.lime-text.text-darken-1 { + color: #c0ca33 !important; } + +.lime.darken-2 { + background-color: #afb42b !important; } + +.lime-text.text-darken-2 { + color: #afb42b !important; } + +.lime.darken-3 { + background-color: #9e9d24 !important; } + +.lime-text.text-darken-3 { + color: #9e9d24 !important; } + +.lime.darken-4 { + background-color: #827717 !important; } + +.lime-text.text-darken-4 { + color: #827717 !important; } + +.lime.accent-1 { + background-color: #f4ff81 !important; } + +.lime-text.text-accent-1 { + color: #f4ff81 !important; } + +.lime.accent-2 { + background-color: #eeff41 !important; } + +.lime-text.text-accent-2 { + color: #eeff41 !important; } + +.lime.accent-3 { + background-color: #c6ff00 !important; } + +.lime-text.text-accent-3 { + color: #c6ff00 !important; } + +.lime.accent-4 { + background-color: #aeea00 !important; } + +.lime-text.text-accent-4 { + color: #aeea00 !important; } + +.yellow.lighten-5 { + background-color: #fffde7 !important; } + +.yellow-text.text-lighten-5 { + color: #fffde7 !important; } + +.yellow.lighten-4 { + background-color: #fff9c4 !important; } + +.yellow-text.text-lighten-4 { + color: #fff9c4 !important; } + +.yellow.lighten-3 { + background-color: #fff59d !important; } + +.yellow-text.text-lighten-3 { + color: #fff59d !important; } + +.yellow.lighten-2 { + background-color: #fff176 !important; } + +.yellow-text.text-lighten-2 { + color: #fff176 !important; } + +.yellow.lighten-1 { + background-color: #ffee58 !important; } + +.yellow-text.text-lighten-1 { + color: #ffee58 !important; } + +.yellow { + background-color: #ffeb3b !important; } + +.yellow-text { + color: #ffeb3b !important; } + +.yellow.darken-1 { + background-color: #fdd835 !important; } + +.yellow-text.text-darken-1 { + color: #fdd835 !important; } + +.yellow.darken-2 { + background-color: #fbc02d !important; } + +.yellow-text.text-darken-2 { + color: #fbc02d !important; } + +.yellow.darken-3 { + background-color: #f9a825 !important; } + +.yellow-text.text-darken-3 { + color: #f9a825 !important; } + +.yellow.darken-4 { + background-color: #f57f17 !important; } + +.yellow-text.text-darken-4 { + color: #f57f17 !important; } + +.yellow.accent-1 { + background-color: #ffff8d !important; } + +.yellow-text.text-accent-1 { + color: #ffff8d !important; } + +.yellow.accent-2 { + background-color: #ffff00 !important; } + +.yellow-text.text-accent-2 { + color: #ffff00 !important; } + +.yellow.accent-3 { + background-color: #ffea00 !important; } + +.yellow-text.text-accent-3 { + color: #ffea00 !important; } + +.yellow.accent-4 { + background-color: #ffd600 !important; } + +.yellow-text.text-accent-4 { + color: #ffd600 !important; } + +.amber.lighten-5 { + background-color: #fff8e1 !important; } + +.amber-text.text-lighten-5 { + color: #fff8e1 !important; } + +.amber.lighten-4 { + background-color: #ffecb3 !important; } + +.amber-text.text-lighten-4 { + color: #ffecb3 !important; } + +.amber.lighten-3 { + background-color: #ffe082 !important; } + +.amber-text.text-lighten-3 { + color: #ffe082 !important; } + +.amber.lighten-2 { + background-color: #ffd54f !important; } + +.amber-text.text-lighten-2 { + color: #ffd54f !important; } + +.amber.lighten-1 { + background-color: #ffca28 !important; } + +.amber-text.text-lighten-1 { + color: #ffca28 !important; } + +.amber { + background-color: #ffc107 !important; } + +.amber-text { + color: #ffc107 !important; } + +.amber.darken-1 { + background-color: #ffb300 !important; } + +.amber-text.text-darken-1 { + color: #ffb300 !important; } + +.amber.darken-2 { + background-color: #ffa000 !important; } + +.amber-text.text-darken-2 { + color: #ffa000 !important; } + +.amber.darken-3 { + background-color: #ff8f00 !important; } + +.amber-text.text-darken-3 { + color: #ff8f00 !important; } + +.amber.darken-4 { + background-color: #ff6f00 !important; } + +.amber-text.text-darken-4 { + color: #ff6f00 !important; } + +.amber.accent-1 { + background-color: #ffe57f !important; } + +.amber-text.text-accent-1 { + color: #ffe57f !important; } + +.amber.accent-2 { + background-color: #ffd740 !important; } + +.amber-text.text-accent-2 { + color: #ffd740 !important; } + +.amber.accent-3 { + background-color: #ffc400 !important; } + +.amber-text.text-accent-3 { + color: #ffc400 !important; } + +.amber.accent-4 { + background-color: #ffab00 !important; } + +.amber-text.text-accent-4 { + color: #ffab00 !important; } + +.orange.lighten-5 { + background-color: #fff3e0 !important; } + +.orange-text.text-lighten-5 { + color: #fff3e0 !important; } + +.orange.lighten-4 { + background-color: #ffe0b2 !important; } + +.orange-text.text-lighten-4 { + color: #ffe0b2 !important; } + +.orange.lighten-3 { + background-color: #ffcc80 !important; } + +.orange-text.text-lighten-3 { + color: #ffcc80 !important; } + +.orange.lighten-2 { + background-color: #ffb74d !important; } + +.orange-text.text-lighten-2 { + color: #ffb74d !important; } + +.orange.lighten-1 { + background-color: #ffa726 !important; } + +.orange-text.text-lighten-1 { + color: #ffa726 !important; } + +.orange { + background-color: #ff9800 !important; } + +.orange-text { + color: #ff9800 !important; } + +.orange.darken-1 { + background-color: #fb8c00 !important; } + +.orange-text.text-darken-1 { + color: #fb8c00 !important; } + +.orange.darken-2 { + background-color: #f57c00 !important; } + +.orange-text.text-darken-2 { + color: #f57c00 !important; } + +.orange.darken-3 { + background-color: #ef6c00 !important; } + +.orange-text.text-darken-3 { + color: #ef6c00 !important; } + +.orange.darken-4 { + background-color: #e65100 !important; } + +.orange-text.text-darken-4 { + color: #e65100 !important; } + +.orange.accent-1 { + background-color: #ffd180 !important; } + +.orange-text.text-accent-1 { + color: #ffd180 !important; } + +.orange.accent-2 { + background-color: #ffab40 !important; } + +.orange-text.text-accent-2 { + color: #ffab40 !important; } + +.orange.accent-3 { + background-color: #ff9100 !important; } + +.orange-text.text-accent-3 { + color: #ff9100 !important; } + +.orange.accent-4 { + background-color: #ff6d00 !important; } + +.orange-text.text-accent-4 { + color: #ff6d00 !important; } + +.deep-orange.lighten-5 { + background-color: #fbe9e7 !important; } + +.deep-orange-text.text-lighten-5 { + color: #fbe9e7 !important; } + +.deep-orange.lighten-4 { + background-color: #ffccbc !important; } + +.deep-orange-text.text-lighten-4 { + color: #ffccbc !important; } + +.deep-orange.lighten-3 { + background-color: #ffab91 !important; } + +.deep-orange-text.text-lighten-3 { + color: #ffab91 !important; } + +.deep-orange.lighten-2 { + background-color: #ff8a65 !important; } + +.deep-orange-text.text-lighten-2 { + color: #ff8a65 !important; } + +.deep-orange.lighten-1 { + background-color: #ff7043 !important; } + +.deep-orange-text.text-lighten-1 { + color: #ff7043 !important; } + +.deep-orange { + background-color: #ff5722 !important; } + +.deep-orange-text { + color: #ff5722 !important; } + +.deep-orange.darken-1 { + background-color: #f4511e !important; } + +.deep-orange-text.text-darken-1 { + color: #f4511e !important; } + +.deep-orange.darken-2 { + background-color: #e64a19 !important; } + +.deep-orange-text.text-darken-2 { + color: #e64a19 !important; } + +.deep-orange.darken-3 { + background-color: #d84315 !important; } + +.deep-orange-text.text-darken-3 { + color: #d84315 !important; } + +.deep-orange.darken-4 { + background-color: #bf360c !important; } + +.deep-orange-text.text-darken-4 { + color: #bf360c !important; } + +.deep-orange.accent-1 { + background-color: #ff9e80 !important; } + +.deep-orange-text.text-accent-1 { + color: #ff9e80 !important; } + +.deep-orange.accent-2 { + background-color: #ff6e40 !important; } + +.deep-orange-text.text-accent-2 { + color: #ff6e40 !important; } + +.deep-orange.accent-3 { + background-color: #ff3d00 !important; } + +.deep-orange-text.text-accent-3 { + color: #ff3d00 !important; } + +.deep-orange.accent-4 { + background-color: #dd2c00 !important; } + +.deep-orange-text.text-accent-4 { + color: #dd2c00 !important; } + +.brown.lighten-5 { + background-color: #efebe9 !important; } + +.brown-text.text-lighten-5 { + color: #efebe9 !important; } + +.brown.lighten-4 { + background-color: #d7ccc8 !important; } + +.brown-text.text-lighten-4 { + color: #d7ccc8 !important; } + +.brown.lighten-3 { + background-color: #bcaaa4 !important; } + +.brown-text.text-lighten-3 { + color: #bcaaa4 !important; } + +.brown.lighten-2 { + background-color: #a1887f !important; } + +.brown-text.text-lighten-2 { + color: #a1887f !important; } + +.brown.lighten-1 { + background-color: #8d6e63 !important; } + +.brown-text.text-lighten-1 { + color: #8d6e63 !important; } + +.brown { + background-color: #795548 !important; } + +.brown-text { + color: #795548 !important; } + +.brown.darken-1 { + background-color: #6d4c41 !important; } + +.brown-text.text-darken-1 { + color: #6d4c41 !important; } + +.brown.darken-2 { + background-color: #5d4037 !important; } + +.brown-text.text-darken-2 { + color: #5d4037 !important; } + +.brown.darken-3 { + background-color: #4e342e !important; } + +.brown-text.text-darken-3 { + color: #4e342e !important; } + +.brown.darken-4 { + background-color: #3e2723 !important; } + +.brown-text.text-darken-4 { + color: #3e2723 !important; } + +.blue-grey.lighten-5 { + background-color: #eceff1 !important; } + +.blue-grey-text.text-lighten-5 { + color: #eceff1 !important; } + +.blue-grey.lighten-4 { + background-color: #cfd8dc !important; } + +.blue-grey-text.text-lighten-4 { + color: #cfd8dc !important; } + +.blue-grey.lighten-3 { + background-color: #b0bec5 !important; } + +.blue-grey-text.text-lighten-3 { + color: #b0bec5 !important; } + +.blue-grey.lighten-2 { + background-color: #90a4ae !important; } + +.blue-grey-text.text-lighten-2 { + color: #90a4ae !important; } + +.blue-grey.lighten-1 { + background-color: #78909c !important; } + +.blue-grey-text.text-lighten-1 { + color: #78909c !important; } + +.blue-grey { + background-color: #607d8b !important; } + +.blue-grey-text { + color: #607d8b !important; } + +.blue-grey.darken-1 { + background-color: #546e7a !important; } + +.blue-grey-text.text-darken-1 { + color: #546e7a !important; } + +.blue-grey.darken-2 { + background-color: #455a64 !important; } + +.blue-grey-text.text-darken-2 { + color: #455a64 !important; } + +.blue-grey.darken-3 { + background-color: #37474f !important; } + +.blue-grey-text.text-darken-3 { + color: #37474f !important; } + +.blue-grey.darken-4 { + background-color: #263238 !important; } + +.blue-grey-text.text-darken-4 { + color: #263238 !important; } + +.grey.lighten-5 { + background-color: #fafafa !important; } + +.grey-text.text-lighten-5 { + color: #fafafa !important; } + +.grey.lighten-4 { + background-color: #f5f5f5 !important; } + +.grey-text.text-lighten-4 { + color: #f5f5f5 !important; } + +.grey.lighten-3 { + background-color: #eeeeee !important; } + +.grey-text.text-lighten-3 { + color: #eeeeee !important; } + +.grey.lighten-2 { + background-color: #e0e0e0 !important; } + +.grey-text.text-lighten-2 { + color: #e0e0e0 !important; } + +.grey.lighten-1 { + background-color: #bdbdbd !important; } + +.grey-text.text-lighten-1 { + color: #bdbdbd !important; } + +.grey { + background-color: #9e9e9e !important; } + +.grey-text { + color: #9e9e9e !important; } + +.grey.darken-1 { + background-color: #757575 !important; } + +.grey-text.text-darken-1 { + color: #757575 !important; } + +.grey.darken-2 { + background-color: #616161 !important; } + +.grey-text.text-darken-2 { + color: #616161 !important; } + +.grey.darken-3 { + background-color: #424242 !important; } + +.grey-text.text-darken-3 { + color: #424242 !important; } + +.grey.darken-4 { + background-color: #212121 !important; } + +.grey-text.text-darken-4 { + color: #212121 !important; } + +.shades.black { + background-color: #000000 !important; } + +.shades-text.text-black { + color: #000000 !important; } + +.shades.white { + background-color: #FFFFFF !important; } + +.shades-text.text-white { + color: #FFFFFF !important; } + +.shades.transparent { + background-color: transparent !important; } + +.shades-text.text-transparent { + color: transparent !important; } + +.black { + background-color: #000000 !important; } + +.black-text { + color: #000000 !important; } + +.white { + background-color: #FFFFFF !important; } + +.white-text { + color: #FFFFFF !important; } + +.transparent { + background-color: transparent !important; } + +.transparent-text { + color: transparent !important; } + +/*** Colors ***/ +/*** Badges ***/ +/*** Buttons ***/ +/*** Cards ***/ +/*** Collapsible ***/ +/*** Dropdown ***/ +/*** Fonts ***/ +/*** Forms ***/ +/*** Global ***/ +/*** Navbar ***/ +/*** SideNav ***/ +/*** Tabs ***/ +/*** Tables ***/ +/*** Toasts ***/ +/*** Typography ***/ +/*** Collections ***/ +/* Progress Bar */ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ +html { + font-family: sans-serif; + /* 1 */ + -ms-text-size-adjust: 100%; + /* 2 */ + -webkit-text-size-adjust: 100%; + /* 2 */ } + +/** + * Remove default margin. + */ +body { + margin: 0; } + +/* HTML5 display definitions + ========================================================================== */ +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ +article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { + display: block; } + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ +audio, canvas, progress, video { + display: inline-block; + /* 1 */ + vertical-align: baseline; + /* 2 */ } + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ +audio:not([controls]) { + display: none; + height: 0; } + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ +[hidden], template { + display: none; } + +/* Links + ========================================================================== */ +/** + * Remove the gray background color from active links in IE 10. + */ +a { + background-color: transparent; } + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ +a:active, a:hover { + outline: 0; } + +/* Text-level semantics + ========================================================================== */ +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ +abbr[title] { + border-bottom: 1px dotted; } + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ +b, strong { + font-weight: bold; } + +/** + * Address styling not present in Safari and Chrome. + */ +dfn { + font-style: italic; } + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; } + +/** + * Address styling not present in IE 8/9. + */ +mark { + background: #ff0; + color: #000; } + +/** + * Address inconsistent and variable font size in all browsers. + */ +small { + font-size: 80%; } + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ +sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } + +sup { + top: -0.5em; } + +sub { + bottom: -0.25em; } + +/* Embedded content + ========================================================================== */ +/** + * Remove border when inside `a` element in IE 8/9/10. + */ +img { + border: 0; } + +/** + * Correct overflow not hidden in IE 9/10/11. + */ +svg:not(:root) { + overflow: hidden; } + +/* Grouping content + ========================================================================== */ +/** + * Address margin not present in IE 8/9 and Safari. + */ +figure { + margin: 1em 40px; } + +/** + * Address differences between Firefox and other browsers. + */ +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; } + +/** + * Contain overflow in all browsers. + */ +pre { + overflow: auto; } + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ +code, kbd, pre, samp { + font-family: monospace, monospace; + font-size: 1em; } + +/* Forms + ========================================================================== */ +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ +button, input, optgroup, select, textarea { + color: inherit; + /* 1 */ + font: inherit; + /* 2 */ + margin: 0; + /* 3 */ } + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ +button { + overflow: visible; } + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ +button, select { + text-transform: none; } + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ +/* 1 */ +html input[type="button"], button, input[type="reset"], input[type="submit"] { + -webkit-appearance: button; + /* 2 */ + cursor: pointer; + /* 3 */ } + +/** + * Re-set default cursor for disabled elements. + */ +button[disabled], html input[disabled] { + cursor: default; } + +/** + * Remove inner padding and border in Firefox 4+. + */ +button::-moz-focus-inner, input::-moz-focus-inner { + border: 0; + padding: 0; } + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ +input { + line-height: normal; } + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ +input[type="checkbox"], input[type="radio"] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ } + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ +input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { + height: auto; } + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ +input[type="search"] { + -webkit-appearance: textfield; + /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + /* 2 */ + box-sizing: content-box; } + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ +input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } + +/** + * Define consistent border, margin, and padding. + */ +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; } + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ +legend { + border: 0; + /* 1 */ + padding: 0; + /* 2 */ } + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ +textarea { + overflow: auto; } + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ +optgroup { + font-weight: bold; } + +/* Tables + ========================================================================== */ +/** + * Remove most spacing between table cells. + */ +table { + border-collapse: collapse; + border-spacing: 0; } + +td, th { + padding: 0; } + +html { + box-sizing: border-box; } + +*, *:before, *:after { + box-sizing: inherit; } + +ul { + list-style-type: none; } + +a { + color: #039be5; + text-decoration: none; + -webkit-tap-highlight-color: transparent; } + +.valign-wrapper { + display: -webkit-box; + display: -moz-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; } + .valign-wrapper .valign { + display: block; } + +ul { + padding: 0; } + ul li { + list-style-type: none; } + +.clearfix { + clear: both; } + +.z-depth-1, nav, .card-panel, .card, .toast, .btn, .btn-large, .btn-floating, .dropdown-content, .collapsible, .side-nav { + -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); + -moz-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); } + +.z-depth-1-half, .btn:hover, .btn-large:hover, .btn-floating:hover { + -webkit-box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); + box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); } + +.z-depth-2 { + -webkit-box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); + -moz-box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); + box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); } + +.z-depth-3 { + -webkit-box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); + -moz-box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); + box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); } + +.z-depth-4, .modal { + -webkit-box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21); + -moz-box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21); + box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21); } + +.z-depth-5 { + -webkit-box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22); + -moz-box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22); + box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22); } + +.divider { + height: 1px; + overflow: hidden; + background-color: #e0e0e0; } + +blockquote { + margin: 20px 0; + padding-left: 1.5rem; + border-left: 5px solid #EF9A9A; } + +i { + line-height: inherit; } + i.left { + float: left; + margin-right: 15px; } + i.right { + float: right; + margin-left: 15px; } + i.tiny { + font-size: 1rem; } + i.small { + font-size: 2rem; } + i.medium { + font-size: 4rem; } + i.large { + font-size: 6rem; } + +img.responsive-img, video.responsive-video { + max-width: 100%; + height: auto; } + +.pagination li { + font-size: 1.2rem; + float: left; + width: 30px; + height: 30px; + margin: 0 10px; + border-radius: 2px; + text-align: center; } + .pagination li a { + color: #444; } + .pagination li.active a { + color: #fff; } + .pagination li.active { + background-color: #ee6e73; } + .pagination li.disabled a { + color: #999; } + .pagination li i { + font-size: 2rem; + line-height: 1.8rem; } + +.parallax-container { + position: relative; + overflow: hidden; + height: 500px; } + +.parallax { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: -1; } + .parallax img { + display: none; + position: absolute; + left: 50%; + bottom: 0; + min-width: 100%; + min-height: 100%; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + transform: translateX(-50%); } + +.pin-top, .pin-bottom { + position: relative; } + +.pinned { + position: fixed !important; } + +/********************* + Transition Classes +**********************/ +ul.staggered-list li { + opacity: 0; } + +.fade-in { + opacity: 0; + transform-origin: 0 50%; } + +/********************* + Media Query Classes +**********************/ +@media only screen and (max-width : 600px) { + .hide-on-small-only, .hide-on-small-and-down { + display: none !important; } } + +@media only screen and (max-width : 992px) { + .hide-on-med-and-down { + display: none !important; } } + +@media only screen and (min-width : 601px) { + .hide-on-med-and-up { + display: none !important; } } + +@media only screen and (min-width: 600px) and (max-width: 992px) { + .hide-on-med-only { + display: none !important; } } + +@media only screen and (min-width : 993px) { + .hide-on-large-only { + display: none !important; } } + +@media only screen and (min-width : 993px) { + .show-on-large { + display: initial !important; } } + +@media only screen and (min-width: 600px) and (max-width: 992px) { + .show-on-medium { + display: initial !important; } } + +@media only screen and (max-width : 600px) { + .show-on-small { + display: initial !important; } } + +@media only screen and (min-width : 601px) { + .show-on-medium-and-up { + display: initial !important; } } + +@media only screen and (max-width : 992px) { + .show-on-medium-and-down { + display: initial !important; } } + +@media only screen and (max-width : 600px) { + .center-on-small-only { + text-align: center; } } + +footer.page-footer { + margin-top: 20px; + padding-top: 20px; + background-color: #ee6e73; } + footer.page-footer .footer-copyright { + overflow: hidden; + height: 50px; + line-height: 50px; + color: rgba(255, 255, 255, 0.8); + background-color: rgba(51, 51, 51, 0.08); } + +table, th, td { + border: none; } + +table { + width: 100%; + display: table; } + table.bordered tr { + border-bottom: 1px solid #d0d0d0; } + table.striped tbody tr:nth-child(odd) { + background-color: #f2f2f2; } + table.hoverable tbody tr { + -webkit-transition: background-color .25s ease; + -moz-transition: background-color .25s ease; + -o-transition: background-color .25s ease; + -ms-transition: background-color .25s ease; + transition: background-color .25s ease; } + table.hoverable tbody tr:hover { + background-color: #f2f2f2; } + table.centered thead tr th, table.centered tbody tr td { + text-align: center; } + +thead { + border-bottom: 1px solid #d0d0d0; } + +td, th { + padding: 15px 5px; + display: table-cell; + text-align: left; + vertical-align: middle; + border-radius: 2px; } + +@media only screen and (max-width : 992px) { + table.responsive-table { + width: 100%; + border-collapse: collapse; + border-spacing: 0; + display: block; + position: relative; + /* sort out borders */ } + table.responsive-table th, table.responsive-table td { + margin: 0; + vertical-align: top; } + table.responsive-table th { + text-align: left; } + table.responsive-table thead { + display: block; + float: left; } + table.responsive-table thead tr { + display: block; + padding: 0 10px 0 0; } + table.responsive-table thead tr th::before { + content: "\00a0"; } + table.responsive-table tbody { + display: block; + width: auto; + position: relative; + overflow-x: auto; + white-space: nowrap; } + table.responsive-table tbody tr { + display: inline-block; + vertical-align: top; } + table.responsive-table th { + display: block; + text-align: right; } + table.responsive-table td { + display: block; + min-height: 1.25em; + text-align: left; } + table.responsive-table tr { + padding: 0 10px; } + table.responsive-table thead { + border: 0; + border-right: 1px solid #d0d0d0; } + table.responsive-table.bordered th { + border-bottom: 0; + border-left: 0; } + table.responsive-table.bordered td { + border-left: 0; + border-right: 0; + border-bottom: 0; } + table.responsive-table.bordered tr { + border: 0; } + table.responsive-table.bordered tbody tr { + border-right: 1px solid #d0d0d0; } } + +.collection { + margin: 0.5rem 0 1rem 0; + border: 1px solid #e0e0e0; + border-radius: 2px; + overflow: hidden; + position: relative; } + .collection .collection-item { + background-color: #fff; + line-height: 1.5rem; + padding: 10px 20px; + margin: 0; + border-bottom: 1px solid #e0e0e0; } + .collection .collection-item.avatar { + height: 84px; + padding-left: 72px; + position: relative; } + .collection .collection-item.avatar .circle { + position: absolute; + width: 42px; + height: 42px; + overflow: hidden; + left: 15px; + display: inline-block; + vertical-align: middle; } + .collection .collection-item.avatar i.circle { + font-size: 18px; + line-height: 42px; + color: #fff; + background-color: #999; + text-align: center; } + .collection .collection-item.avatar .title { + font-size: 16px; } + .collection .collection-item.avatar p { + margin: 0; } + .collection .collection-item.avatar .secondary-content { + position: absolute; + top: 16px; + right: 16px; } + .collection .collection-item:last-child { + border-bottom: none; } + .collection .collection-item.active { + background-color: #26a69a; + color: #eafaf9; } + .collection a.collection-item { + display: block; + -webkit-transition: 0.25s; + -moz-transition: 0.25s; + -o-transition: 0.25s; + -ms-transition: 0.25s; + transition: 0.25s; + color: #26a69a; } + .collection a.collection-item:not(.active):hover { + background-color: #ddd; } + .collection.with-header .collection-header { + background-color: #fff; + border-bottom: 1px solid #e0e0e0; + padding: 10px 20px; } + .collection.with-header .collection-item { + padding-left: 30px; } + +.secondary-content { + float: right; + color: #26a69a; } + +span.badge { + min-width: 3rem; + padding: 0 6px; + text-align: center; + font-size: 1rem; + line-height: inherit; + color: #757575; + position: absolute; + right: 15px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } + span.badge.new { + font-weight: 300; + font-size: 0.8rem; + color: #fff; + background-color: #26a69a; + border-radius: 2px; } + span.badge.new:after { + content: " new"; } + +.video-container { + position: relative; + padding-bottom: 56.25%; + padding-top: 30px; + height: 0; + overflow: hidden; } + .video-container.no-controls { + padding-top: 0; } + .video-container iframe, .video-container object, .video-container embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; } + +.progress { + position: relative; + height: 4px; + display: block; + width: 100%; + background-color: #acece6; + border-radius: 2px; + margin: 0.5rem 0 1rem 0; + overflow: hidden; } + .progress .determinate { + position: absolute; + background-color: inherit; + top: 0; + bottom: 0; + background-color: #26a69a; + -webkit-transition: width .3s linear; + -moz-transition: width .3s linear; + -o-transition: width .3s linear; + -ms-transition: width .3s linear; + transition: width .3s linear; } + .progress .indeterminate { + background-color: #26a69a; } + .progress .indeterminate:before { + content: ''; + position: absolute; + background-color: inherit; + top: 0; + left: 0; + bottom: 0; + will-change: left, right; + -webkit-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; + -moz-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; + -ms-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; + -o-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; + animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; } + .progress .indeterminate:after { + content: ''; + position: absolute; + background-color: inherit; + top: 0; + left: 0; + bottom: 0; + will-change: left, right; + -webkit-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; + -moz-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; + -ms-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; + -o-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; + animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; + -webkit-animation-delay: 1.15s; + -moz-animation-delay: 1.15s; + -ms-animation-delay: 1.15s; + -o-animation-delay: 1.15s; + animation-delay: 1.15s; } + +@-webkit-keyframes indeterminate { + 0% { + left: -35%; + right: 100%; } + + 60% { + left: 100%; + right: -90%; } + + 100% { + left: 100%; + right: -90%; } } + +@-moz-keyframes indeterminate { + 0% { + left: -35%; + right: 100%; } + + 60% { + left: 100%; + right: -90%; } + + 100% { + left: 100%; + right: -90%; } } + +@keyframes indeterminate { + 0% { + left: -35%; + right: 100%; } + + 60% { + left: 100%; + right: -90%; } + + 100% { + left: 100%; + right: -90%; } } + +@-webkit-keyframes indeterminate-short { + 0% { + left: -200%; + right: 100%; } + + 60% { + left: 107%; + right: -8%; } + + 100% { + left: 107%; + right: -8%; } } + +@-moz-keyframes indeterminate-short { + 0% { + left: -200%; + right: 100%; } + + 60% { + left: 107%; + right: -8%; } + + 100% { + left: 107%; + right: -8%; } } + +@keyframes indeterminate-short { + 0% { + left: -200%; + right: 100%; } + + 60% { + left: 107%; + right: -8%; } + + 100% { + left: 107%; + right: -8%; } } + +/******************* + Utility Classes +*******************/ +.hide { + display: none !important; } + +.left-align { + text-align: left; } + +.right-align { + text-align: right; } + +.center, .center-align { + text-align: center; } + +.left { + float: left !important; } + +.right { + float: right !important; } + +.no-select, input[type=range], input[type=range] + .thumb { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.circle { + border-radius: 50%; } + +.center-block { + display: block; + margin-left: auto; + margin-right: auto; } + +.truncate { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + +.no-padding { + padding: 0 !important; } + +@font-face { + font-family: "Material-Design-Icons"; + src: url("../font/material-design-icons/Material-Design-Icons.eot?#iefix") format("embedded-opentype"), url("../font/material-design-icons/Material-Design-Icons.woff2") format("woff2"), url("../font/material-design-icons/Material-Design-Icons.woff") format("woff"), url("../font/material-design-icons/Material-Design-Icons.ttf") format("truetype"), url("../font/material-design-icons/Material-Design-Icons.svg#Material-Design-Icons") format("svg"); + font-weight: normal; + font-style: normal; } + +[class^="mdi-"], [class*=" mdi-"] { + font-family: "Material-Design-Icons"; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + text-rendering: auto; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } + +.mdi-action-3d-rotation:before { + content: "\e600"; } + +.mdi-action-accessibility:before { + content: "\e601"; } + +.mdi-action-account-balance:before { + content: "\e602"; } + +.mdi-action-account-balance-wallet:before { + content: "\e603"; } + +.mdi-action-account-box:before { + content: "\e604"; } + +.mdi-action-account-child:before { + content: "\e605"; } + +.mdi-action-account-circle:before { + content: "\e606"; } + +.mdi-action-add-shopping-cart:before { + content: "\e607"; } + +.mdi-action-alarm:before { + content: "\e608"; } + +.mdi-action-alarm-add:before { + content: "\e609"; } + +.mdi-action-alarm-off:before { + content: "\e60a"; } + +.mdi-action-alarm-on:before { + content: "\e60b"; } + +.mdi-action-android:before { + content: "\e60c"; } + +.mdi-action-announcement:before { + content: "\e60d"; } + +.mdi-action-aspect-ratio:before { + content: "\e60e"; } + +.mdi-action-assessment:before { + content: "\e60f"; } + +.mdi-action-assignment:before { + content: "\e610"; } + +.mdi-action-assignment-ind:before { + content: "\e611"; } + +.mdi-action-assignment-late:before { + content: "\e612"; } + +.mdi-action-assignment-return:before { + content: "\e613"; } + +.mdi-action-assignment-returned:before { + content: "\e614"; } + +.mdi-action-assignment-turned-in:before { + content: "\e615"; } + +.mdi-action-autorenew:before { + content: "\e616"; } + +.mdi-action-backup:before { + content: "\e617"; } + +.mdi-action-book:before { + content: "\e618"; } + +.mdi-action-bookmark:before { + content: "\e619"; } + +.mdi-action-bookmark-outline:before { + content: "\e61a"; } + +.mdi-action-bug-report:before { + content: "\e61b"; } + +.mdi-action-cached:before { + content: "\e61c"; } + +.mdi-action-class:before { + content: "\e61d"; } + +.mdi-action-credit-card:before { + content: "\e61e"; } + +.mdi-action-dashboard:before { + content: "\e61f"; } + +.mdi-action-delete:before { + content: "\e620"; } + +.mdi-action-description:before { + content: "\e621"; } + +.mdi-action-dns:before { + content: "\e622"; } + +.mdi-action-done:before { + content: "\e623"; } + +.mdi-action-done-all:before { + content: "\e624"; } + +.mdi-action-event:before { + content: "\e625"; } + +.mdi-action-exit-to-app:before { + content: "\e626"; } + +.mdi-action-explore:before { + content: "\e627"; } + +.mdi-action-extension:before { + content: "\e628"; } + +.mdi-action-face-unlock:before { + content: "\e629"; } + +.mdi-action-favorite:before { + content: "\e62a"; } + +.mdi-action-favorite-outline:before { + content: "\e62b"; } + +.mdi-action-find-in-page:before { + content: "\e62c"; } + +.mdi-action-find-replace:before { + content: "\e62d"; } + +.mdi-action-flip-to-back:before { + content: "\e62e"; } + +.mdi-action-flip-to-front:before { + content: "\e62f"; } + +.mdi-action-get-app:before { + content: "\e630"; } + +.mdi-action-grade:before { + content: "\e631"; } + +.mdi-action-group-work:before { + content: "\e632"; } + +.mdi-action-help:before { + content: "\e633"; } + +.mdi-action-highlight-remove:before { + content: "\e634"; } + +.mdi-action-history:before { + content: "\e635"; } + +.mdi-action-home:before { + content: "\e636"; } + +.mdi-action-https:before { + content: "\e637"; } + +.mdi-action-info:before { + content: "\e638"; } + +.mdi-action-info-outline:before { + content: "\e639"; } + +.mdi-action-input:before { + content: "\e63a"; } + +.mdi-action-invert-colors:before { + content: "\e63b"; } + +.mdi-action-label:before { + content: "\e63c"; } + +.mdi-action-label-outline:before { + content: "\e63d"; } + +.mdi-action-language:before { + content: "\e63e"; } + +.mdi-action-launch:before { + content: "\e63f"; } + +.mdi-action-list:before { + content: "\e640"; } + +.mdi-action-lock:before { + content: "\e641"; } + +.mdi-action-lock-open:before { + content: "\e642"; } + +.mdi-action-lock-outline:before { + content: "\e643"; } + +.mdi-action-loyalty:before { + content: "\e644"; } + +.mdi-action-markunread-mailbox:before { + content: "\e645"; } + +.mdi-action-note-add:before { + content: "\e646"; } + +.mdi-action-open-in-browser:before { + content: "\e647"; } + +.mdi-action-open-in-new:before { + content: "\e648"; } + +.mdi-action-open-with:before { + content: "\e649"; } + +.mdi-action-pageview:before { + content: "\e64a"; } + +.mdi-action-payment:before { + content: "\e64b"; } + +.mdi-action-perm-camera-mic:before { + content: "\e64c"; } + +.mdi-action-perm-contact-cal:before { + content: "\e64d"; } + +.mdi-action-perm-data-setting:before { + content: "\e64e"; } + +.mdi-action-perm-device-info:before { + content: "\e64f"; } + +.mdi-action-perm-identity:before { + content: "\e650"; } + +.mdi-action-perm-media:before { + content: "\e651"; } + +.mdi-action-perm-phone-msg:before { + content: "\e652"; } + +.mdi-action-perm-scan-wifi:before { + content: "\e653"; } + +.mdi-action-picture-in-picture:before { + content: "\e654"; } + +.mdi-action-polymer:before { + content: "\e655"; } + +.mdi-action-print:before { + content: "\e656"; } + +.mdi-action-query-builder:before { + content: "\e657"; } + +.mdi-action-question-answer:before { + content: "\e658"; } + +.mdi-action-receipt:before { + content: "\e659"; } + +.mdi-action-redeem:before { + content: "\e65a"; } + +.mdi-action-report-problem:before { + content: "\e65b"; } + +.mdi-action-restore:before { + content: "\e65c"; } + +.mdi-action-room:before { + content: "\e65d"; } + +.mdi-action-schedule:before { + content: "\e65e"; } + +.mdi-action-search:before { + content: "\e65f"; } + +.mdi-action-settings:before { + content: "\e660"; } + +.mdi-action-settings-applications:before { + content: "\e661"; } + +.mdi-action-settings-backup-restore:before { + content: "\e662"; } + +.mdi-action-settings-bluetooth:before { + content: "\e663"; } + +.mdi-action-settings-cell:before { + content: "\e664"; } + +.mdi-action-settings-display:before { + content: "\e665"; } + +.mdi-action-settings-ethernet:before { + content: "\e666"; } + +.mdi-action-settings-input-antenna:before { + content: "\e667"; } + +.mdi-action-settings-input-component:before { + content: "\e668"; } + +.mdi-action-settings-input-composite:before { + content: "\e669"; } + +.mdi-action-settings-input-hdmi:before { + content: "\e66a"; } + +.mdi-action-settings-input-svideo:before { + content: "\e66b"; } + +.mdi-action-settings-overscan:before { + content: "\e66c"; } + +.mdi-action-settings-phone:before { + content: "\e66d"; } + +.mdi-action-settings-power:before { + content: "\e66e"; } + +.mdi-action-settings-remote:before { + content: "\e66f"; } + +.mdi-action-settings-voice:before { + content: "\e670"; } + +.mdi-action-shop:before { + content: "\e671"; } + +.mdi-action-shopping-basket:before { + content: "\e672"; } + +.mdi-action-shopping-cart:before { + content: "\e673"; } + +.mdi-action-shop-two:before { + content: "\e674"; } + +.mdi-action-speaker-notes:before { + content: "\e675"; } + +.mdi-action-spellcheck:before { + content: "\e676"; } + +.mdi-action-star-rate:before { + content: "\e677"; } + +.mdi-action-stars:before { + content: "\e678"; } + +.mdi-action-store:before { + content: "\e679"; } + +.mdi-action-subject:before { + content: "\e67a"; } + +.mdi-action-swap-horiz:before { + content: "\e67b"; } + +.mdi-action-swap-vert:before { + content: "\e67c"; } + +.mdi-action-swap-vert-circle:before { + content: "\e67d"; } + +.mdi-action-system-update-tv:before { + content: "\e67e"; } + +.mdi-action-tab:before { + content: "\e67f"; } + +.mdi-action-tab-unselected:before { + content: "\e680"; } + +.mdi-action-theaters:before { + content: "\e681"; } + +.mdi-action-thumb-down:before { + content: "\e682"; } + +.mdi-action-thumbs-up-down:before { + content: "\e683"; } + +.mdi-action-thumb-up:before { + content: "\e684"; } + +.mdi-action-toc:before { + content: "\e685"; } + +.mdi-action-today:before { + content: "\e686"; } + +.mdi-action-track-changes:before { + content: "\e687"; } + +.mdi-action-translate:before { + content: "\e688"; } + +.mdi-action-trending-down:before { + content: "\e689"; } + +.mdi-action-trending-neutral:before { + content: "\e68a"; } + +.mdi-action-trending-up:before { + content: "\e68b"; } + +.mdi-action-turned-in:before { + content: "\e68c"; } + +.mdi-action-turned-in-not:before { + content: "\e68d"; } + +.mdi-action-verified-user:before { + content: "\e68e"; } + +.mdi-action-view-agenda:before { + content: "\e68f"; } + +.mdi-action-view-array:before { + content: "\e690"; } + +.mdi-action-view-carousel:before { + content: "\e691"; } + +.mdi-action-view-column:before { + content: "\e692"; } + +.mdi-action-view-day:before { + content: "\e693"; } + +.mdi-action-view-headline:before { + content: "\e694"; } + +.mdi-action-view-list:before { + content: "\e695"; } + +.mdi-action-view-module:before { + content: "\e696"; } + +.mdi-action-view-quilt:before { + content: "\e697"; } + +.mdi-action-view-stream:before { + content: "\e698"; } + +.mdi-action-view-week:before { + content: "\e699"; } + +.mdi-action-visibility:before { + content: "\e69a"; } + +.mdi-action-visibility-off:before { + content: "\e69b"; } + +.mdi-action-wallet-giftcard:before { + content: "\e69c"; } + +.mdi-action-wallet-membership:before { + content: "\e69d"; } + +.mdi-action-wallet-travel:before { + content: "\e69e"; } + +.mdi-action-work:before { + content: "\e69f"; } + +.mdi-alert-error:before { + content: "\e6a0"; } + +.mdi-alert-warning:before { + content: "\e6a1"; } + +.mdi-av-album:before { + content: "\e6a2"; } + +.mdi-av-timer:before { + content: "\e6a3"; } + +.mdi-av-closed-caption:before { + content: "\e6a4"; } + +.mdi-av-equalizer:before { + content: "\e6a5"; } + +.mdi-av-explicit:before { + content: "\e6a6"; } + +.mdi-av-fast-forward:before { + content: "\e6a7"; } + +.mdi-av-fast-rewind:before { + content: "\e6a8"; } + +.mdi-av-games:before { + content: "\e6a9"; } + +.mdi-av-hearing:before { + content: "\e6aa"; } + +.mdi-av-high-quality:before { + content: "\e6ab"; } + +.mdi-av-loop:before { + content: "\e6ac"; } + +.mdi-av-mic:before { + content: "\e6ad"; } + +.mdi-av-mic-none:before { + content: "\e6ae"; } + +.mdi-av-mic-off:before { + content: "\e6af"; } + +.mdi-av-movie:before { + content: "\e6b0"; } + +.mdi-av-my-library-add:before { + content: "\e6b1"; } + +.mdi-av-my-library-books:before { + content: "\e6b2"; } + +.mdi-av-my-library-music:before { + content: "\e6b3"; } + +.mdi-av-new-releases:before { + content: "\e6b4"; } + +.mdi-av-not-interested:before { + content: "\e6b5"; } + +.mdi-av-pause:before { + content: "\e6b6"; } + +.mdi-av-pause-circle-fill:before { + content: "\e6b7"; } + +.mdi-av-pause-circle-outline:before { + content: "\e6b8"; } + +.mdi-av-play-arrow:before { + content: "\e6b9"; } + +.mdi-av-play-circle-fill:before { + content: "\e6ba"; } + +.mdi-av-play-circle-outline:before { + content: "\e6bb"; } + +.mdi-av-playlist-add:before { + content: "\e6bc"; } + +.mdi-av-play-shopping-bag:before { + content: "\e6bd"; } + +.mdi-av-queue:before { + content: "\e6be"; } + +.mdi-av-queue-music:before { + content: "\e6bf"; } + +.mdi-av-radio:before { + content: "\e6c0"; } + +.mdi-av-recent-actors:before { + content: "\e6c1"; } + +.mdi-av-repeat:before { + content: "\e6c2"; } + +.mdi-av-repeat-one:before { + content: "\e6c3"; } + +.mdi-av-replay:before { + content: "\e6c4"; } + +.mdi-av-shuffle:before { + content: "\e6c5"; } + +.mdi-av-skip-next:before { + content: "\e6c6"; } + +.mdi-av-skip-previous:before { + content: "\e6c7"; } + +.mdi-av-snooze:before { + content: "\e6c8"; } + +.mdi-av-stop:before { + content: "\e6c9"; } + +.mdi-av-subtitles:before { + content: "\e6ca"; } + +.mdi-av-surround-sound:before { + content: "\e6cb"; } + +.mdi-av-videocam:before { + content: "\e6cc"; } + +.mdi-av-videocam-off:before { + content: "\e6cd"; } + +.mdi-av-video-collection:before { + content: "\e6ce"; } + +.mdi-av-volume-down:before { + content: "\e6cf"; } + +.mdi-av-volume-mute:before { + content: "\e6d0"; } + +.mdi-av-volume-off:before { + content: "\e6d1"; } + +.mdi-av-volume-up:before { + content: "\e6d2"; } + +.mdi-av-web:before { + content: "\e6d3"; } + +.mdi-communication-business:before { + content: "\e6d4"; } + +.mdi-communication-call:before { + content: "\e6d5"; } + +.mdi-communication-call-end:before { + content: "\e6d6"; } + +.mdi-communication-call-made:before { + content: "\e6d7"; } + +.mdi-communication-call-merge:before { + content: "\e6d8"; } + +.mdi-communication-call-missed:before { + content: "\e6d9"; } + +.mdi-communication-call-received:before { + content: "\e6da"; } + +.mdi-communication-call-split:before { + content: "\e6db"; } + +.mdi-communication-chat:before { + content: "\e6dc"; } + +.mdi-communication-clear-all:before { + content: "\e6dd"; } + +.mdi-communication-comment:before { + content: "\e6de"; } + +.mdi-communication-contacts:before { + content: "\e6df"; } + +.mdi-communication-dialer-sip:before { + content: "\e6e0"; } + +.mdi-communication-dialpad:before { + content: "\e6e1"; } + +.mdi-communication-dnd-on:before { + content: "\e6e2"; } + +.mdi-communication-email:before { + content: "\e6e3"; } + +.mdi-communication-forum:before { + content: "\e6e4"; } + +.mdi-communication-import-export:before { + content: "\e6e5"; } + +.mdi-communication-invert-colors-off:before { + content: "\e6e6"; } + +.mdi-communication-invert-colors-on:before { + content: "\e6e7"; } + +.mdi-communication-live-help:before { + content: "\e6e8"; } + +.mdi-communication-location-off:before { + content: "\e6e9"; } + +.mdi-communication-location-on:before { + content: "\e6ea"; } + +.mdi-communication-message:before { + content: "\e6eb"; } + +.mdi-communication-messenger:before { + content: "\e6ec"; } + +.mdi-communication-no-sim:before { + content: "\e6ed"; } + +.mdi-communication-phone:before { + content: "\e6ee"; } + +.mdi-communication-portable-wifi-off:before { + content: "\e6ef"; } + +.mdi-communication-quick-contacts-dialer:before { + content: "\e6f0"; } + +.mdi-communication-quick-contacts-mail:before { + content: "\e6f1"; } + +.mdi-communication-ring-volume:before { + content: "\e6f2"; } + +.mdi-communication-stay-current-landscape:before { + content: "\e6f3"; } + +.mdi-communication-stay-current-portrait:before { + content: "\e6f4"; } + +.mdi-communication-stay-primary-landscape:before { + content: "\e6f5"; } + +.mdi-communication-stay-primary-portrait:before { + content: "\e6f6"; } + +.mdi-communication-swap-calls:before { + content: "\e6f7"; } + +.mdi-communication-textsms:before { + content: "\e6f8"; } + +.mdi-communication-voicemail:before { + content: "\e6f9"; } + +.mdi-communication-vpn-key:before { + content: "\e6fa"; } + +.mdi-content-add:before { + content: "\e6fb"; } + +.mdi-content-add-box:before { + content: "\e6fc"; } + +.mdi-content-add-circle:before { + content: "\e6fd"; } + +.mdi-content-add-circle-outline:before { + content: "\e6fe"; } + +.mdi-content-archive:before { + content: "\e6ff"; } + +.mdi-content-backspace:before { + content: "\e700"; } + +.mdi-content-block:before { + content: "\e701"; } + +.mdi-content-clear:before { + content: "\e702"; } + +.mdi-content-content-copy:before { + content: "\e703"; } + +.mdi-content-content-cut:before { + content: "\e704"; } + +.mdi-content-content-paste:before { + content: "\e705"; } + +.mdi-content-create:before { + content: "\e706"; } + +.mdi-content-drafts:before { + content: "\e707"; } + +.mdi-content-filter-list:before { + content: "\e708"; } + +.mdi-content-flag:before { + content: "\e709"; } + +.mdi-content-forward:before { + content: "\e70a"; } + +.mdi-content-gesture:before { + content: "\e70b"; } + +.mdi-content-inbox:before { + content: "\e70c"; } + +.mdi-content-link:before { + content: "\e70d"; } + +.mdi-content-mail:before { + content: "\e70e"; } + +.mdi-content-markunread:before { + content: "\e70f"; } + +.mdi-content-redo:before { + content: "\e710"; } + +.mdi-content-remove:before { + content: "\e711"; } + +.mdi-content-remove-circle:before { + content: "\e712"; } + +.mdi-content-remove-circle-outline:before { + content: "\e713"; } + +.mdi-content-reply:before { + content: "\e714"; } + +.mdi-content-reply-all:before { + content: "\e715"; } + +.mdi-content-report:before { + content: "\e716"; } + +.mdi-content-save:before { + content: "\e717"; } + +.mdi-content-select-all:before { + content: "\e718"; } + +.mdi-content-send:before { + content: "\e719"; } + +.mdi-content-sort:before { + content: "\e71a"; } + +.mdi-content-text-format:before { + content: "\e71b"; } + +.mdi-content-undo:before { + content: "\e71c"; } + +.mdi-device-access-alarm:before { + content: "\e71d"; } + +.mdi-device-access-alarms:before { + content: "\e71e"; } + +.mdi-device-access-time:before { + content: "\e71f"; } + +.mdi-device-add-alarm:before { + content: "\e720"; } + +.mdi-device-airplanemode-off:before { + content: "\e721"; } + +.mdi-device-airplanemode-on:before { + content: "\e722"; } + +.mdi-device-battery-20:before { + content: "\e723"; } + +.mdi-device-battery-30:before { + content: "\e724"; } + +.mdi-device-battery-50:before { + content: "\e725"; } + +.mdi-device-battery-60:before { + content: "\e726"; } + +.mdi-device-battery-80:before { + content: "\e727"; } + +.mdi-device-battery-90:before { + content: "\e728"; } + +.mdi-device-battery-alert:before { + content: "\e729"; } + +.mdi-device-battery-charging-20:before { + content: "\e72a"; } + +.mdi-device-battery-charging-30:before { + content: "\e72b"; } + +.mdi-device-battery-charging-50:before { + content: "\e72c"; } + +.mdi-device-battery-charging-60:before { + content: "\e72d"; } + +.mdi-device-battery-charging-80:before { + content: "\e72e"; } + +.mdi-device-battery-charging-90:before { + content: "\e72f"; } + +.mdi-device-battery-charging-full:before { + content: "\e730"; } + +.mdi-device-battery-full:before { + content: "\e731"; } + +.mdi-device-battery-std:before { + content: "\e732"; } + +.mdi-device-battery-unknown:before { + content: "\e733"; } + +.mdi-device-bluetooth:before { + content: "\e734"; } + +.mdi-device-bluetooth-connected:before { + content: "\e735"; } + +.mdi-device-bluetooth-disabled:before { + content: "\e736"; } + +.mdi-device-bluetooth-searching:before { + content: "\e737"; } + +.mdi-device-brightness-auto:before { + content: "\e738"; } + +.mdi-device-brightness-high:before { + content: "\e739"; } + +.mdi-device-brightness-low:before { + content: "\e73a"; } + +.mdi-device-brightness-medium:before { + content: "\e73b"; } + +.mdi-device-data-usage:before { + content: "\e73c"; } + +.mdi-device-developer-mode:before { + content: "\e73d"; } + +.mdi-device-devices:before { + content: "\e73e"; } + +.mdi-device-dvr:before { + content: "\e73f"; } + +.mdi-device-gps-fixed:before { + content: "\e740"; } + +.mdi-device-gps-not-fixed:before { + content: "\e741"; } + +.mdi-device-gps-off:before { + content: "\e742"; } + +.mdi-device-location-disabled:before { + content: "\e743"; } + +.mdi-device-location-searching:before { + content: "\e744"; } + +.mdi-device-multitrack-audio:before { + content: "\e745"; } + +.mdi-device-network-cell:before { + content: "\e746"; } + +.mdi-device-network-wifi:before { + content: "\e747"; } + +.mdi-device-nfc:before { + content: "\e748"; } + +.mdi-device-now-wallpaper:before { + content: "\e749"; } + +.mdi-device-now-widgets:before { + content: "\e74a"; } + +.mdi-device-screen-lock-landscape:before { + content: "\e74b"; } + +.mdi-device-screen-lock-portrait:before { + content: "\e74c"; } + +.mdi-device-screen-lock-rotation:before { + content: "\e74d"; } + +.mdi-device-screen-rotation:before { + content: "\e74e"; } + +.mdi-device-sd-storage:before { + content: "\e74f"; } + +.mdi-device-settings-system-daydream:before { + content: "\e750"; } + +.mdi-device-signal-cellular-0-bar:before { + content: "\e751"; } + +.mdi-device-signal-cellular-1-bar:before { + content: "\e752"; } + +.mdi-device-signal-cellular-2-bar:before { + content: "\e753"; } + +.mdi-device-signal-cellular-3-bar:before { + content: "\e754"; } + +.mdi-device-signal-cellular-4-bar:before { + content: "\e755"; } + +.mdi-device-signal-cellular-connected-no-internet-0-bar:before { + content: "\e756"; } + +.mdi-device-signal-cellular-connected-no-internet-1-bar:before { + content: "\e757"; } + +.mdi-device-signal-cellular-connected-no-internet-2-bar:before { + content: "\e758"; } + +.mdi-device-signal-cellular-connected-no-internet-3-bar:before { + content: "\e759"; } + +.mdi-device-signal-cellular-connected-no-internet-4-bar:before { + content: "\e75a"; } + +.mdi-device-signal-cellular-no-sim:before { + content: "\e75b"; } + +.mdi-device-signal-cellular-null:before { + content: "\e75c"; } + +.mdi-device-signal-cellular-off:before { + content: "\e75d"; } + +.mdi-device-signal-wifi-0-bar:before { + content: "\e75e"; } + +.mdi-device-signal-wifi-1-bar:before { + content: "\e75f"; } + +.mdi-device-signal-wifi-2-bar:before { + content: "\e760"; } + +.mdi-device-signal-wifi-3-bar:before { + content: "\e761"; } + +.mdi-device-signal-wifi-4-bar:before { + content: "\e762"; } + +.mdi-device-signal-wifi-off:before { + content: "\e763"; } + +.mdi-device-storage:before { + content: "\e764"; } + +.mdi-device-usb:before { + content: "\e765"; } + +.mdi-device-wifi-lock:before { + content: "\e766"; } + +.mdi-device-wifi-tethering:before { + content: "\e767"; } + +.mdi-editor-attach-file:before { + content: "\e768"; } + +.mdi-editor-attach-money:before { + content: "\e769"; } + +.mdi-editor-border-all:before { + content: "\e76a"; } + +.mdi-editor-border-bottom:before { + content: "\e76b"; } + +.mdi-editor-border-clear:before { + content: "\e76c"; } + +.mdi-editor-border-color:before { + content: "\e76d"; } + +.mdi-editor-border-horizontal:before { + content: "\e76e"; } + +.mdi-editor-border-inner:before { + content: "\e76f"; } + +.mdi-editor-border-left:before { + content: "\e770"; } + +.mdi-editor-border-outer:before { + content: "\e771"; } + +.mdi-editor-border-right:before { + content: "\e772"; } + +.mdi-editor-border-style:before { + content: "\e773"; } + +.mdi-editor-border-top:before { + content: "\e774"; } + +.mdi-editor-border-vertical:before { + content: "\e775"; } + +.mdi-editor-format-align-center:before { + content: "\e776"; } + +.mdi-editor-format-align-justify:before { + content: "\e777"; } + +.mdi-editor-format-align-left:before { + content: "\e778"; } + +.mdi-editor-format-align-right:before { + content: "\e779"; } + +.mdi-editor-format-bold:before { + content: "\e77a"; } + +.mdi-editor-format-clear:before { + content: "\e77b"; } + +.mdi-editor-format-color-fill:before { + content: "\e77c"; } + +.mdi-editor-format-color-reset:before { + content: "\e77d"; } + +.mdi-editor-format-color-text:before { + content: "\e77e"; } + +.mdi-editor-format-indent-decrease:before { + content: "\e77f"; } + +.mdi-editor-format-indent-increase:before { + content: "\e780"; } + +.mdi-editor-format-italic:before { + content: "\e781"; } + +.mdi-editor-format-line-spacing:before { + content: "\e782"; } + +.mdi-editor-format-list-bulleted:before { + content: "\e783"; } + +.mdi-editor-format-list-numbered:before { + content: "\e784"; } + +.mdi-editor-format-paint:before { + content: "\e785"; } + +.mdi-editor-format-quote:before { + content: "\e786"; } + +.mdi-editor-format-size:before { + content: "\e787"; } + +.mdi-editor-format-strikethrough:before { + content: "\e788"; } + +.mdi-editor-functions:before { + content: "\e789"; } + +.mdi-editor-format-textdirection-l-to-r:before { + content: "\e78a"; } + +.mdi-editor-format-underline:before { + content: "\e78b"; } + +.mdi-editor-format-textdirection-r-to-l:before { + content: "\e78c"; } + +.mdi-editor-insert-chart:before { + content: "\e78d"; } + +.mdi-editor-insert-comment:before { + content: "\e78e"; } + +.mdi-editor-insert-drive-file:before { + content: "\e78f"; } + +.mdi-editor-insert-emoticon:before { + content: "\e790"; } + +.mdi-editor-insert-invitation:before { + content: "\e791"; } + +.mdi-editor-insert-link:before { + content: "\e792"; } + +.mdi-editor-insert-photo:before { + content: "\e793"; } + +.mdi-editor-merge-type:before { + content: "\e794"; } + +.mdi-editor-mode-comment:before { + content: "\e795"; } + +.mdi-editor-mode-edit:before { + content: "\e796"; } + +.mdi-editor-publish:before { + content: "\e797"; } + +.mdi-editor-vertical-align-bottom:before { + content: "\e798"; } + +.mdi-editor-vertical-align-center:before { + content: "\e799"; } + +.mdi-editor-vertical-align-top:before { + content: "\e79a"; } + +.mdi-editor-wrap-text:before { + content: "\e79b"; } + +.mdi-file-attachment:before { + content: "\e79c"; } + +.mdi-file-cloud:before { + content: "\e79d"; } + +.mdi-file-cloud-circle:before { + content: "\e79e"; } + +.mdi-file-cloud-done:before { + content: "\e79f"; } + +.mdi-file-cloud-download:before { + content: "\e7a0"; } + +.mdi-file-cloud-off:before { + content: "\e7a1"; } + +.mdi-file-cloud-queue:before { + content: "\e7a2"; } + +.mdi-file-cloud-upload:before { + content: "\e7a3"; } + +.mdi-file-file-download:before { + content: "\e7a4"; } + +.mdi-file-file-upload:before { + content: "\e7a5"; } + +.mdi-file-folder:before { + content: "\e7a6"; } + +.mdi-file-folder-open:before { + content: "\e7a7"; } + +.mdi-file-folder-shared:before { + content: "\e7a8"; } + +.mdi-hardware-cast:before { + content: "\e7a9"; } + +.mdi-hardware-cast-connected:before { + content: "\e7aa"; } + +.mdi-hardware-computer:before { + content: "\e7ab"; } + +.mdi-hardware-desktop-mac:before { + content: "\e7ac"; } + +.mdi-hardware-desktop-windows:before { + content: "\e7ad"; } + +.mdi-hardware-dock:before { + content: "\e7ae"; } + +.mdi-hardware-gamepad:before { + content: "\e7af"; } + +.mdi-hardware-headset:before { + content: "\e7b0"; } + +.mdi-hardware-headset-mic:before { + content: "\e7b1"; } + +.mdi-hardware-keyboard:before { + content: "\e7b2"; } + +.mdi-hardware-keyboard-alt:before { + content: "\e7b3"; } + +.mdi-hardware-keyboard-arrow-down:before { + content: "\e7b4"; } + +.mdi-hardware-keyboard-arrow-left:before { + content: "\e7b5"; } + +.mdi-hardware-keyboard-arrow-right:before { + content: "\e7b6"; } + +.mdi-hardware-keyboard-arrow-up:before { + content: "\e7b7"; } + +.mdi-hardware-keyboard-backspace:before { + content: "\e7b8"; } + +.mdi-hardware-keyboard-capslock:before { + content: "\e7b9"; } + +.mdi-hardware-keyboard-control:before { + content: "\e7ba"; } + +.mdi-hardware-keyboard-hide:before { + content: "\e7bb"; } + +.mdi-hardware-keyboard-return:before { + content: "\e7bc"; } + +.mdi-hardware-keyboard-tab:before { + content: "\e7bd"; } + +.mdi-hardware-keyboard-voice:before { + content: "\e7be"; } + +.mdi-hardware-laptop:before { + content: "\e7bf"; } + +.mdi-hardware-laptop-chromebook:before { + content: "\e7c0"; } + +.mdi-hardware-laptop-mac:before { + content: "\e7c1"; } + +.mdi-hardware-laptop-windows:before { + content: "\e7c2"; } + +.mdi-hardware-memory:before { + content: "\e7c3"; } + +.mdi-hardware-mouse:before { + content: "\e7c4"; } + +.mdi-hardware-phone-android:before { + content: "\e7c5"; } + +.mdi-hardware-phone-iphone:before { + content: "\e7c6"; } + +.mdi-hardware-phonelink:before { + content: "\e7c7"; } + +.mdi-hardware-phonelink-off:before { + content: "\e7c8"; } + +.mdi-hardware-security:before { + content: "\e7c9"; } + +.mdi-hardware-sim-card:before { + content: "\e7ca"; } + +.mdi-hardware-smartphone:before { + content: "\e7cb"; } + +.mdi-hardware-speaker:before { + content: "\e7cc"; } + +.mdi-hardware-tablet:before { + content: "\e7cd"; } + +.mdi-hardware-tablet-android:before { + content: "\e7ce"; } + +.mdi-hardware-tablet-mac:before { + content: "\e7cf"; } + +.mdi-hardware-tv:before { + content: "\e7d0"; } + +.mdi-hardware-watch:before { + content: "\e7d1"; } + +.mdi-image-add-to-photos:before { + content: "\e7d2"; } + +.mdi-image-adjust:before { + content: "\e7d3"; } + +.mdi-image-assistant-photo:before { + content: "\e7d4"; } + +.mdi-image-audiotrack:before { + content: "\e7d5"; } + +.mdi-image-blur-circular:before { + content: "\e7d6"; } + +.mdi-image-blur-linear:before { + content: "\e7d7"; } + +.mdi-image-blur-off:before { + content: "\e7d8"; } + +.mdi-image-blur-on:before { + content: "\e7d9"; } + +.mdi-image-brightness-1:before { + content: "\e7da"; } + +.mdi-image-brightness-2:before { + content: "\e7db"; } + +.mdi-image-brightness-3:before { + content: "\e7dc"; } + +.mdi-image-brightness-4:before { + content: "\e7dd"; } + +.mdi-image-brightness-5:before { + content: "\e7de"; } + +.mdi-image-brightness-6:before { + content: "\e7df"; } + +.mdi-image-brightness-7:before { + content: "\e7e0"; } + +.mdi-image-brush:before { + content: "\e7e1"; } + +.mdi-image-camera:before { + content: "\e7e2"; } + +.mdi-image-camera-alt:before { + content: "\e7e3"; } + +.mdi-image-camera-front:before { + content: "\e7e4"; } + +.mdi-image-camera-rear:before { + content: "\e7e5"; } + +.mdi-image-camera-roll:before { + content: "\e7e6"; } + +.mdi-image-center-focus-strong:before { + content: "\e7e7"; } + +.mdi-image-center-focus-weak:before { + content: "\e7e8"; } + +.mdi-image-collections:before { + content: "\e7e9"; } + +.mdi-image-colorize:before { + content: "\e7ea"; } + +.mdi-image-color-lens:before { + content: "\e7eb"; } + +.mdi-image-compare:before { + content: "\e7ec"; } + +.mdi-image-control-point:before { + content: "\e7ed"; } + +.mdi-image-control-point-duplicate:before { + content: "\e7ee"; } + +.mdi-image-crop:before { + content: "\e7ef"; } + +.mdi-image-crop-3-2:before { + content: "\e7f0"; } + +.mdi-image-crop-5-4:before { + content: "\e7f1"; } + +.mdi-image-crop-7-5:before { + content: "\e7f2"; } + +.mdi-image-crop-16-9:before { + content: "\e7f3"; } + +.mdi-image-crop-din:before { + content: "\e7f4"; } + +.mdi-image-crop-free:before { + content: "\e7f5"; } + +.mdi-image-crop-landscape:before { + content: "\e7f6"; } + +.mdi-image-crop-original:before { + content: "\e7f7"; } + +.mdi-image-crop-portrait:before { + content: "\e7f8"; } + +.mdi-image-crop-square:before { + content: "\e7f9"; } + +.mdi-image-dehaze:before { + content: "\e7fa"; } + +.mdi-image-details:before { + content: "\e7fb"; } + +.mdi-image-edit:before { + content: "\e7fc"; } + +.mdi-image-exposure:before { + content: "\e7fd"; } + +.mdi-image-exposure-minus-1:before { + content: "\e7fe"; } + +.mdi-image-exposure-minus-2:before { + content: "\e7ff"; } + +.mdi-image-exposure-plus-1:before { + content: "\e800"; } + +.mdi-image-exposure-plus-2:before { + content: "\e801"; } + +.mdi-image-exposure-zero:before { + content: "\e802"; } + +.mdi-image-filter:before { + content: "\e803"; } + +.mdi-image-filter-1:before { + content: "\e804"; } + +.mdi-image-filter-2:before { + content: "\e805"; } + +.mdi-image-filter-3:before { + content: "\e806"; } + +.mdi-image-filter-4:before { + content: "\e807"; } + +.mdi-image-filter-5:before { + content: "\e808"; } + +.mdi-image-filter-6:before { + content: "\e809"; } + +.mdi-image-filter-7:before { + content: "\e80a"; } + +.mdi-image-filter-8:before { + content: "\e80b"; } + +.mdi-image-filter-9:before { + content: "\e80c"; } + +.mdi-image-filter-9-plus:before { + content: "\e80d"; } + +.mdi-image-filter-b-and-w:before { + content: "\e80e"; } + +.mdi-image-filter-center-focus:before { + content: "\e80f"; } + +.mdi-image-filter-drama:before { + content: "\e810"; } + +.mdi-image-filter-frames:before { + content: "\e811"; } + +.mdi-image-filter-hdr:before { + content: "\e812"; } + +.mdi-image-filter-none:before { + content: "\e813"; } + +.mdi-image-filter-tilt-shift:before { + content: "\e814"; } + +.mdi-image-filter-vintage:before { + content: "\e815"; } + +.mdi-image-flare:before { + content: "\e816"; } + +.mdi-image-flash-auto:before { + content: "\e817"; } + +.mdi-image-flash-off:before { + content: "\e818"; } + +.mdi-image-flash-on:before { + content: "\e819"; } + +.mdi-image-flip:before { + content: "\e81a"; } + +.mdi-image-gradient:before { + content: "\e81b"; } + +.mdi-image-grain:before { + content: "\e81c"; } + +.mdi-image-grid-off:before { + content: "\e81d"; } + +.mdi-image-grid-on:before { + content: "\e81e"; } + +.mdi-image-hdr-off:before { + content: "\e81f"; } + +.mdi-image-hdr-on:before { + content: "\e820"; } + +.mdi-image-hdr-strong:before { + content: "\e821"; } + +.mdi-image-hdr-weak:before { + content: "\e822"; } + +.mdi-image-healing:before { + content: "\e823"; } + +.mdi-image-image:before { + content: "\e824"; } + +.mdi-image-image-aspect-ratio:before { + content: "\e825"; } + +.mdi-image-iso:before { + content: "\e826"; } + +.mdi-image-landscape:before { + content: "\e827"; } + +.mdi-image-leak-add:before { + content: "\e828"; } + +.mdi-image-leak-remove:before { + content: "\e829"; } + +.mdi-image-lens:before { + content: "\e82a"; } + +.mdi-image-looks:before { + content: "\e82b"; } + +.mdi-image-looks-3:before { + content: "\e82c"; } + +.mdi-image-looks-4:before { + content: "\e82d"; } + +.mdi-image-looks-5:before { + content: "\e82e"; } + +.mdi-image-looks-6:before { + content: "\e82f"; } + +.mdi-image-looks-one:before { + content: "\e830"; } + +.mdi-image-looks-two:before { + content: "\e831"; } + +.mdi-image-loupe:before { + content: "\e832"; } + +.mdi-image-movie-creation:before { + content: "\e833"; } + +.mdi-image-nature:before { + content: "\e834"; } + +.mdi-image-nature-people:before { + content: "\e835"; } + +.mdi-image-navigate-before:before { + content: "\e836"; } + +.mdi-image-navigate-next:before { + content: "\e837"; } + +.mdi-image-palette:before { + content: "\e838"; } + +.mdi-image-panorama:before { + content: "\e839"; } + +.mdi-image-panorama-fisheye:before { + content: "\e83a"; } + +.mdi-image-panorama-horizontal:before { + content: "\e83b"; } + +.mdi-image-panorama-vertical:before { + content: "\e83c"; } + +.mdi-image-panorama-wide-angle:before { + content: "\e83d"; } + +.mdi-image-photo:before { + content: "\e83e"; } + +.mdi-image-photo-album:before { + content: "\e83f"; } + +.mdi-image-photo-camera:before { + content: "\e840"; } + +.mdi-image-photo-library:before { + content: "\e841"; } + +.mdi-image-portrait:before { + content: "\e842"; } + +.mdi-image-remove-red-eye:before { + content: "\e843"; } + +.mdi-image-rotate-left:before { + content: "\e844"; } + +.mdi-image-rotate-right:before { + content: "\e845"; } + +.mdi-image-slideshow:before { + content: "\e846"; } + +.mdi-image-straighten:before { + content: "\e847"; } + +.mdi-image-style:before { + content: "\e848"; } + +.mdi-image-switch-camera:before { + content: "\e849"; } + +.mdi-image-switch-video:before { + content: "\e84a"; } + +.mdi-image-tag-faces:before { + content: "\e84b"; } + +.mdi-image-texture:before { + content: "\e84c"; } + +.mdi-image-timelapse:before { + content: "\e84d"; } + +.mdi-image-timer:before { + content: "\e84e"; } + +.mdi-image-timer-3:before { + content: "\e84f"; } + +.mdi-image-timer-10:before { + content: "\e850"; } + +.mdi-image-timer-auto:before { + content: "\e851"; } + +.mdi-image-timer-off:before { + content: "\e852"; } + +.mdi-image-tonality:before { + content: "\e853"; } + +.mdi-image-transform:before { + content: "\e854"; } + +.mdi-image-tune:before { + content: "\e855"; } + +.mdi-image-wb-auto:before { + content: "\e856"; } + +.mdi-image-wb-cloudy:before { + content: "\e857"; } + +.mdi-image-wb-incandescent:before { + content: "\e858"; } + +.mdi-image-wb-irradescent:before { + content: "\e859"; } + +.mdi-image-wb-sunny:before { + content: "\e85a"; } + +.mdi-maps-beenhere:before { + content: "\e85b"; } + +.mdi-maps-directions:before { + content: "\e85c"; } + +.mdi-maps-directions-bike:before { + content: "\e85d"; } + +.mdi-maps-directions-bus:before { + content: "\e85e"; } + +.mdi-maps-directions-car:before { + content: "\e85f"; } + +.mdi-maps-directions-ferry:before { + content: "\e860"; } + +.mdi-maps-directions-subway:before { + content: "\e861"; } + +.mdi-maps-directions-train:before { + content: "\e862"; } + +.mdi-maps-directions-transit:before { + content: "\e863"; } + +.mdi-maps-directions-walk:before { + content: "\e864"; } + +.mdi-maps-flight:before { + content: "\e865"; } + +.mdi-maps-hotel:before { + content: "\e866"; } + +.mdi-maps-layers:before { + content: "\e867"; } + +.mdi-maps-layers-clear:before { + content: "\e868"; } + +.mdi-maps-local-airport:before { + content: "\e869"; } + +.mdi-maps-local-atm:before { + content: "\e86a"; } + +.mdi-maps-local-attraction:before { + content: "\e86b"; } + +.mdi-maps-local-bar:before { + content: "\e86c"; } + +.mdi-maps-local-cafe:before { + content: "\e86d"; } + +.mdi-maps-local-car-wash:before { + content: "\e86e"; } + +.mdi-maps-local-convenience-store:before { + content: "\e86f"; } + +.mdi-maps-local-drink:before { + content: "\e870"; } + +.mdi-maps-local-florist:before { + content: "\e871"; } + +.mdi-maps-local-gas-station:before { + content: "\e872"; } + +.mdi-maps-local-grocery-store:before { + content: "\e873"; } + +.mdi-maps-local-hospital:before { + content: "\e874"; } + +.mdi-maps-local-hotel:before { + content: "\e875"; } + +.mdi-maps-local-laundry-service:before { + content: "\e876"; } + +.mdi-maps-local-library:before { + content: "\e877"; } + +.mdi-maps-local-mall:before { + content: "\e878"; } + +.mdi-maps-local-movies:before { + content: "\e879"; } + +.mdi-maps-local-offer:before { + content: "\e87a"; } + +.mdi-maps-local-parking:before { + content: "\e87b"; } + +.mdi-maps-local-pharmacy:before { + content: "\e87c"; } + +.mdi-maps-local-phone:before { + content: "\e87d"; } + +.mdi-maps-local-pizza:before { + content: "\e87e"; } + +.mdi-maps-local-play:before { + content: "\e87f"; } + +.mdi-maps-local-post-office:before { + content: "\e880"; } + +.mdi-maps-local-print-shop:before { + content: "\e881"; } + +.mdi-maps-local-restaurant:before { + content: "\e882"; } + +.mdi-maps-local-see:before { + content: "\e883"; } + +.mdi-maps-local-shipping:before { + content: "\e884"; } + +.mdi-maps-local-taxi:before { + content: "\e885"; } + +.mdi-maps-location-history:before { + content: "\e886"; } + +.mdi-maps-map:before { + content: "\e887"; } + +.mdi-maps-my-location:before { + content: "\e888"; } + +.mdi-maps-navigation:before { + content: "\e889"; } + +.mdi-maps-pin-drop:before { + content: "\e88a"; } + +.mdi-maps-place:before { + content: "\e88b"; } + +.mdi-maps-rate-review:before { + content: "\e88c"; } + +.mdi-maps-restaurant-menu:before { + content: "\e88d"; } + +.mdi-maps-satellite:before { + content: "\e88e"; } + +.mdi-maps-store-mall-directory:before { + content: "\e88f"; } + +.mdi-maps-terrain:before { + content: "\e890"; } + +.mdi-maps-traffic:before { + content: "\e891"; } + +.mdi-navigation-apps:before { + content: "\e892"; } + +.mdi-navigation-arrow-back:before { + content: "\e893"; } + +.mdi-navigation-arrow-drop-down:before { + content: "\e894"; } + +.mdi-navigation-arrow-drop-down-circle:before { + content: "\e895"; } + +.mdi-navigation-arrow-drop-up:before { + content: "\e896"; } + +.mdi-navigation-arrow-forward:before { + content: "\e897"; } + +.mdi-navigation-cancel:before { + content: "\e898"; } + +.mdi-navigation-check:before { + content: "\e899"; } + +.mdi-navigation-chevron-left:before { + content: "\e89a"; } + +.mdi-navigation-chevron-right:before { + content: "\e89b"; } + +.mdi-navigation-close:before { + content: "\e89c"; } + +.mdi-navigation-expand-less:before { + content: "\e89d"; } + +.mdi-navigation-expand-more:before { + content: "\e89e"; } + +.mdi-navigation-fullscreen:before { + content: "\e89f"; } + +.mdi-navigation-fullscreen-exit:before { + content: "\e8a0"; } + +.mdi-navigation-menu:before { + content: "\e8a1"; } + +.mdi-navigation-more-horiz:before { + content: "\e8a2"; } + +.mdi-navigation-more-vert:before { + content: "\e8a3"; } + +.mdi-navigation-refresh:before { + content: "\e8a4"; } + +.mdi-navigation-unfold-less:before { + content: "\e8a5"; } + +.mdi-navigation-unfold-more:before { + content: "\e8a6"; } + +.mdi-notification-adb:before { + content: "\e8a7"; } + +.mdi-notification-bluetooth-audio:before { + content: "\e8a8"; } + +.mdi-notification-disc-full:before { + content: "\e8a9"; } + +.mdi-notification-dnd-forwardslash:before { + content: "\e8aa"; } + +.mdi-notification-do-not-disturb:before { + content: "\e8ab"; } + +.mdi-notification-drive-eta:before { + content: "\e8ac"; } + +.mdi-notification-event-available:before { + content: "\e8ad"; } + +.mdi-notification-event-busy:before { + content: "\e8ae"; } + +.mdi-notification-event-note:before { + content: "\e8af"; } + +.mdi-notification-folder-special:before { + content: "\e8b0"; } + +.mdi-notification-mms:before { + content: "\e8b1"; } + +.mdi-notification-more:before { + content: "\e8b2"; } + +.mdi-notification-network-locked:before { + content: "\e8b3"; } + +.mdi-notification-phone-bluetooth-speaker:before { + content: "\e8b4"; } + +.mdi-notification-phone-forwarded:before { + content: "\e8b5"; } + +.mdi-notification-phone-in-talk:before { + content: "\e8b6"; } + +.mdi-notification-phone-locked:before { + content: "\e8b7"; } + +.mdi-notification-phone-missed:before { + content: "\e8b8"; } + +.mdi-notification-phone-paused:before { + content: "\e8b9"; } + +.mdi-notification-play-download:before { + content: "\e8ba"; } + +.mdi-notification-play-install:before { + content: "\e8bb"; } + +.mdi-notification-sd-card:before { + content: "\e8bc"; } + +.mdi-notification-sim-card-alert:before { + content: "\e8bd"; } + +.mdi-notification-sms:before { + content: "\e8be"; } + +.mdi-notification-sms-failed:before { + content: "\e8bf"; } + +.mdi-notification-sync:before { + content: "\e8c0"; } + +.mdi-notification-sync-disabled:before { + content: "\e8c1"; } + +.mdi-notification-sync-problem:before { + content: "\e8c2"; } + +.mdi-notification-system-update:before { + content: "\e8c3"; } + +.mdi-notification-tap-and-play:before { + content: "\e8c4"; } + +.mdi-notification-time-to-leave:before { + content: "\e8c5"; } + +.mdi-notification-vibration:before { + content: "\e8c6"; } + +.mdi-notification-voice-chat:before { + content: "\e8c7"; } + +.mdi-notification-vpn-lock:before { + content: "\e8c8"; } + +.mdi-social-cake:before { + content: "\e8c9"; } + +.mdi-social-domain:before { + content: "\e8ca"; } + +.mdi-social-group:before { + content: "\e8cb"; } + +.mdi-social-group-add:before { + content: "\e8cc"; } + +.mdi-social-location-city:before { + content: "\e8cd"; } + +.mdi-social-mood:before { + content: "\e8ce"; } + +.mdi-social-notifications:before { + content: "\e8cf"; } + +.mdi-social-notifications-none:before { + content: "\e8d0"; } + +.mdi-social-notifications-off:before { + content: "\e8d1"; } + +.mdi-social-notifications-on:before { + content: "\e8d2"; } + +.mdi-social-notifications-paused:before { + content: "\e8d3"; } + +.mdi-social-pages:before { + content: "\e8d4"; } + +.mdi-social-party-mode:before { + content: "\e8d5"; } + +.mdi-social-people:before { + content: "\e8d6"; } + +.mdi-social-people-outline:before { + content: "\e8d7"; } + +.mdi-social-person:before { + content: "\e8d8"; } + +.mdi-social-person-add:before { + content: "\e8d9"; } + +.mdi-social-person-outline:before { + content: "\e8da"; } + +.mdi-social-plus-one:before { + content: "\e8db"; } + +.mdi-social-poll:before { + content: "\e8dc"; } + +.mdi-social-public:before { + content: "\e8dd"; } + +.mdi-social-school:before { + content: "\e8de"; } + +.mdi-social-share:before { + content: "\e8df"; } + +.mdi-social-whatshot:before { + content: "\e8e0"; } + +.mdi-toggle-check-box:before { + content: "\e8e1"; } + +.mdi-toggle-check-box-outline-blank:before { + content: "\e8e2"; } + +.mdi-toggle-radio-button-off:before { + content: "\e8e3"; } + +.mdi-toggle-radio-button-on:before { + content: "\e8e4"; } + +.container { + padding: 0 1.5rem; + margin: 0 auto; + max-width: 1280px; + width: 90%; } + +@media only screen and (min-width : 601px) { + .container { + width: 85%; } } + +@media only screen and (min-width : 993px) { + .container { + width: 70%; } } + +.container .row { + margin-left: -0.75rem; + margin-right: -0.75rem; } + +.section { + padding-top: 1rem; + padding-bottom: 1rem; } + .section.no-pad { + padding: 0; } + .section.no-pad-bot { + padding-bottom: 0; } + .section.no-pad-top { + padding-top: 0; } + +.row { + margin-left: auto; + margin-right: auto; + margin-bottom: 20px; } + .row:after { + content: ""; + display: table; + clear: both; } + .row .col { + float: left; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0 0.75rem; } + .row .col.s1 { + width: 8.33333%; + margin-left: 0; } + .row .col.s2 { + width: 16.66667%; + margin-left: 0; } + .row .col.s3 { + width: 25%; + margin-left: 0; } + .row .col.s4 { + width: 33.33333%; + margin-left: 0; } + .row .col.s5 { + width: 41.66667%; + margin-left: 0; } + .row .col.s6 { + width: 50%; + margin-left: 0; } + .row .col.s7 { + width: 58.33333%; + margin-left: 0; } + .row .col.s8 { + width: 66.66667%; + margin-left: 0; } + .row .col.s9 { + width: 75%; + margin-left: 0; } + .row .col.s10 { + width: 83.33333%; + margin-left: 0; } + .row .col.s11 { + width: 91.66667%; + margin-left: 0; } + .row .col.s12 { + width: 100%; + margin-left: 0; } + .row .col.offset-s1 { + margin-left: 8.33333%; } + .row .col.offset-s2 { + margin-left: 16.66667%; } + .row .col.offset-s3 { + margin-left: 25%; } + .row .col.offset-s4 { + margin-left: 33.33333%; } + .row .col.offset-s5 { + margin-left: 41.66667%; } + .row .col.offset-s6 { + margin-left: 50%; } + .row .col.offset-s7 { + margin-left: 58.33333%; } + .row .col.offset-s8 { + margin-left: 66.66667%; } + .row .col.offset-s9 { + margin-left: 75%; } + .row .col.offset-s10 { + margin-left: 83.33333%; } + .row .col.offset-s11 { + margin-left: 91.66667%; } + .row .col.offset-s12 { + margin-left: 100%; } + @media only screen and (min-width : 601px) { + .row .col.m1 { + width: 8.33333%; + margin-left: 0; } + .row .col.m2 { + width: 16.66667%; + margin-left: 0; } + .row .col.m3 { + width: 25%; + margin-left: 0; } + .row .col.m4 { + width: 33.33333%; + margin-left: 0; } + .row .col.m5 { + width: 41.66667%; + margin-left: 0; } + .row .col.m6 { + width: 50%; + margin-left: 0; } + .row .col.m7 { + width: 58.33333%; + margin-left: 0; } + .row .col.m8 { + width: 66.66667%; + margin-left: 0; } + .row .col.m9 { + width: 75%; + margin-left: 0; } + .row .col.m10 { + width: 83.33333%; + margin-left: 0; } + .row .col.m11 { + width: 91.66667%; + margin-left: 0; } + .row .col.m12 { + width: 100%; + margin-left: 0; } + .row .col.offset-m1 { + margin-left: 8.33333%; } + .row .col.offset-m2 { + margin-left: 16.66667%; } + .row .col.offset-m3 { + margin-left: 25%; } + .row .col.offset-m4 { + margin-left: 33.33333%; } + .row .col.offset-m5 { + margin-left: 41.66667%; } + .row .col.offset-m6 { + margin-left: 50%; } + .row .col.offset-m7 { + margin-left: 58.33333%; } + .row .col.offset-m8 { + margin-left: 66.66667%; } + .row .col.offset-m9 { + margin-left: 75%; } + .row .col.offset-m10 { + margin-left: 83.33333%; } + .row .col.offset-m11 { + margin-left: 91.66667%; } + .row .col.offset-m12 { + margin-left: 100%; } } + @media only screen and (min-width : 993px) { + .row .col.l1 { + width: 8.33333%; + margin-left: 0; } + .row .col.l2 { + width: 16.66667%; + margin-left: 0; } + .row .col.l3 { + width: 25%; + margin-left: 0; } + .row .col.l4 { + width: 33.33333%; + margin-left: 0; } + .row .col.l5 { + width: 41.66667%; + margin-left: 0; } + .row .col.l6 { + width: 50%; + margin-left: 0; } + .row .col.l7 { + width: 58.33333%; + margin-left: 0; } + .row .col.l8 { + width: 66.66667%; + margin-left: 0; } + .row .col.l9 { + width: 75%; + margin-left: 0; } + .row .col.l10 { + width: 83.33333%; + margin-left: 0; } + .row .col.l11 { + width: 91.66667%; + margin-left: 0; } + .row .col.l12 { + width: 100%; + margin-left: 0; } + .row .col.offset-l1 { + margin-left: 8.33333%; } + .row .col.offset-l2 { + margin-left: 16.66667%; } + .row .col.offset-l3 { + margin-left: 25%; } + .row .col.offset-l4 { + margin-left: 33.33333%; } + .row .col.offset-l5 { + margin-left: 41.66667%; } + .row .col.offset-l6 { + margin-left: 50%; } + .row .col.offset-l7 { + margin-left: 58.33333%; } + .row .col.offset-l8 { + margin-left: 66.66667%; } + .row .col.offset-l9 { + margin-left: 75%; } + .row .col.offset-l10 { + margin-left: 83.33333%; } + .row .col.offset-l11 { + margin-left: 91.66667%; } + .row .col.offset-l12 { + margin-left: 100%; } } + +nav { + color: #fff; + background-color: #ee6e73; + width: 100%; + height: 56px; + line-height: 56px; } + nav a { + color: #fff; } + nav .nav-wrapper { + position: relative; + height: 100%; } + nav .nav-wrapper i { + display: block; + font-size: 2rem; } + @media only screen and (min-width : 993px) { + nav a.button-collapse { + display: none; } } + nav .button-collapse { + float: left; + position: relative; + z-index: 1; + height: 56px; } + nav .button-collapse i { + font-size: 2.7rem; + height: 56px; + line-height: 56px; } + nav .brand-logo { + position: absolute; + color: #fff; + display: inline-block; + font-size: 2.1rem; + padding: 0; } + nav .brand-logo.center { + left: 50%; + -webkit-transform: translateX(-50%); + -moz-transform: translateX(-50%); + -ms-transform: translateX(-50%); + -o-transform: translateX(-50%); + transform: translateX(-50%); } + @media only screen and (max-width : 992px) { + nav .brand-logo { + left: 50%; + -webkit-transform: translateX(-50%); + -moz-transform: translateX(-50%); + -ms-transform: translateX(-50%); + -o-transform: translateX(-50%); + transform: translateX(-50%); } } + nav .brand-logo.right { + right: 0.5rem; + padding: 0; } + nav ul { + margin: 0; } + nav ul li { + -webkit-transition: background-color .3s; + -moz-transition: background-color .3s; + -o-transition: background-color .3s; + -ms-transition: background-color .3s; + transition: background-color .3s; + float: left; + padding: 0; } + nav ul li:hover, nav ul li.active { + background-color: rgba(0, 0, 0, 0.1); } + nav ul a { + font-size: 1rem; + color: #fff; + display: block; + padding: 0 15px; } + nav ul.left { + float: left; } + nav .input-field { + margin: 0; } + nav .input-field input { + height: 100%; + font-size: 1.2rem; + border: none; + padding-left: 2rem; } + nav .input-field input:focus, nav .input-field input[type=text]:valid, nav .input-field input[type=password]:valid, nav .input-field input[type=email]:valid, nav .input-field input[type=url]:valid, nav .input-field input[type=date]:valid { + border: none; + box-shadow: none; } + nav .input-field label { + top: 0; + left: 0; } + nav .input-field label i { + color: rgba(255, 255, 255, 0.7); + -webkit-transition: color .3s; + -moz-transition: color .3s; + -o-transition: color .3s; + -ms-transition: color .3s; + transition: color .3s; } + nav .input-field label.active i { + color: #fff; } + nav .input-field label.active { + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -ms-transform: translateY(0); + -o-transform: translateY(0); + transform: translateY(0); } + +.navbar-fixed { + position: relative; + height: 56px; + z-index: 998; } + .navbar-fixed nav { + position: fixed; } + +@media only screen and (min-width : 601px) { + nav, nav .nav-wrapper i, nav a.button-collapse, nav a.button-collapse i { + height: 64px; + line-height: 64px; } + .navbar-fixed { + height: 64px; } } + +@font-face { + font-family: "Roboto"; + src: url("../font/roboto/Roboto-Thin.woff2") format("woff2"), url("../font/roboto/Roboto-Thin.woff") format("woff"), url("../font/roboto/Roboto-Thin.ttf") format("truetype"); + font-weight: 200; } + +@font-face { + font-family: "Roboto"; + src: url("../font/roboto/Roboto-Light.woff2") format("woff2"), url("../font/roboto/Roboto-Light.woff") format("woff"), url("../font/roboto/Roboto-Light.ttf") format("truetype"); + font-weight: 300; } + +@font-face { + font-family: "Roboto"; + src: url("../font/roboto/Roboto-Regular.woff2") format("woff2"), url("../font/roboto/Roboto-Regular.woff") format("woff"), url("../font/roboto/Roboto-Regular.ttf") format("truetype"); + font-weight: 400; } + +@font-face { + font-family: "Roboto"; + src: url("../font/roboto/Roboto-Medium.woff2") format("woff2"), url("../font/roboto/Roboto-Medium.woff") format("woff"), url("../font/roboto/Roboto-Medium.ttf") format("truetype"); + font-weight: 500; } + +@font-face { + font-family: "Roboto"; + src: url("../font/roboto/Roboto-Bold.woff2") format("woff2"), url("../font/roboto/Roboto-Bold.woff") format("woff"), url("../font/roboto/Roboto-Bold.ttf") format("truetype"); + font-weight: 700; } + +a { + text-decoration: none; } + +html { + line-height: 1.5; + font-family: "Roboto", sans-serif; + font-weight: normal; + color: rgba(0, 0, 0, 0.87); } + @media only screen and (min-width: 0) { + html { + font-size: 14px; } } + @media only screen and (min-width: 992px) { + html { + font-size: 14.5px; } } + @media only screen and (min-width: 1200px) { + html { + font-size: 15px; } } + +h1, h2, h3, h4, h5, h6 { + font-weight: 400; } + +h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { + font-weight: inherit; } + +h1 { + font-size: 4.2rem; + line-height: 4.62rem; + margin: 2.1rem 0 1.68rem 0; } + +h2 { + font-size: 3.56rem; + line-height: 3.916rem; + margin: 1.78rem 0 1.424rem 0; } + +h3 { + font-size: 2.92rem; + line-height: 3.212rem; + margin: 1.46rem 0 1.168rem 0; } + +h4 { + font-size: 2.28rem; + line-height: 2.508rem; + margin: 1.14rem 0 0.912rem 0; } + +h5 { + font-size: 1.64rem; + line-height: 1.804rem; + margin: 0.82rem 0 0.656rem 0; } + +h6 { + font-size: 1rem; + line-height: 1.1rem; + margin: 0.5rem 0 0.4rem 0; } + +em { + font-style: italic; } + +strong { + font-weight: 500; } + +small { + font-size: 75%; } + +.light, footer.page-footer .footer-copyright { + font-weight: 300; } + +.thin { + font-weight: 200; } + +.flow-text { + font-weight: 300; } + @media only screen and (min-width: 360px) { + .flow-text { + font-size: 1.2rem; } } + @media only screen and (min-width: 0px) { + .flow-text { + line-height: .8rem; } } + @media only screen and (min-width: 390px) { + .flow-text { + font-size: 1.224rem; } } + @media only screen and (min-width: 30px) { + .flow-text { + line-height: .904rem; } } + @media only screen and (min-width: 420px) { + .flow-text { + font-size: 1.248rem; } } + @media only screen and (min-width: 60px) { + .flow-text { + line-height: 1.008rem; } } + @media only screen and (min-width: 450px) { + .flow-text { + font-size: 1.272rem; } } + @media only screen and (min-width: 90px) { + .flow-text { + line-height: 1.112rem; } } + @media only screen and (min-width: 480px) { + .flow-text { + font-size: 1.296rem; } } + @media only screen and (min-width: 120px) { + .flow-text { + line-height: 1.216rem; } } + @media only screen and (min-width: 510px) { + .flow-text { + font-size: 1.32rem; } } + @media only screen and (min-width: 150px) { + .flow-text { + line-height: 1.32rem; } } + @media only screen and (min-width: 540px) { + .flow-text { + font-size: 1.344rem; } } + @media only screen and (min-width: 180px) { + .flow-text { + line-height: 1.424rem; } } + @media only screen and (min-width: 570px) { + .flow-text { + font-size: 1.368rem; } } + @media only screen and (min-width: 210px) { + .flow-text { + line-height: 1.528rem; } } + @media only screen and (min-width: 600px) { + .flow-text { + font-size: 1.392rem; } } + @media only screen and (min-width: 240px) { + .flow-text { + line-height: 1.632rem; } } + @media only screen and (min-width: 630px) { + .flow-text { + font-size: 1.416rem; } } + @media only screen and (min-width: 270px) { + .flow-text { + line-height: 1.736rem; } } + @media only screen and (min-width: 660px) { + .flow-text { + font-size: 1.44rem; } } + @media only screen and (min-width: 300px) { + .flow-text { + line-height: 1.84rem; } } + @media only screen and (min-width: 690px) { + .flow-text { + font-size: 1.464rem; } } + @media only screen and (min-width: 330px) { + .flow-text { + line-height: 1.944rem; } } + @media only screen and (min-width: 720px) { + .flow-text { + font-size: 1.488rem; } } + @media only screen and (min-width: 360px) { + .flow-text { + line-height: 2.048rem; } } + @media only screen and (min-width: 750px) { + .flow-text { + font-size: 1.512rem; } } + @media only screen and (min-width: 390px) { + .flow-text { + line-height: 2.152rem; } } + @media only screen and (min-width: 780px) { + .flow-text { + font-size: 1.536rem; } } + @media only screen and (min-width: 420px) { + .flow-text { + line-height: 2.256rem; } } + @media only screen and (min-width: 810px) { + .flow-text { + font-size: 1.56rem; } } + @media only screen and (min-width: 450px) { + .flow-text { + line-height: 2.36rem; } } + @media only screen and (min-width: 840px) { + .flow-text { + font-size: 1.584rem; } } + @media only screen and (min-width: 480px) { + .flow-text { + line-height: 2.464rem; } } + @media only screen and (min-width: 870px) { + .flow-text { + font-size: 1.608rem; } } + @media only screen and (min-width: 510px) { + .flow-text { + line-height: 2.568rem; } } + @media only screen and (min-width: 900px) { + .flow-text { + font-size: 1.632rem; } } + @media only screen and (min-width: 540px) { + .flow-text { + line-height: 2.672rem; } } + @media only screen and (min-width: 930px) { + .flow-text { + font-size: 1.656rem; } } + @media only screen and (min-width: 570px) { + .flow-text { + line-height: 2.776rem; } } + @media only screen and (min-width: 960px) { + .flow-text { + font-size: 1.68rem; } } + @media only screen and (min-width: 600px) { + .flow-text { + line-height: 2.88rem; } } + +.card-panel { + padding: 20px; + margin: 0.5rem 0 1rem 0; + border-radius: 2px; + background-color: #fff; } + +.card { + position: relative; + overflow: hidden; + margin: 0.5rem 0 1rem 0; + background-color: #fff; + border-radius: 2px; } + .card .card-title { + color: #fff; + font-size: 24px; + font-weight: 300; } + .card .card-title.activator { + cursor: pointer; } + .card.small, .card.medium, .card.large { + position: relative; } + .card.small .card-image, .card.medium .card-image, .card.large .card-image { + overflow: hidden; } + .card.small .card-content, .card.medium .card-content, .card.large .card-content { + overflow: hidden; } + .card.small .card-action, .card.medium .card-action, .card.large .card-action { + position: absolute; + bottom: 0; + left: 0; + right: 0; } + .card.small { + height: 300px; } + .card.small .card-image { + height: 150px; } + .card.small .card-content { + height: 150px; } + .card.medium { + height: 400px; } + .card.medium .card-image { + height: 250px; } + .card.medium .card-content { + height: 150px; } + .card.large { + height: 500px; } + .card.large .card-image { + height: 330px; } + .card.large .card-content { + height: 170px; } + .card .card-image { + position: relative; } + .card .card-image img { + border-radius: 2px 2px 0 0; + position: relative; + left: 0; + right: 0; + top: 0; + bottom: 0; + width: 100%; } + .card .card-image .card-title { + position: absolute; + bottom: 0; + left: 0; + padding: 20px; } + .card .card-content { + padding: 20px; + border-radius: 0 0 2px 2px; } + .card .card-content p { + margin: 0; + color: inherit; } + .card .card-content .card-title { + line-height: 48px; } + .card .card-action { + border-top: 1px solid rgba(160, 160, 160, 0.2); + padding: 20px; } + .card .card-action a { + color: #ffab40; + margin-right: 20px; + -webkit-transition: color .3s ease; + -moz-transition: color .3s ease; + -o-transition: color .3s ease; + -ms-transition: color .3s ease; + transition: color .3s ease; + text-transform: uppercase; } + .card .card-action a:hover { + color: #ffd8a6; } + .card .card-reveal { + padding: 20px; + position: absolute; + background-color: #FFF; + width: 100%; + overflow-y: auto; + top: 100%; + height: 100%; + z-index: 1; + display: none; } + .card .card-reveal .card-title { + cursor: pointer; + display: block; } + +#toast-container { + display: block; + position: fixed; + z-index: 1001; } + @media only screen and (max-width : 600px) { + #toast-container { + min-width: 100%; + bottom: 0%; } } + @media only screen and (min-width : 601px) and (max-width : 992px) { + #toast-container { + min-width: 30%; + left: 5%; + bottom: 7%; } } + @media only screen and (min-width : 993px) { + #toast-container { + min-width: 8%; + top: 10%; + right: 7%; } } + +.toast { + border-radius: 2px; + top: 0; + width: auto; + clear: both; + margin-top: 10px; + position: relative; + max-width: 100%; + height: 48px; + line-height: 48px; + background-color: #323232; + padding: 0 25px; + font-size: 1.1rem; + font-weight: 300; + color: #fff; + display: -webkit-box; + display: -moz-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-justify-content: space-between; + justify-content: space-between; } + .toast .btn, .toast .btn-large, .toast .btn-flat { + margin: 0; + margin-left: 3rem; } + .toast.rounded { + border-radius: 24px; } + @media only screen and (max-width : 600px) { + .toast { + width: 100%; + border-radius: 0; } } + @media only screen and (min-width : 601px) and (max-width : 992px) { + .toast { + float: left; } } + @media only screen and (min-width : 993px) { + .toast { + float: right; } } + +.tabs { + position: relative; + height: 48px; + background-color: #fff; + margin: 0 auto; + width: 100%; + white-space: nowrap; } + .tabs .tab { + display: block; + float: left; + text-align: center; + line-height: 48px; + height: 48px; + padding: 0 20px; + margin: 0; + text-transform: uppercase; + letter-spacing: .8px; + width: 15%; } + .tabs .tab a { + color: #ee6e73; + display: block; + width: 100%; + height: 100%; + -webkit-transition: color .28s ease; + -moz-transition: color .28s ease; + -o-transition: color .28s ease; + -ms-transition: color .28s ease; + transition: color .28s ease; } + .tabs .tab a:hover { + color: #f9c9cb; } + .tabs .indicator { + position: absolute; + bottom: 0; + height: 2px; + background-color: #f6b2b5; + will-change: left, right; } + +.tabs .tab { + padding: 0; } + +.material-tooltip { + padding: 10px 8px; + font-size: 1rem; + z-index: 1000; + background-color: transparent; + border-radius: 2px; + color: #fff; + min-height: 36px; + line-height: 1rem; + opacity: 0; + display: none; + position: absolute; + text-align: center; + overflow: hidden; + left: 0; + top: 0; + will-change: top, left; } + +.backdrop { + position: absolute; + opacity: 0; + display: none; + height: 7px; + width: 14px; + border-radius: 0 0 14px 14px; + background-color: #323232; + z-index: -1; + -webkit-transform-origin: 50% 10%; + -moz-transform-origin: 50% 10%; + -ms-transform-origin: 50% 10%; + -o-transform-origin: 50% 10%; + transform-origin: 50% 10%; + will-change: transform, opacity; } + +.btn, .btn-large, .btn-flat { + border: none; + border-radius: 2px; + display: inline-block; + height: 36px; + line-height: 36px; + outline: 0; + padding: 0 2rem; + text-transform: uppercase; + vertical-align: middle; + -webkit-tap-highlight-color: transparent; } + +.btn.disabled, .disabled.btn-large, .btn-floating.disabled, .btn-large.disabled, .btn:disabled, .btn-large:disabled, .btn-large:disabled, .btn-floating:disabled { + background-color: #DFDFDF; + box-shadow: none; + color: #9F9F9F; + cursor: default; } + .btn.disabled *, .disabled.btn-large *, .btn-floating.disabled *, .btn-large.disabled *, .btn:disabled *, .btn-large:disabled *, .btn-large:disabled *, .btn-floating:disabled * { + pointer-events: none; } + .btn.disabled:hover, .disabled.btn-large:hover, .btn-floating.disabled:hover, .btn-large.disabled:hover, .btn:disabled:hover, .btn-large:disabled:hover, .btn-large:disabled:hover, .btn-floating:disabled:hover { + background-color: #DFDFDF; + color: #9F9F9F; } + +.btn i, .btn-large i, .btn-floating i, .btn-large i, .btn-flat i { + font-size: 1.3rem; + line-height: inherit; } + +.btn, .btn-large { + text-decoration: none; + color: #FFF; + background-color: #26a69a; + text-align: center; + letter-spacing: .5px; + -webkit-transition: .2s ease-out; + -moz-transition: .2s ease-out; + -o-transition: .2s ease-out; + -ms-transition: .2s ease-out; + transition: .2s ease-out; + cursor: pointer; } + .btn:hover, .btn-large:hover { + background-color: #2bbbad; } + +.btn-floating { + display: inline-block; + color: #FFF; + position: relative; + overflow: hidden; + z-index: 1; + width: 37px; + height: 37px; + line-height: 37px; + padding: 0; + background-color: #26a69a; + border-radius: 50%; + transition: .3s; + cursor: pointer; + vertical-align: middle; } + .btn-floating i { + width: inherit; + display: inline-block; + text-align: center; + color: #FFF; + font-size: 1.6rem; + line-height: 37px; } + .btn-floating:before { + border-radius: 0; } + .btn-floating.btn-large { + width: 55.5px; + height: 55.5px; } + .btn-floating.btn-large i { + line-height: 55.5px; } + +button.btn-floating { + border: none; } + +.fixed-action-btn { + position: fixed; + right: 23px; + bottom: 23px; + padding-top: 15px; + margin-bottom: 0; + z-index: 998; } + .fixed-action-btn ul { + left: 0; + right: 0; + text-align: center; + position: absolute; + bottom: 64px; } + .fixed-action-btn ul li { + margin-bottom: 15px; } + .fixed-action-btn ul a.btn-floating { + opacity: 0; } + +.btn-flat { + box-shadow: none; + background-color: transparent; + color: #343434; + cursor: pointer; } + .btn-flat.disabled { + color: #b3b3b3; + cursor: default; } + +.btn-large { + height: 54px; + line-height: 56px; } + .btn-large i { + font-size: 1.6rem; } + +.dropdown-content { + background-color: #FFFFFF; + margin: 0; + display: none; + min-width: 100px; + max-height: 650px; + overflow-y: auto; + opacity: 0; + position: absolute; + white-space: nowrap; + z-index: 1; + will-change: width, height; } + .dropdown-content li { + clear: both; + color: rgba(0, 0, 0, 0.87); + cursor: pointer; + line-height: 1.5rem; + width: 100%; + text-align: left; + text-transform: none; } + .dropdown-content li:hover, .dropdown-content li.active { + background-color: #eee; } + .dropdown-content li > a, .dropdown-content li > span { + font-size: 1.2rem; + color: #26a69a; + display: block; + padding: 1rem 1rem; } + +/*! + * Waves v0.6.0 + * http://fian.my.id/Waves + * + * Copyright 2014 Alfiana E. Sibuea and other contributors + * Released under the MIT license + * https://github.com/fians/Waves/blob/master/LICENSE + */ +.waves-effect { + position: relative; + cursor: pointer; + display: inline-block; + overflow: hidden; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-tap-highlight-color: transparent; + vertical-align: middle; + z-index: 1; + will-change: opacity, transform; + -webkit-transition: all .3s ease-out; + -moz-transition: all .3s ease-out; + -o-transition: all .3s ease-out; + -ms-transition: all .3s ease-out; + transition: all .3s ease-out; } + .waves-effect .waves-ripple { + position: absolute; + border-radius: 50%; + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + opacity: 0; + background: rgba(0, 0, 0, 0.2); + -webkit-transition: all 0.7s ease-out; + -moz-transition: all 0.7s ease-out; + -o-transition: all 0.7s ease-out; + -ms-transition: all 0.7s ease-out; + transition: all 0.7s ease-out; + -webkit-transition-property: -webkit-transform, opacity; + -moz-transition-property: -moz-transform, opacity; + -o-transition-property: -o-transform, opacity; + transition-property: transform, opacity; + -webkit-transform: scale(0); + -moz-transform: scale(0); + -ms-transform: scale(0); + -o-transform: scale(0); + transform: scale(0); + pointer-events: none; } + .waves-effect.waves-light .waves-ripple { + background-color: rgba(255, 255, 255, 0.45); } + .waves-effect.waves-red .waves-ripple { + background-color: rgba(244, 67, 54, 0.7); } + .waves-effect.waves-yellow .waves-ripple { + background-color: rgba(255, 235, 59, 0.7); } + .waves-effect.waves-orange .waves-ripple { + background-color: rgba(255, 152, 0, 0.7); } + .waves-effect.waves-purple .waves-ripple { + background-color: rgba(156, 39, 176, 0.7); } + .waves-effect.waves-green .waves-ripple { + background-color: rgba(76, 175, 80, 0.7); } + .waves-effect.waves-teal .waves-ripple { + background-color: rgba(0, 150, 136, 0.7); } + +.waves-notransition { + -webkit-transition: none !important; + -moz-transition: none !important; + -o-transition: none !important; + -ms-transition: none !important; + transition: none !important; } + +.waves-circle { + -webkit-transform: translateZ(0); + -moz-transform: translateZ(0); + -ms-transform: translateZ(0); + -o-transform: translateZ(0); + transform: translateZ(0); + -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%); } + +.waves-input-wrapper { + border-radius: 0.2em; + vertical-align: bottom; } + .waves-input-wrapper .waves-button-input { + position: relative; + top: 0; + left: 0; + z-index: 1; } + +.waves-circle { + text-align: center; + width: 2.5em; + height: 2.5em; + line-height: 2.5em; + border-radius: 50%; + -webkit-mask-image: none; } + +.waves-block { + display: block; } + +/* Firefox Bug: link not triggered */ +a.waves-effect .waves-ripple { + z-index: -1; } + +.modal { + display: none; + position: fixed; + left: 0; + right: 0; + background-color: #fafafa; + padding: 0; + max-height: 70%; + width: 55%; + margin: auto; + overflow-y: auto; + z-index: 1000; + border-radius: 2px; + -webkit-transform: translate(0); + -moz-transform: translate(0); + -ms-transform: translate(0); + -o-transform: translate(0); + transform: translate(0); + will-change: top, opacity; } + @media only screen and (max-width : 992px) { + .modal { + width: 80%; } } + .modal h1, .modal h2, .modal h3, .modal h4 { + margin-top: 0; } + .modal .modal-content { + padding: 24px; } + .modal .modal-footer { + border-radius: 0 0 2px 2px; + background-color: #fafafa; + padding: 4px 6px; + height: 56px; + width: 100%; } + .modal .modal-footer .btn, .modal .modal-footer .btn-large, .modal .modal-footer .btn-flat { + float: right; + margin: 6px 0; } + +#lean-overlay { + position: fixed; + z-index: 999; + top: 0; + left: 0; + bottom: 0; + right: 0; + height: 115%; + width: 100%; + background: #000; + display: none; + will-change: opacity; } + +.modal.modal-fixed-footer { + padding: 0; + height: 70%; } + .modal.modal-fixed-footer .modal-content { + position: fixed; + max-height: 100%; + padding-bottom: 64px; + width: 100%; + overflow-y: auto; } + .modal.modal-fixed-footer .modal-footer { + border-top: 1px solid rgba(0, 0, 0, 0.1); + position: fixed; + bottom: 0; } + +.modal.bottom-sheet { + top: auto; + bottom: -100%; + margin: 0; + width: 100%; + max-height: 45%; + border-radius: 0; + will-change: bottom, opacity; } + +.collapsible { + border-top: 1px solid #ddd; + border-right: 1px solid #ddd; + border-left: 1px solid #ddd; + margin: 0.5rem 0 1rem 0; } + +.collapsible-header { + display: block; + cursor: pointer; + height: 3rem; + line-height: 3rem; + padding: 0 1rem; + background-color: #fff; + border-bottom: 1px solid #ddd; } + .collapsible-header i { + width: 2rem; + font-size: 1.6rem; + line-height: 3rem; + display: block; + float: left; + text-align: center; + margin-right: 1rem; } + +.collapsible-body { + overflow: hidden; + display: none; + border-bottom: 1px solid #ddd; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } + .collapsible-body p { + margin: 0; + padding: 2rem; } + +.side-nav .collapsible { + border: none; + box-shadow: none; } + .side-nav .collapsible li { + padding: 0; } +.side-nav .collapsible-header { + background-color: transparent; + border: none; + line-height: inherit; + height: inherit; + margin: 0 1rem; } + .side-nav .collapsible-header i { + line-height: inherit; } +.side-nav .collapsible-body { + border: 0; + background-color: #FFF; } + .side-nav .collapsible-body li a { + margin: 0 1rem 0 2rem; } + +.collapsible.popout { + border: none; + box-shadow: none; } + .collapsible.popout > li { + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); + transform: scaleX(.92) translate3d(0, 0, 0); + transition: margin .35s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform .35s cubic-bezier(0.25, 0.46, 0.45, 0.94); } + .collapsible.popout > li:hover { + will-change: margin, transform; } + .collapsible.popout > li.active { + box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); + margin: 16px 0; + transform: scaleX(1) translate3d(0, 0, 0); } + +.materialboxed { + cursor: zoom-in; + position: relative; + -webkit-transition: opacity .4s; + -moz-transition: opacity .4s; + -o-transition: opacity .4s; + -ms-transition: opacity .4s; + transition: opacity .4s; } + .materialboxed:hover { + will-change: left, top, width, height; } + .materialboxed:hover:not(.active) { + opacity: .8; } + +.materialboxed.active { + cursor: zoom-out; } + +#materialbox-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #292929; + z-index: 999; + will-change: opacity; } + +.materialbox-caption { + position: fixed; + display: none; + color: #fff; + line-height: 50px; + bottom: 0; + width: 100%; + text-align: center; + padding: 0% 15%; + height: 50px; + z-index: 1000; + -webkit-font-smoothing: antialiased; } + +/* Remove Focus Boxes */ +select:focus { + outline: 1px solid #c9f3ef; } + +button:focus { + outline: none; + background-color: #2ab7a9; } + +label { + font-size: 0.8rem; + color: #9e9e9e; } + +/*************************** + Text Inputs + Textarea +****************************/ +::-webkit-input-placeholder { + color: #d1d1d1; } + +:-moz-placeholder { + /* Firefox 18- */ + color: #d1d1d1; } + +::-moz-placeholder { + /* Firefox 19+ */ + color: #d1d1d1; } + +:-ms-input-placeholder { + color: #d1d1d1; } + +input[type=text], input[type=password], input[type=email], input[type=url], input[type=time], input[type=date], input[type=datetime-local], input[type=tel], input[type=number], input[type=search], textarea.materialize-textarea { + background-color: transparent; + border: none; + border-bottom: 1px solid #9e9e9e; + border-radius: 0; + outline: none; + height: 3rem; + width: 100%; + font-size: 1rem; + margin: 0 0 15px 0; + padding: 0; + box-shadow: none; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + transition: all .3s; } + input[type=text]:disabled, input[type=text][readonly="readonly"], input[type=password]:disabled, input[type=password][readonly="readonly"], input[type=email]:disabled, input[type=email][readonly="readonly"], input[type=url]:disabled, input[type=url][readonly="readonly"], input[type=time]:disabled, input[type=time][readonly="readonly"], input[type=date]:disabled, input[type=date][readonly="readonly"], input[type=datetime-local]:disabled, input[type=datetime-local][readonly="readonly"], input[type=tel]:disabled, input[type=tel][readonly="readonly"], input[type=number]:disabled, input[type=number][readonly="readonly"], input[type=search]:disabled, input[type=search][readonly="readonly"], textarea.materialize-textarea:disabled, textarea.materialize-textarea[readonly="readonly"] { + color: rgba(0, 0, 0, 0.26); + border-bottom: 1px dotted rgba(0, 0, 0, 0.26); } + input[type=text]:disabled + label, input[type=text][readonly="readonly"] + label, input[type=password]:disabled + label, input[type=password][readonly="readonly"] + label, input[type=email]:disabled + label, input[type=email][readonly="readonly"] + label, input[type=url]:disabled + label, input[type=url][readonly="readonly"] + label, input[type=time]:disabled + label, input[type=time][readonly="readonly"] + label, input[type=date]:disabled + label, input[type=date][readonly="readonly"] + label, input[type=datetime-local]:disabled + label, input[type=datetime-local][readonly="readonly"] + label, input[type=tel]:disabled + label, input[type=tel][readonly="readonly"] + label, input[type=number]:disabled + label, input[type=number][readonly="readonly"] + label, input[type=search]:disabled + label, input[type=search][readonly="readonly"] + label, textarea.materialize-textarea:disabled + label, textarea.materialize-textarea[readonly="readonly"] + label { + color: rgba(0, 0, 0, 0.26); } + input[type=text]:focus:not([readonly]), input[type=password]:focus:not([readonly]), input[type=email]:focus:not([readonly]), input[type=url]:focus:not([readonly]), input[type=time]:focus:not([readonly]), input[type=date]:focus:not([readonly]), input[type=datetime-local]:focus:not([readonly]), input[type=tel]:focus:not([readonly]), input[type=number]:focus:not([readonly]), input[type=search]:focus:not([readonly]), textarea.materialize-textarea:focus:not([readonly]) { + border-bottom: 1px solid #26a69a; + box-shadow: 0 1px 0 0 #26a69a; } + input[type=text]:focus:not([readonly]) + label, input[type=password]:focus:not([readonly]) + label, input[type=email]:focus:not([readonly]) + label, input[type=url]:focus:not([readonly]) + label, input[type=time]:focus:not([readonly]) + label, input[type=date]:focus:not([readonly]) + label, input[type=datetime-local]:focus:not([readonly]) + label, input[type=tel]:focus:not([readonly]) + label, input[type=number]:focus:not([readonly]) + label, input[type=search]:focus:not([readonly]) + label, textarea.materialize-textarea:focus:not([readonly]) + label { + color: #26a69a; } + input[type=text].valid, input[type=text]:focus.valid, input[type=password].valid, input[type=password]:focus.valid, input[type=email].valid, input[type=email]:focus.valid, input[type=url].valid, input[type=url]:focus.valid, input[type=time].valid, input[type=time]:focus.valid, input[type=date].valid, input[type=date]:focus.valid, input[type=datetime-local].valid, input[type=datetime-local]:focus.valid, input[type=tel].valid, input[type=tel]:focus.valid, input[type=number].valid, input[type=number]:focus.valid, input[type=search].valid, input[type=search]:focus.valid, textarea.materialize-textarea.valid, textarea.materialize-textarea:focus.valid { + border-bottom: 1px solid #4CAF50; + box-shadow: 0 1px 0 0 #4CAF50; } + input[type=text].invalid, input[type=text]:focus.invalid, input[type=password].invalid, input[type=password]:focus.invalid, input[type=email].invalid, input[type=email]:focus.invalid, input[type=url].invalid, input[type=url]:focus.invalid, input[type=time].invalid, input[type=time]:focus.invalid, input[type=date].invalid, input[type=date]:focus.invalid, input[type=datetime-local].invalid, input[type=datetime-local]:focus.invalid, input[type=tel].invalid, input[type=tel]:focus.invalid, input[type=number].invalid, input[type=number]:focus.invalid, input[type=search].invalid, input[type=search]:focus.invalid, textarea.materialize-textarea.invalid, textarea.materialize-textarea:focus.invalid { + border-bottom: 1px solid #F44336; + box-shadow: 0 1px 0 0 #F44336; } + +.input-field { + position: relative; + margin-top: 1rem; } + .input-field label { + color: #9e9e9e; + position: absolute; + top: 0.8rem; + left: 0.75rem; + font-size: 1rem; + cursor: text; + -webkit-transition: .2s ease-out; + -moz-transition: .2s ease-out; + -o-transition: .2s ease-out; + -ms-transition: .2s ease-out; + transition: .2s ease-out; } + .input-field label.active { + font-size: 0.8rem; + -webkit-transform: translateY(-140%); + -moz-transform: translateY(-140%); + -ms-transform: translateY(-140%); + -o-transform: translateY(-140%); + transform: translateY(-140%); } + .input-field .prefix { + position: absolute; + width: 3rem; + font-size: 2rem; + -webkit-transition: color .2s; + -moz-transition: color .2s; + -o-transition: color .2s; + -ms-transition: color .2s; + transition: color .2s; } + .input-field .prefix.active { + color: #26a69a; } + .input-field .prefix ~ input, .input-field .prefix ~ textarea { + margin-left: 3rem; + width: 92%; + width: calc(100% - 3rem); } + .input-field .prefix ~ textarea { + padding-top: .8rem; } + .input-field .prefix ~ label { + margin-left: 3rem; } + @media only screen and (max-width : 992px) { + .input-field .prefix ~ input { + width: 86%; + width: calc(100% - 3rem); } } + @media only screen and (max-width : 600px) { + .input-field .prefix ~ input { + width: 80%; + width: calc(100% - 3rem); } } + +.input-field input[type=search] { + display: block; + line-height: inherit; + padding-left: 4rem; + width: calc(100% - 4rem); } + .input-field input[type=search]:focus { + background-color: #FFF; + border: 0; + box-shadow: none; + color: #444; } + .input-field input[type=search]:focus + label i, .input-field input[type=search]:focus ~ .mdi-navigation-close { + color: #444; } + .input-field input[type=search] + label { + left: 1rem; } + .input-field input[type=search] ~ .mdi-navigation-close { + position: absolute; + top: 0; + right: 1rem; + color: transparent; + cursor: pointer; + font-size: 2rem; + transition: .3s color; } + +textarea { + width: 100%; + height: 3rem; + background-color: transparent; } + textarea.materialize-textarea { + overflow-y: hidden; + /* prevents scroll bar flash */ + padding: 1.6rem 0; + /* prevents text jump on Enter keypress */ + resize: none; + min-height: 3rem; } + +.hiddendiv { + display: none; + white-space: pre-wrap; + word-wrap: break-word; + overflow-wrap: break-word; + /* future version of deprecated 'word-wrap' */ + padding-top: 1.2rem; + /* prevents text jump on Enter keypress */ } + +/*************** + Radio Buttons +***************/ +/* Remove default Radio Buttons */ +[type="radio"]:not(:checked), [type="radio"]:checked { + position: absolute; + left: -9999px; + visibility: hidden; } + +[type="radio"]:not(:checked) + label, [type="radio"]:checked + label { + position: relative; + padding-left: 35px; + cursor: pointer; + display: inline-block; + height: 25px; + line-height: 25px; + font-size: 1rem; + -webkit-transition: .28s ease; + -moz-transition: .28s ease; + -o-transition: .28s ease; + -ms-transition: .28s ease; + transition: .28s ease; + -webkit-user-select: none; + /* webkit (safari, chrome) browsers */ + -moz-user-select: none; + /* mozilla browsers */ + -khtml-user-select: none; + /* webkit (konqueror) browsers */ + -ms-user-select: none; + /* IE10+ */ } + +[type="radio"] + label:before, [type="radio"] + label:after { + content: ''; + position: absolute; + left: 0; + top: 0; + margin: 4px; + width: 16px; + height: 16px; + z-index: 0; + -webkit-transition: .28s ease; + -moz-transition: .28s ease; + -o-transition: .28s ease; + -ms-transition: .28s ease; + transition: .28s ease; } + +/* Unchecked styles */ +[type="radio"]:not(:checked) + label:before { + border-radius: 50%; + border: 2px solid #5a5a5a; } + +[type="radio"]:not(:checked) + label:after { + border-radius: 50%; + border: 2px solid #5a5a5a; + z-index: -1; + -webkit-transform: scale(0); + -moz-transform: scale(0); + -ms-transform: scale(0); + -o-transform: scale(0); + transform: scale(0); } + +/* Checked styles */ +[type="radio"]:checked + label:before { + border-radius: 50%; + border: 2px solid transparent; } + +[type="radio"]:checked + label:after { + border-radius: 50%; + border: 2px solid #26a69a; + background-color: #26a69a; + z-index: 0; + -webkit-transform: scale(1.02); + -moz-transform: scale(1.02); + -ms-transform: scale(1.02); + -o-transform: scale(1.02); + transform: scale(1.02); } + +/* Radio With gap */ +[type="radio"].with-gap:checked + label:before { + border-radius: 50%; + border: 2px solid #26a69a; } + +[type="radio"].with-gap:checked + label:after { + border-radius: 50%; + border: 2px solid #26a69a; + background-color: #26a69a; + z-index: 0; + -webkit-transform: scale(.5); + -moz-transform: scale(.5); + -ms-transform: scale(.5); + -o-transform: scale(.5); + transform: scale(.5); } + +/* Disabled style */ +[type="radio"]:disabled:not(:checked) + label:before, [type="radio"]:disabled:checked + label:before { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.26); } + +[type="radio"]:disabled + label { + color: rgba(0, 0, 0, 0.26); } + +[type="radio"]:disabled:not(:checked) + label:hover:before { + border-color: rgba(0, 0, 0, 0.26); } + +/*************** + Checkboxes +***************/ +/* CUSTOM CSS CHECKBOXES */ +form p { + margin-bottom: 10px; + text-align: left; } + +form p:last-child { + margin-bottom: 0; } + +/* Remove default checkbox */ +[type="checkbox"]:not(:checked), [type="checkbox"]:checked { + position: absolute; + left: -9999px; } + +[type="checkbox"] { + /* checkbox aspect */ } + [type="checkbox"] + label { + position: relative; + padding-left: 35px; + cursor: pointer; + display: inline-block; + height: 25px; + line-height: 25px; + font-size: 1rem; + -webkit-user-select: none; + /* webkit (safari, chrome) browsers */ + -moz-user-select: none; + /* mozilla browsers */ + -khtml-user-select: none; + /* webkit (konqueror) browsers */ + -ms-user-select: none; + /* IE10+ */ } + [type="checkbox"] + label:before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 18px; + height: 18px; + z-index: 0; + border: 2px solid #5a5a5a; + border-radius: 1px; + margin-top: 2px; + -webkit-transition: 0.2s; + -moz-transition: 0.2s; + -o-transition: 0.2s; + -ms-transition: 0.2s; + transition: 0.2s; } + [type="checkbox"]:not(:checked):disabled + label:before { + border: none; + background-color: rgba(0, 0, 0, 0.26); } + +[type="checkbox"]:checked + label:before { + top: -4px; + left: -3px; + width: 12px; + height: 22px; + border-top: 2px solid transparent; + border-left: 2px solid transparent; + border-right: 2px solid #26a69a; + border-bottom: 2px solid #26a69a; + -webkit-transform: rotate(40deg); + -moz-transform: rotate(40deg); + -ms-transform: rotate(40deg); + -o-transform: rotate(40deg); + transform: rotate(40deg); + -webkit-backface-visibility: hidden; + -webkit-transform-origin: 100% 100%; + -moz-transform-origin: 100% 100%; + -ms-transform-origin: 100% 100%; + -o-transform-origin: 100% 100%; + transform-origin: 100% 100%; } +[type="checkbox"]:checked:disabled + label:before { + border-right: 2px solid rgba(0, 0, 0, 0.26); + border-bottom: 2px solid rgba(0, 0, 0, 0.26); } + +/* Indeterminate checkbox */ +[type="checkbox"]:indeterminate + label:before { + left: -10px; + top: -11px; + width: 10px; + height: 22px; + border-top: none; + border-left: none; + border-right: 2px solid #26a69a; + border-bottom: none; + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); + -webkit-backface-visibility: hidden; + -webkit-transform-origin: 100% 100%; + -moz-transform-origin: 100% 100%; + -ms-transform-origin: 100% 100%; + -o-transform-origin: 100% 100%; + transform-origin: 100% 100%; } +[type="checkbox"]:indeterminate:disabled + label:before { + border-right: 2px solid rgba(0, 0, 0, 0.26); + background-color: transparent; } + +[type="checkbox"].filled-in + label:after { + border-radius: 2px; } +[type="checkbox"].filled-in + label:before, [type="checkbox"].filled-in + label:after { + content: ''; + left: 0; + position: absolute; + /* .1s delay is for check animation */ + transition: border .25s, background-color .25s, width .2s .1s, height .2s .1s, top .2s .1s, left .2s .1s; + z-index: 1; } +[type="checkbox"].filled-in:not(:checked) + label:before { + width: 0; + height: 0; + border: 3px solid transparent; + left: 6px; + top: 10px; + -webkit-transform: rotateZ(37deg); + transform: rotateZ(37deg); + -webkit-transform-origin: 20% 40%; + transform-origin: 100% 100%; } +[type="checkbox"].filled-in:not(:checked) + label:after { + height: 20px; + width: 20px; + background-color: transparent; + border: 2px solid #5a5a5a; + top: 0px; + z-index: 0; } +[type="checkbox"].filled-in:checked + label:before { + top: 0; + left: 1px; + width: 8px; + height: 13px; + border-top: 2px solid transparent; + border-left: 2px solid transparent; + border-right: 2px solid #fff; + border-bottom: 2px solid #fff; + -webkit-transform: rotateZ(37deg); + transform: rotateZ(37deg); + -webkit-transform-origin: 100% 100%; + transform-origin: 100% 100%; } +[type="checkbox"].filled-in:checked + label:after { + top: 0px; + width: 20px; + height: 20px; + border: 2px solid #26a69a; + background-color: #26a69a; + z-index: 0; } +[type="checkbox"].filled-in:disabled:not(:checked) + label:before { + background-color: transparent; + border: 2px solid transparent; } +[type="checkbox"].filled-in:disabled:not(:checked) + label:after { + border-color: transparent; + background-color: #BDBDBD; } +[type="checkbox"].filled-in:disabled:checked + label:before { + background-color: transparent; } +[type="checkbox"].filled-in:disabled:checked + label:after { + background-color: #BDBDBD; + border-color: #BDBDBD; } + +/*************** + Switch +***************/ +.switch, .switch * { + -webkit-user-select: none; + -moz-user-select: none; + -khtml-user-select: none; + -ms-user-select: none; } + +.switch label { + cursor: pointer; } + +.switch label input[type=checkbox] { + opacity: 0; + width: 0; + height: 0; } + +.switch label input[type=checkbox]:checked + .lever { + background-color: #84c7c1; } + +.switch label input[type=checkbox]:checked + .lever:after { + background-color: #26a69a; } + +.switch label .lever { + content: ""; + display: inline-block; + position: relative; + width: 40px; + height: 15px; + background-color: #818181; + border-radius: 15px; + margin-right: 10px; + transition: background 0.3s ease; + vertical-align: middle; + margin: 0 16px; } + +.switch label .lever:after { + content: ""; + position: absolute; + display: inline-block; + width: 21px; + height: 21px; + background-color: #F1F1F1; + border-radius: 21px; + box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4); + left: -5px; + top: -3px; + transition: left 0.3s ease, background 0.3s ease, box-shadow 0.1s ease; } + +input[type=checkbox]:checked:not(:disabled) ~ .lever:active:after { + box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(38, 166, 154, 0.1); } + +input[type=checkbox]:not(:disabled) ~ .lever:active:after { + box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.08); } + +.switch label input[type=checkbox]:checked + .lever:after { + left: 24px; } + +.switch input[type=checkbox][disabled] + .lever { + cursor: default; } + +.switch label input[type=checkbox][disabled] + .lever:after, .switch label input[type=checkbox][disabled]:checked + .lever:after { + background-color: #BDBDBD; } + +/*************** + Select Field +***************/ +.select-label { + position: absolute; } + +.select-wrapper { + position: relative; } + .select-wrapper input.select-dropdown { + position: relative; + cursor: pointer; + background-color: transparent; + border: none; + border-bottom: 1px solid #9e9e9e; + outline: none; + height: 3rem; + line-height: 3rem; + width: 100%; + font-size: 1rem; + margin: 0 0 15px 0; + padding: 0; + display: block; } + .select-wrapper .mdi-navigation-arrow-drop-down { + color: initial; + position: absolute; + right: 0; + top: 0; + font-size: 23px; } + .select-wrapper .mdi-navigation-arrow-drop-down.disabled { + color: rgba(0, 0, 0, 0.26); } + .select-wrapper + label { + position: absolute; + top: -14px; + font-size: 0.8rem; } + +select { + display: none; } + +select.browser-default { + display: block; } + +select:disabled { + color: rgba(0, 0, 0, 0.3); } + +.select-wrapper input.select-dropdown:disabled { + color: rgba(0, 0, 0, 0.3); + cursor: default; + -webkit-user-select: none; + /* webkit (safari, chrome) browsers */ + -moz-user-select: none; + /* mozilla browsers */ + -ms-user-select: none; + /* IE10+ */ + border-bottom: 1px solid rgba(0, 0, 0, 0.3); } + +.select-wrapper i { + color: rgba(0, 0, 0, 0.3); } + +.select-dropdown li.disabled { + color: rgba(0, 0, 0, 0.3); + background-color: transparent; } + +/********************* + File Input +**********************/ +.file-field { + position: relative; } + .file-field input.file-path { + margin-left: 100px; + width: calc(100% - 100px); } + .file-field .btn, .file-field .btn-large { + position: absolute; + top: 0; + left: 0; + height: 3rem; + line-height: 3rem; } + .file-field span { + cursor: pointer; } + .file-field input[type=file] { + position: absolute; + top: 0; + right: 0; + left: 0; + bottom: 0; + width: 100%; + margin: 0; + padding: 0; + font-size: 20px; + cursor: pointer; + opacity: 0; + filter: alpha(opacity=0); } + +/*************** + Range +***************/ +.range-field { + position: relative; } + +input[type=range], input[type=range] + .thumb { + cursor: pointer; } + +input[type=range] { + position: relative; + background-color: transparent; + border: none; + outline: none; + width: 100%; + margin: 15px 0px; + padding: 0; } + +input[type=range] + .thumb { + position: absolute; + border: none; + height: 0; + width: 0; + border-radius: 50%; + background-color: #26a69a; + top: 10px; + margin-left: -6px; + -webkit-transform-origin: 50% 50%; + -moz-transform-origin: 50% 50%; + -ms-transform-origin: 50% 50%; + -o-transform-origin: 50% 50%; + transform-origin: 50% 50%; + -webkit-transform: rotate(-45deg); + -moz-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + -o-transform: rotate(-45deg); + transform: rotate(-45deg); } + input[type=range] + .thumb .value { + display: block; + width: 30px; + text-align: center; + color: #26a69a; + font-size: 0; + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); } + input[type=range] + .thumb.active { + border-radius: 50% 50% 50% 0; } + input[type=range] + .thumb.active .value { + color: #fff; + margin-left: -1px; + margin-top: 8px; + font-size: 10px; } + +input[type=range]:focus { + outline: none; } + +input[type=range] { + -webkit-appearance: none; } + +input[type=range]::-webkit-slider-runnable-track { + height: 3px; + background: #c2c0c2; + border: none; } + +input[type=range]::-webkit-slider-thumb { + -webkit-appearance: none; + border: none; + height: 14px; + width: 14px; + border-radius: 50%; + background-color: #26a69a; + transform-origin: 50% 50%; + margin: -5px 0 0 0; + -webkit-transition: 0.3s; + -moz-transition: 0.3s; + -o-transition: 0.3s; + -ms-transition: 0.3s; + transition: 0.3s; } + +input[type=range]:focus::-webkit-slider-runnable-track { + background: #ccc; } + +input[type=range] { + /* fix for FF unable to apply focus style bug */ + border: 1px solid white; + /*required for proper track sizing in FF*/ } + +input[type=range]::-moz-range-track { + height: 3px; + background: #ddd; + border: none; } + +input[type=range]::-moz-range-thumb { + border: none; + height: 14px; + width: 14px; + border-radius: 50%; + background: #26a69a; + margin-top: -5px; } + +/*hide the outline behind the border*/ +input[type=range]:-moz-focusring { + outline: 1px solid white; + outline-offset: -1px; } + +input[type=range]:focus::-moz-range-track { + background: #ccc; } + +input[type=range]::-ms-track { + height: 3px; + /*remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead */ + background: transparent; + /*leave room for the larger thumb to overflow with a transparent border */ + border-color: transparent; + border-width: 6px 0; + /*remove default tick marks*/ + color: transparent; } + +input[type=range]::-ms-fill-lower { + background: #777; } + +input[type=range]::-ms-fill-upper { + background: #ddd; } + +input[type=range]::-ms-thumb { + border: none; + height: 14px; + width: 14px; + border-radius: 50%; + background: #26a69a; } + +input[type=range]:focus::-ms-fill-lower { + background: #888; } + +input[type=range]:focus::-ms-fill-upper { + background: #ccc; } + +/*************************** + Text Inputs + Textarea +****************************/ +select { + background-color: rgba(255, 255, 255, 0.9); + width: 100%; + padding: 5px; + border: 1px solid #f2f2f2; + border-radius: 2px; + height: 3rem; } + +/*************** + Nav List +***************/ +.table-of-contents.fixed { + position: fixed; } +.table-of-contents li { + padding: 2px 0; } +.table-of-contents a { + display: inline-block; + font-weight: 300; + color: #757575; + padding-left: 20px; + height: 1.5rem; + line-height: 1.5rem; + letter-spacing: .4; + display: inline-block; } + .table-of-contents a:hover { + color: #a8a8a8; + padding-left: 19px; + border-left: 1px solid #ea4a4f; } + .table-of-contents a.active { + font-weight: 500; + padding-left: 18px; + border-left: 2px solid #ea4a4f; } + +.side-nav { + position: fixed; + width: 240px; + left: -105%; + top: 0; + margin: 0; + height: 100%; + height: calc(100% + 60px); + height: -moz-calc(100%); + padding-bottom: 60px; + background-color: #FFF; + z-index: 999; + overflow-y: auto; + will-change: left; } + .side-nav.right-aligned { + will-change: right; + right: -105%; + left: auto; } + .side-nav .collapsible { + margin: 0; } + .side-nav li { + float: none; + padding: 0 15px; } + .side-nav li:hover, .side-nav li.active { + background-color: #ddd; } + .side-nav a { + color: #444; + display: block; + font-size: 1rem; + height: 64px; + line-height: 64px; + padding: 0 15px; } + +.drag-target { + height: 100%; + width: 10px; + position: fixed; + top: 0; + z-index: 998; } + +.side-nav.fixed a { + display: block; + padding: 0 15px; + color: #444; } + +.side-nav.fixed { + left: 0; + position: fixed; } + .side-nav.fixed.right-aligned { + right: 0; + left: auto; } + +@media only screen and (max-width : 992px) { + .side-nav.fixed { + left: -105%; } + .side-nav.fixed.right-aligned { + right: -105%; + left: auto; } } + +.side-nav .collapsible-body li.active, .side-nav.fixed .collapsible-body li.active { + background-color: #ee6e73; } + .side-nav .collapsible-body li.active a, .side-nav.fixed .collapsible-body li.active a { + color: #fff; } + +#sidenav-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + height: 120vh; + background-color: rgba(0, 0, 0, 0.5); + z-index: 997; + will-change: opacity; } + +/* + @license + Copyright (c) 2014 The Polymer Project Authors. All rights reserved. + This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt + The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt + The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt + Code distributed by Google as part of the polymer project is also + subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt + */ +/**************************/ +/* STYLES FOR THE SPINNER */ +/**************************/ +/* + * Constants: + * STROKEWIDTH = 3px + * ARCSIZE = 270 degrees (amount of circle the arc takes up) + * ARCTIME = 1333ms (time it takes to expand and contract arc) + * ARCSTARTROT = 216 degrees (how much the start location of the arc + * should rotate each time, 216 gives us a + * 5 pointed star shape (it's 360/5 * 3). + * For a 7 pointed star, we might do + * 360/7 * 3 = 154.286) + * CONTAINERWIDTH = 28px + * SHRINK_TIME = 400ms + */ +.preloader-wrapper { + display: inline-block; + position: relative; + width: 48px; + height: 48px; } + .preloader-wrapper.small { + width: 36px; + height: 36px; } + .preloader-wrapper.big { + width: 64px; + height: 64px; } + .preloader-wrapper.active { + /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */ + -webkit-animation: container-rotate 1568ms linear infinite; + animation: container-rotate 1568ms linear infinite; } + +@-webkit-keyframes container-rotate { + to { + -webkit-transform: rotate(360deg); } } + +@keyframes container-rotate { + to { + transform: rotate(360deg); } } + +.spinner-layer { + position: absolute; + width: 100%; + height: 100%; + opacity: 0; } + +.spinner-blue, .spinner-blue-only { + border-color: #4285f4; } + +.spinner-red, .spinner-red-only { + border-color: #db4437; } + +.spinner-yellow, .spinner-yellow-only { + border-color: #f4b400; } + +.spinner-green, .spinner-green-only { + border-color: #0f9d58; } + +/** + * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee): + * + * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't + * guarantee that the animation will start _exactly_ after that value. So we avoid using + * animation-delay and instead set custom keyframes for each color (as redundant as it + * seems). + * + * We write out each animation in full (instead of separating animation-name, + * animation-duration, etc.) because under the polyfill, Safari does not recognize those + * specific properties properly, treats them as -webkit-animation, and overrides the + * other animation rules. See https://github.com/Polymer/platform/issues/53. + */ +.active .spinner-layer.spinner-blue { + /* durations: 4 * ARCTIME */ + -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } + +.active .spinner-layer.spinner-red { + /* durations: 4 * ARCTIME */ + -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } + +.active .spinner-layer.spinner-yellow { + /* durations: 4 * ARCTIME */ + -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } + +.active .spinner-layer.spinner-green { + /* durations: 4 * ARCTIME */ + -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } + +.active .spinner-layer.spinner-blue-only, .active .spinner-layer.spinner-red-only, .active .spinner-layer.spinner-yellow-only, .active .spinner-layer.spinner-green-only { + /* durations: 4 * ARCTIME */ + opacity: 1; + -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } + +@-webkit-keyframes fill-unfill-rotate { + /* 0.5 * ARCSIZE */ + /* 1 * ARCSIZE */ + /* 1.5 * ARCSIZE */ + /* 2 * ARCSIZE */ + /* 2.5 * ARCSIZE */ + /* 3 * ARCSIZE */ + /* 3.5 * ARCSIZE */ + /* 4 * ARCSIZE */ + 12.5% { + -webkit-transform: rotate(135deg); } + + 25% { + -webkit-transform: rotate(270deg); } + + 37.5% { + -webkit-transform: rotate(405deg); } + + 50% { + -webkit-transform: rotate(540deg); } + + 62.5% { + -webkit-transform: rotate(675deg); } + + 75% { + -webkit-transform: rotate(810deg); } + + 87.5% { + -webkit-transform: rotate(945deg); } + + to { + -webkit-transform: rotate(1080deg); } } + +@keyframes fill-unfill-rotate { + /* 0.5 * ARCSIZE */ + /* 1 * ARCSIZE */ + /* 1.5 * ARCSIZE */ + /* 2 * ARCSIZE */ + /* 2.5 * ARCSIZE */ + /* 3 * ARCSIZE */ + /* 3.5 * ARCSIZE */ + /* 4 * ARCSIZE */ + 12.5% { + transform: rotate(135deg); } + + 25% { + transform: rotate(270deg); } + + 37.5% { + transform: rotate(405deg); } + + 50% { + transform: rotate(540deg); } + + 62.5% { + transform: rotate(675deg); } + + 75% { + transform: rotate(810deg); } + + 87.5% { + transform: rotate(945deg); } + + to { + transform: rotate(1080deg); } } + +@-webkit-keyframes blue-fade-in-out { + from { + opacity: 1; } + + 25% { + opacity: 1; } + + 26% { + opacity: 0; } + + 89% { + opacity: 0; } + + 90% { + opacity: 1; } + + 100% { + opacity: 1; } } + +@keyframes blue-fade-in-out { + from { + opacity: 1; } + + 25% { + opacity: 1; } + + 26% { + opacity: 0; } + + 89% { + opacity: 0; } + + 90% { + opacity: 1; } + + 100% { + opacity: 1; } } + +@-webkit-keyframes red-fade-in-out { + from { + opacity: 0; } + + 15% { + opacity: 0; } + + 25% { + opacity: 1; } + + 50% { + opacity: 1; } + + 51% { + opacity: 0; } } + +@keyframes red-fade-in-out { + from { + opacity: 0; } + + 15% { + opacity: 0; } + + 25% { + opacity: 1; } + + 50% { + opacity: 1; } + + 51% { + opacity: 0; } } + +@-webkit-keyframes yellow-fade-in-out { + from { + opacity: 0; } + + 40% { + opacity: 0; } + + 50% { + opacity: 1; } + + 75% { + opacity: 1; } + + 76% { + opacity: 0; } } + +@keyframes yellow-fade-in-out { + from { + opacity: 0; } + + 40% { + opacity: 0; } + + 50% { + opacity: 1; } + + 75% { + opacity: 1; } + + 76% { + opacity: 0; } } + +@-webkit-keyframes green-fade-in-out { + from { + opacity: 0; } + + 65% { + opacity: 0; } + + 75% { + opacity: 1; } + + 90% { + opacity: 1; } + + 100% { + opacity: 0; } } + +@keyframes green-fade-in-out { + from { + opacity: 0; } + + 65% { + opacity: 0; } + + 75% { + opacity: 1; } + + 90% { + opacity: 1; } + + 100% { + opacity: 0; } } + +/** + * Patch the gap that appear between the two adjacent div.circle-clipper while the + * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11). + */ +.gap-patch { + position: absolute; + top: 0; + left: 45%; + width: 10%; + height: 100%; + overflow: hidden; + border-color: inherit; } + +.gap-patch .circle { + width: 1000%; + left: -450%; } + +.circle-clipper { + display: inline-block; + position: relative; + width: 50%; + height: 100%; + overflow: hidden; + border-color: inherit; } + .circle-clipper .circle { + width: 200%; + height: 100%; + border-width: 3px; + /* STROKEWIDTH */ + border-style: solid; + border-color: inherit; + border-bottom-color: transparent !important; + border-radius: 50%; + -webkit-animation: none; + animation: none; + position: absolute; + top: 0; + right: 0; + bottom: 0; } + .circle-clipper.left .circle { + left: 0; + border-right-color: transparent !important; + -webkit-transform: rotate(129deg); + transform: rotate(129deg); } + .circle-clipper.right .circle { + left: -100%; + border-left-color: transparent !important; + -webkit-transform: rotate(-129deg); + transform: rotate(-129deg); } + +.active .circle-clipper.left .circle { + /* duration: ARCTIME */ + -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } + +.active .circle-clipper.right .circle { + /* duration: ARCTIME */ + -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } + +@-webkit-keyframes left-spin { + from { + -webkit-transform: rotate(130deg); } + + 50% { + -webkit-transform: rotate(-5deg); } + + to { + -webkit-transform: rotate(130deg); } } + +@keyframes left-spin { + from { + transform: rotate(130deg); } + + 50% { + transform: rotate(-5deg); } + + to { + transform: rotate(130deg); } } + +@-webkit-keyframes right-spin { + from { + -webkit-transform: rotate(-130deg); } + + 50% { + -webkit-transform: rotate(5deg); } + + to { + -webkit-transform: rotate(-130deg); } } + +@keyframes right-spin { + from { + transform: rotate(-130deg); } + + 50% { + transform: rotate(5deg); } + + to { + transform: rotate(-130deg); } } + +#spinnerContainer.cooldown { + /* duration: SHRINK_TIME */ + -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1); + animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1); } + +@-webkit-keyframes fade-out { + from { + opacity: 1; } + + to { + opacity: 0; } } + +@keyframes fade-out { + from { + opacity: 1; } + + to { + opacity: 0; } } + +.slider { + position: relative; + height: 440px; + width: 100%; } + .slider.fullscreen { + height: 100%; + width: 100%; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; } + .slider.fullscreen ul.slides { + height: 100%; } + .slider.fullscreen ul.indicators { + z-index: 2; + bottom: 30px; } + .slider .slides { + background-color: #9e9e9e; + margin: 0; + height: 400px; } + .slider .slides li { + opacity: 0; + position: absolute; + top: 0; + left: 0; + z-index: 1; + width: 100%; + height: inherit; + overflow: hidden; } + .slider .slides li img { + height: 100%; + width: 100%; + background-size: cover; + background-position: center; } + .slider .slides li .caption { + color: #fff; + position: absolute; + top: 15%; + left: 15%; + width: 70%; + opacity: 0; } + .slider .slides li .caption p { + color: #e0e0e0; } + .slider .slides li.active { + z-index: 2; } + .slider .indicators { + position: absolute; + text-align: center; + left: 0; + right: 0; + bottom: 0; + margin: 0; } + .slider .indicators .indicator-item { + display: inline-block; + position: relative; + cursor: pointer; + height: 16px; + width: 16px; + margin: 0 12px; + background-color: #e0e0e0; + -webkit-transition: background-color .3s; + -moz-transition: background-color .3s; + -o-transition: background-color .3s; + -ms-transition: background-color .3s; + transition: background-color .3s; + border-radius: 50%; } + .slider .indicators .indicator-item.active { + background-color: #4CAF50; } + +/* ========================================================================== + $BASE-PICKER + ========================================================================== */ +/** + * Note: the root picker element should *NOT* be styled more than what's here. + */ +.picker { + font-size: 16px; + text-align: left; + line-height: 1.2; + color: #000000; + position: absolute; + z-index: 10000; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +/** + * The picker input element. + */ +.picker__input { + cursor: default; } + +/** + * When the picker is opened, the input element is "activated". + */ +.picker__input.picker__input--active { + border-color: #0089ec; } + +/** + * The holder is the only "scrollable" top-level container element. + */ +.picker__holder { + width: 100%; + overflow-y: auto; + -webkit-overflow-scrolling: touch; } + +/*! + * Default mobile-first, responsive styling for pickadate.js + * Demo: http://amsul.github.io/pickadate.js + */ +/** + * Note: the root picker element should *NOT* be styled more than what's here. + */ +/** + * Make the holder and frame fullscreen. + */ +.picker__holder, .picker__frame { + bottom: 0; + left: 0; + right: 0; + top: 100%; } + +/** + * The holder should overlay the entire screen. + */ +.picker__holder { + position: fixed; + -webkit-transition: background 0.15s ease-out, top 0s 0.15s; + -moz-transition: background 0.15s ease-out, top 0s 0.15s; + transition: background 0.15s ease-out, top 0s 0.15s; + -webkit-backface-visibility: hidden; } + +/** + * The frame that bounds the box contents of the picker. + */ +.picker__frame { + position: absolute; + margin: 0 auto; + min-width: 256px; + max-width: 300px; + max-height: 350px; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -moz-opacity: 0; + opacity: 0; + -webkit-transition: all 0.15s ease-out; + -moz-transition: all 0.15s ease-out; + transition: all 0.15s ease-out; } + +@media (min-height: 28.875em) { + .picker__frame { + overflow: visible; + top: auto; + bottom: -100%; + max-height: 80%; } } + +@media (min-height: 40.125em) { + .picker__frame { + margin-bottom: 7.5%; } } + +/** + * The wrapper sets the stage to vertically align the box contents. + */ +.picker__wrap { + display: table; + width: 100%; + height: 100%; } + +@media (min-height: 28.875em) { + .picker__wrap { + display: block; } } + +/** + * The box contains all the picker contents. + */ +.picker__box { + background: #ffffff; + display: table-cell; + vertical-align: middle; } + +@media (min-height: 28.875em) { + .picker__box { + display: block; + border: 1px solid #777777; + border-top-color: #898989; + border-bottom-width: 0; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; + -webkit-box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); + -moz-box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); + box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); } } + +/** + * When the picker opens... + */ +.picker--opened .picker__holder { + top: 0; + background: transparent; + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)"; + zoom: 1; + background: rgba(0, 0, 0, 0.32); + -webkit-transition: background 0.15s ease-out; + -moz-transition: background 0.15s ease-out; + transition: background 0.15s ease-out; } + +.picker--opened .picker__frame { + top: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; + filter: alpha(opacity=100); + -moz-opacity: 1; + opacity: 1; } + +@media (min-height: 35.875em) { + .picker--opened .picker__frame { + top: 10%; + bottom: 20% auto; } } + +/** + * For `large` screens, transform into an inline picker. + */ +/* ========================================================================== + CUSTOM MATERIALIZE STYLES + ========================================================================== */ +.picker__input.picker__input--active { + border-color: #E3F2FD; } + +.picker__frame { + margin: 0 auto; + max-width: 325px; } + +@media (min-height: 38.875em) { + .picker--opened .picker__frame { + top: 10%; + bottom: auto; } } + +/* ========================================================================== + $BASE-DATE-PICKER + ========================================================================== */ +/** + * The picker box. + */ +.picker__box { + padding: 0 1em; } + +/** + * The header containing the month and year stuff. + */ +.picker__header { + text-align: center; + position: relative; + margin-top: .75em; } + +/** + * The month and year labels. + */ +.picker__month, .picker__year { + display: inline-block; + margin-left: .25em; + margin-right: .25em; } + +/** + * The month and year selectors. + */ +.picker__select--month, .picker__select--year { + height: 2em; + padding: 0; + margin-left: .25em; + margin-right: .25em; } + +.picker__select--month.browser-default { + display: inline; + background-color: #FFFFFF; + width: 40%; } + +.picker__select--year.browser-default { + display: inline; + background-color: #FFFFFF; + width: 25%; } + +.picker__select--month:focus, .picker__select--year:focus { + border-color: rgba(0, 0, 0, 0.05); } + +/** + * The month navigation buttons. + */ +.picker__nav--prev, .picker__nav--next { + position: absolute; + padding: .5em 1.25em; + width: 1em; + height: 1em; + box-sizing: content-box; + top: -0.25em; } + +.picker__nav--prev { + left: -1em; + padding-right: 1.25em; } + +.picker__nav--next { + right: -1em; + padding-left: 1.25em; } + +.picker__nav--disabled, .picker__nav--disabled:hover, .picker__nav--disabled:before, .picker__nav--disabled:before:hover { + cursor: default; + background: none; + border-right-color: #f5f5f5; + border-left-color: #f5f5f5; } + +/** + * The calendar table of dates + */ +.picker__table { + text-align: center; + border-collapse: collapse; + border-spacing: 0; + table-layout: fixed; + font-size: 1rem; + width: 100%; + margin-top: .75em; + margin-bottom: .5em; } + +.picker__table th, .picker__table td { + text-align: center; } + +.picker__table td { + margin: 0; + padding: 0; } + +/** + * The weekday labels + */ +.picker__weekday { + width: 14.285714286%; + font-size: .75em; + padding-bottom: .25em; + color: #999999; + font-weight: 500; + /* Increase the spacing a tad */ } + +@media (min-height: 33.875em) { + .picker__weekday { + padding-bottom: .5em; } } + +/** + * The days on the calendar + */ +.picker__day--today { + position: relative; + color: #595959; + letter-spacing: -.3; + padding: .75rem 0; + font-weight: 400; + border: 1px solid transparent; } + +.picker__day--disabled:before { + border-top-color: #aaaaaa; } + +.picker__day--infocus:hover { + cursor: pointer; + color: #000; + font-weight: 500; } + +.picker__day--outfocus { + display: none; + padding: .75rem 0; + color: #fff; } + +.picker__day--outfocus:hover { + cursor: pointer; + color: #dddddd; + font-weight: 500; } + +.picker__day--highlighted:hover, .picker--focused .picker__day--highlighted { + cursor: pointer; } + +.picker__day--selected, .picker__day--selected:hover, .picker--focused .picker__day--selected { + border-radius: 50%; + -webkit-transform: scale(.75); + -moz-transform: scale(.75); + -ms-transform: scale(.75); + -o-transform: scale(.75); + transform: scale(.75); + background: #0089ec; + color: #ffffff; } + +.picker__day--disabled, .picker__day--disabled:hover, .picker--focused .picker__day--disabled { + background: #f5f5f5; + border-color: #f5f5f5; + color: #dddddd; + cursor: default; } + +.picker__day--highlighted.picker__day--disabled, .picker__day--highlighted.picker__day--disabled:hover { + background: #bbbbbb; } + +/** + * The footer containing the "today", "clear", and "close" buttons. + */ +.picker__footer { + text-align: center; + display: flex; + align-items: center; + justify-content: space-between; } + +.picker__button--today, .picker__button--clear, .picker__button--close { + border: 1px solid #ffffff; + background: #ffffff; + font-size: .8em; + padding: .66em 0; + font-weight: bold; + width: 33%; + display: inline-block; + vertical-align: bottom; } + +.picker__button--today:hover, .picker__button--clear:hover, .picker__button--close:hover { + cursor: pointer; + color: #000000; + background: #b1dcfb; + border-bottom-color: #b1dcfb; } + +.picker__button--today:focus, .picker__button--clear:focus, .picker__button--close:focus { + background: #b1dcfb; + border-color: rgba(0, 0, 0, 0.05); + outline: none; } + +.picker__button--today:before, .picker__button--clear:before, .picker__button--close:before { + position: relative; + display: inline-block; + height: 0; } + +.picker__button--today:before, .picker__button--clear:before { + content: " "; + margin-right: .45em; } + +.picker__button--today:before { + top: -0.05em; + width: 0; + border-top: 0.66em solid #0059bc; + border-left: .66em solid transparent; } + +.picker__button--clear:before { + top: -0.25em; + width: .66em; + border-top: 3px solid #ee2200; } + +.picker__button--close:before { + content: "\D7"; + top: -0.1em; + vertical-align: top; + font-size: 1.1em; + margin-right: .35em; + color: #777777; } + +.picker__button--today[disabled], .picker__button--today[disabled]:hover { + background: #f5f5f5; + border-color: #f5f5f5; + color: #dddddd; + cursor: default; } + +.picker__button--today[disabled]:before { + border-top-color: #aaaaaa; } + +/* ========================================================================== + CUSTOM MATERIALIZE STYLES + ========================================================================== */ +.picker__box { + border-radius: 2px; + overflow: hidden; } + +.picker__date-display { + text-align: center; + background-color: #26a69a; + color: #fff; + padding-bottom: 15px; + font-weight: 300; } + +.picker__nav--prev:hover, .picker__nav--next:hover { + cursor: pointer; + color: #000000; + background: #a1ded8; } + +.picker__weekday-display { + background-color: #1f897f; + padding: 10px; + font-weight: 200; + letter-spacing: .5; + font-size: 1rem; + margin-bottom: 15px; } + +.picker__month-display { + text-transform: uppercase; + font-size: 2rem; } + +.picker__day-display { + font-size: 4.5rem; + font-weight: 400; } + +.picker__year-display { + font-size: 1.8rem; + color: rgba(255, 255, 255, 0.4); } + +.picker__box { + padding: 0; } + +.picker__calendar-container { + padding: 0 1rem; } + .picker__calendar-container thead { + border: none; } + +.picker__table { + margin-top: 0; + margin-bottom: .5em; } + +.picker__day--infocus { + color: #595959; + letter-spacing: -.3; + padding: .75rem 0; + font-weight: 400; + border: 1px solid transparent; } + +.picker__day.picker__day--today { + color: #26a69a; } + +.picker__day.picker__day--today.picker__day--selected { + color: #fff; } + +.picker__weekday { + font-size: .9rem; } + +.picker__day--selected, .picker__day--selected:hover, .picker--focused .picker__day--selected { + border-radius: 50%; + -webkit-transform: scale(.9); + -moz-transform: scale(.9); + -ms-transform: scale(.9); + -o-transform: scale(.9); + transform: scale(.9); + background-color: #26a69a; + color: #ffffff; } + .picker__day--selected.picker__day--outfocus, .picker__day--selected:hover.picker__day--outfocus, .picker--focused .picker__day--selected.picker__day--outfocus { + background-color: #a1ded8; } + +.picker__footer { + text-align: right; + padding: 5px 10px; } + +.picker__close, .picker__today { + font-size: 1.1rem; + padding: 0 1rem; + color: #26a69a; } + +.picker__nav--prev:before, .picker__nav--next:before { + content: " "; + border-top: .5em solid transparent; + border-bottom: .5em solid transparent; + border-right: 0.75em solid #676767; + width: 0; + height: 0; + display: block; + margin: 0 auto; } + +.picker__nav--next:before { + border-right: 0; + border-left: 0.75em solid #676767; } + +button.picker__today:focus, button.picker__clear:focus, button.picker__close:focus { + background-color: #a1ded8; } + +/* ========================================================================== + $BASE-TIME-PICKER + ========================================================================== */ +/** + * The list of times. + */ +.picker__list { + list-style: none; + padding: 0.75em 0 4.2em; + margin: 0; } + +/** + * The times on the clock. + */ +.picker__list-item { + border-bottom: 1px solid #dddddd; + border-top: 1px solid #dddddd; + margin-bottom: -1px; + position: relative; + background: #ffffff; + padding: .75em 1.25em; } + +@media (min-height: 46.75em) { + .picker__list-item { + padding: .5em 1em; } } + +/* Hovered time */ +.picker__list-item:hover { + cursor: pointer; + color: #000000; + background: #b1dcfb; + border-color: #0089ec; + z-index: 10; } + +/* Highlighted and hovered/focused time */ +.picker__list-item--highlighted { + border-color: #0089ec; + z-index: 10; } + +.picker__list-item--highlighted:hover, .picker--focused .picker__list-item--highlighted { + cursor: pointer; + color: #000000; + background: #b1dcfb; } + +/* Selected and hovered/focused time */ +.picker__list-item--selected, .picker__list-item--selected:hover, .picker--focused .picker__list-item--selected { + background: #0089ec; + color: #ffffff; + z-index: 10; } + +/* Disabled time */ +.picker__list-item--disabled, .picker__list-item--disabled:hover, .picker--focused .picker__list-item--disabled { + background: #f5f5f5; + border-color: #f5f5f5; + color: #dddddd; + cursor: default; + border-color: #dddddd; + z-index: auto; } + +/** + * The clear button + */ +.picker--time .picker__button--clear { + display: block; + width: 80%; + margin: 1em auto 0; + padding: 1em 1.25em; + background: none; + border: 0; + font-weight: 500; + font-size: .67em; + text-align: center; + text-transform: uppercase; + color: #666; } + +.picker--time .picker__button--clear:hover, .picker--time .picker__button--clear:focus { + color: #000000; + background: #b1dcfb; + background: #ee2200; + border-color: #ee2200; + cursor: pointer; + color: #ffffff; + outline: none; } + +.picker--time .picker__button--clear:before { + top: -0.25em; + color: #666; + font-size: 1.25em; + font-weight: bold; } + +.picker--time .picker__button--clear:hover:before, .picker--time .picker__button--clear:focus:before { + color: #ffffff; } + +/* ========================================================================== + $DEFAULT-TIME-PICKER + ========================================================================== */ +/** + * The frame the bounds the time picker. + */ +.picker--time .picker__frame { + min-width: 256px; + max-width: 320px; } + +/** + * The picker box. + */ +.picker--time .picker__box { + font-size: 1em; + background: #f2f2f2; + padding: 0; } + +@media (min-height: 40.125em) { + .picker--time .picker__box { + margin-bottom: 5em; } } diff --git a/public/stylesheets/style-fonts.css b/public/stylesheets/style-fonts.css new file mode 100644 index 0000000..a831c6b --- /dev/null +++ b/public/stylesheets/style-fonts.css @@ -0,0 +1,325 @@ +@font-face { + font-family: 'icomoon'; + src:url('../fonts/icomoon.eot?-x9pdqo'); + src:url('../fonts/icomoon.eot?#iefix-x9pdqo') format('embedded-opentype'), + url('../fonts/icomoon.ttf?-x9pdqo') format('truetype'), + url('../fonts/icomoon.woff?-x9pdqo') format('woff'), + url('../fonts/icomoon.svg?-x9pdqo#icomoon') format('svg'); + font-weight: normal; + font-style: normal; +} + +[class^="icon-"], [class*=" icon-"] { + font-family: 'icomoon'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + /* Enable Ligatures ================ */ + letter-spacing: 0; + -webkit-font-feature-settings: "liga"; + -moz-font-feature-settings: "liga=1"; + -moz-font-feature-settings: "liga"; + -ms-font-feature-settings: "liga" 1; + -o-font-feature-settings: "liga"; + font-feature-settings: "liga"; + + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-logos_Logoytexto:before { + content: "\e657"; +} +.icon-logo_archivo:before { + content: "\e658"; +} +.icon-logo_Basededatos:before { + content: "\e659"; +} +.icon-logo_Carrito:before { + content: "\e65a"; +} +.icon-logo_Estadisticas:before { + content: "\e65b"; +} +.icon-logo_Logo1:before { + content: "\e65c"; +} +.icon-logo_Logo2:before { + content: "\e65d"; +} +.icon-logo_nave:before { + content: "\e65e"; +} +.icon-logo_nerd:before { + content: "\e65f"; +} +.icon-logo_Usuario:before { + content: "\e660"; +} +.icon-school:before { + content: "\e600"; +} +.icon-tie:before { + content: "\e601"; +} +.icon-home:before { + content: "\e602"; +} +.icon-home3:before { + content: "\e60d"; +} +.icon-pencil:before { + content: "\e60e"; +} +.icon-play:before { + content: "\e60f"; +} +.icon-book:before { + content: "\e610"; +} +.icon-library:before { + content: "\e603"; +} +.icon-file-text2:before { + content: "\e611"; +} +.icon-stack:before { + content: "\e612"; +} +.icon-folder:before { + content: "\e613"; +} +.icon-ticket:before { + content: "\e614"; +} +.icon-cart:before { + content: "\e615"; +} +.icon-credit-card:before { + content: "\e616"; +} +.icon-phone:before { + content: "\e604"; +} +.icon-address-book:before { + content: "\e617"; +} +.icon-envelop:before { + content: "\e618"; +} +.icon-location2:before { + content: "\e619"; +} +.icon-calendario:before { + content: "\e605"; +} +.icon-display:before { + content: "\e61a"; +} +.icon-laptop:before { + content: "\e61b"; +} +.icon-mobile:before { + content: "\e606"; +} +.icon-tablet:before { + content: "\e61c"; +} +.icon-drawer:before { + content: "\e61d"; +} +.icon-drawer2:before { + content: "\e61e"; +} +.icon-download:before { + content: "\e61f"; +} +.icon-upload:before { + content: "\e620"; +} +.icon-database:before { + content: "\e621"; +} +.icon-undo2:before { + content: "\e622"; +} +.icon-redo2:before { + content: "\e623"; +} +.icon-forward:before { + content: "\e624"; +} +.icon-reply:before { + content: "\e625"; +} +.icon-bubbles:before { + content: "\e626"; +} +.icon-user:before { + content: "\e627"; +} +.icon-users:before { + content: "\e628"; +} +.icon-user-plus:before { + content: "\e629"; +} +.icon-user-minus:before { + content: "\e62a"; +} +.icon-user-tie:before { + content: "\e607"; +} +.icon-quotes-left:before { + content: "\e62b"; +} +.icon-quotes-right:before { + content: "\e62c"; +} +.icon-spinner6:before { + content: "\e62d"; +} +.icon-search:before { + content: "\e62e"; +} +.icon-key:before { + content: "\e62f"; +} +.icon-cog:before { + content: "\e630"; +} +.icon-grafica:before { + content: "\e608"; +} +.icon-rocket:before { + content: "\e631"; +} +.icon-bin:before { + content: "\e632"; +} +.icon-portafolio:before { + content: "\e609"; +} +.icon-power:before { + content: "\e633"; +} +.icon-menu:before { + content: "\e634"; +} +.icon-menu2:before { + content: "\e635"; +} +.icon-menu3:before { + content: "\e636"; +} +.icon-menu4:before { + content: "\e637"; +} +.icon-cloud:before { + content: "\e638"; +} +.icon-sphere:before { + content: "\e639"; +} +.icon-eye:before { + content: "\e63a"; +} +.icon-star:before { + content: "\e60a"; +} +.icon-happy:before { + content: "\e63b"; +} +.icon-angry:before { + content: "\e63c"; +} +.icon-plus:before { + content: "\e63d"; +} +.icon-minus:before { + content: "\e63e"; +} +.icon-cross:before { + content: "\e63f"; +} +.icon-checkmark:before { + content: "\e640"; +} +.icon-share2:before { + content: "\e641"; +} +.icon-mail:before { + content: "\e60b"; +} +.icon-facebook:before { + content: "\e642"; +} +.icon-facebook2:before { + content: "\e643"; +} +.icon-instagram:before { + content: "\e644"; +} +.icon-twitter:before { + content: "\e645"; +} +.icon-twitter2:before { + content: "\e646"; +} +.icon-youtube:before { + content: "\e647"; +} +.icon-youtube3:before { + content: "\e648"; +} +.icon-youtube4:before { + content: "\e649"; +} +.icon-github:before { + content: "\e64a"; +} +.icon-github2:before { + content: "\e64b"; +} +.icon-github4:before { + content: "\e64c"; +} +.icon-wordpress2:before { + content: "\e64d"; +} +.icon-tumblr2:before { + content: "\e64e"; +} +.icon-skype:before { + content: "\e64f"; +} +.icon-linkedin:before { + content: "\e60c"; +} +.icon-linkedin2:before { + content: "\e650"; +} +.icon-paypal:before { + content: "\e651"; +} +.icon-file-word:before { + content: "\e652"; +} +.icon-file-excel:before { + content: "\e653"; +} +.icon-html5:before { + content: "\e654"; +} +.icon-html52:before { + content: "\e655"; +} +.icon-git:before { + content: "\e656"; +} diff --git a/public/stylesheets/style-fuentes.css b/public/stylesheets/style-fuentes.css new file mode 100644 index 0000000..cdcd329 --- /dev/null +++ b/public/stylesheets/style-fuentes.css @@ -0,0 +1,40 @@ +.Font-playfair { + font-family: 'Playfair Display' serif; +} +.Font-abril { + font-family: 'Abril Fatface' cursive; +} +.Font-bevan { + font-family: 'Bevan' cursive; +} +.Font-alegreya { + font-family: 'Alegreya Sans' sans-serif; +} +.Font-francois { + font-family: 'Francois One' sans-serif; +} +.Font-librebasker { + font-family: 'Libre Baskerville' serif; +} +.Font-lato { + font-family: 'Lato' sans-serif; +} +.Font-merriw { + font-family: 'Merriweather' serif; +} +.Font-merriws { + font-family: 'Merriweather Sans' sans-serif; +} +.Font-openssans { + font-family: 'Open Sans' sans-serif; +} +.Font-roboto { + font-family: 'Roboto Condensed' sans-serif; +} +.FontStylebold { + font-style: bold; + font-weight: 700; +} +.Fontcolor1 { + color: rgba(39,62,72,0.86); +} diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css new file mode 100644 index 0000000..0df8354 --- /dev/null +++ b/public/stylesheets/style.css @@ -0,0 +1,570 @@ +/* normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} +body { + margin: 0; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} +audio:not([controls]) { + display: none; + height: 0; +} +[hidden], +template { + display: none; +} +a { + background-color: transparent; +} +a:active, +a:hover { + outline: 0; +} +abbr[title] { + border-bottom: 1px dotted; +} +b, +strong { + font-weight: bold; +} +dfn { + font-style: italic; +} +h1 { + font-size: 2em; + margin: 0.67em 0; +} +mark { + background: #ff0; + color: #000; +} +small { + font-size: 80%; +} +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + border: 0; +} +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 1em 40px; +} +hr { + box-sizing: content-box; + height: 0; +} +pre { + overflow: auto; +} +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + margin: 0; +} +button { + overflow: visible; +} +button, +select { + text-transform: none; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +button[disabled], +html input[disabled] { + cursor: default; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} +input { + line-height: normal; +} +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + padding: 0; +} +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +input[type="search"] { + -webkit-appearance: textfield; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +legend { + border: 0; + padding: 0; +} +textarea { + overflow: auto; +} +optgroup { + font-weight: bold; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +td, +th { + padding: 0; +} +.bg-primary { + background-color: rgba(26,35,126,0.7); +} +.bg-secundary { + background-color: rgba(227,242,253,0.4); +} +.box { + background-color: #fff; + padding: 5px 10px; + border-radius: 2px; + box-shadow: 0px 2px 1px rgba(0,0,0,0.1); +} +.minwidth1 { + min-width: 300px; +} +.margin10 { + margin: 10px auto 10px 2px; +} +.margin20 { + margin: 10px auto 10px 20px; +} +.marginbtm { + margin-bottom: 10px; +} +.titulo1 { + font-size: 1.6rem; + padding: 5px; + color: rgba(33,33,33,0.95); +} +.titulo2 { + font-size: 1.1rem; + color: rgba(33,33,33,0.7); +} +.titulo3 { + font-size: 1.4rem; + color: rgba(33,33,33,0.9); + font-weight: 600; +} +.titulo4 { + font-size: 0.9rem; + font-weight: 500; + color: rgba(33,33,33,0.9); +} +.divider { + height: 1px; + overflow: hidden; + background-color: #e0e0e0; +} +.linknone { + text-decoration: none; + color: rgba(229,229,229,0.9); +} +.linksocial { + color: #273e48; +} +.loginsocial { + text-align: center; +} +.styleicon { + font-size: 4rem; + text-align: center; + margin: 10px auto; + color: #273e48; +} +.styleicon:hover { + color: rgba(39,62,72,0.7); +} +.justifytext { + text-align: justify; +} +body { + font-size: 18px; +} +.Main { + display: flex; + align-items: stretch; +} +.Formpanel { + items-align: center; + margin-top: 2rem; + width: 50vw; +} +input { + background-color: transparent; + border-width: 0px; + border-bottom: 1px solid rgba(39,62,72,0.6); + border-radius: 0; + outline: none; + width: 100%; + font-size: 1rem; + margin: 0 0 15px 0; + padding: 0; + box-shadow: none; + height: 1.3rem; + font-family: 'Merriweather' serif; +} +input:focus { + outline: none; + border-width: 0px; + border-bottom: 2px solid rgba(38,166,152,0.9); +} +.btn { + text-decoration: none; + color: #fff; + background-color: #26a69a; + box-shadow: 0px 2px 1px rgba(0,0,0,0.18); + text-align: center; + letter-spacing: 0.5px; + border: none; + border-radius: 2px; + display: inline-block; + height: 36px; + line-height: 36px; + outline: 0; + padding: 0 2rem; + text-transform: capitalize; + width: 200px; +} +.btn:hover { + background-color: #2bbbad; + box-shadow: 0 5px 11px 0 rgba(0,0,0,0.18), 0 4px 15px 0 rgba(0,0,0,0.15); +} +.Form-add { + display: flex; + flex-direction: column; + justify-content: space-around; +} +.inputstyle { + display: flex; + flex-direction: column; + margin: 10px 0px 20px 0px; +} +.btnstyle { + display: flex; + justify-content: flex-end; + items-align: center; + margin: 10px 0px 0px 0px; +} +.btnstyle1 { + display: flex; + justify-content: center; + items-align: center; + margin: 10px 0px 10px 0px; +} +.selectbox { + font-size: 1em; + font-family: 'Merriweather' serif; +} +select option { + font-family: 'Merriweather' serif; +} +select option["selected"] { + font-family: 'Merriweather' serif; +} +.lbl { + font-family: 'Noto Serif'; + margin-bottom: 5px; + font-weight: 600; +} +.Header { + background-color: #273e48; + box-shadow: 0px -5px 7px 5px #777; +} +.Header-sidenav { + padding: 5px 20px; + min-height: 100vh; + width: 15vw; +} +.Header-logo { + color: #fff; + font-size: 6rem; + text-align: center; +} +.Nav { + color: #fff; + margin: 30px auto; + color: rgba(229,229,229,0.7); +} +.Nav-item { + display: flex; + align-items: center; + margin: 10px auto; + color: rgba(229,229,229,0.7); + cursor: pointer; +} +.Nav-item:hover { + color: #f0f0f0; +} +.Nav-item-text { + font-size: 0.8rem; + margin-left: 15px; +} +.Nav-item[data-lastitem] { + margin-top: 15px; +} +.iconstyle { + font-size: 1.4rem; + display: flex; + align-items: center; +} +.iconstyle[data-cross] { + font-size: 1.4rem; +} +.notifi { + background-color: rgba(88,114,125,0.9); + margin-left: 30px; + font-size: 0.8rem; + width: 16px; + text-align: center; + padding: 2px; + border-radius: 2px; +} +.MyCard { + margin-top: 10px; + margin-bottom: 30px; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; +} +.MyCard-photo { + width: 100px; + border-radius: 50%; + padding: 2px; +} +.MyCard-photo-img { + background-color: #e0e0e0; + width: 80px; + border-radius: 50%; +} +.MyCard-name { + display: flex; + flex-direction: column; + text-align: center; + justify-content: center; +} +.MyCard--textStyle { + font-family: 'Roboto Condensed', sans-serif; + color: rgba(229,229,229,0.7); +} +.MyCard-title { + color: #fafafa; + font-family: 'Noto Serif'; + font-style: italic; + margin-top: -7px; + display: flex; + align-items: center; + justify-content: center; +} +.Section { + width: 85vw; + background-color: rgba(229,229,229,0.7); +} +.Section-secciones { + display: flex; + flex-wrap: wrap; + margin: 30px auto; + flex-direction: row; + justify-content: space-around; + align-items: flex-stretch; + align-content: space-around; +} +.Section-item { + width: 250px; + margin: 10px; +} +.Font-playfair { + font-family: 'Playfair Display' serif; +} +.Font-abril { + font-family: 'Abril Fatface' cursive; +} +.Font-bevan { + font-family: 'Bevan' cursive; +} +.Font-alegreya { + font-family: 'Alegreya Sans' sans-serif; +} +.Font-francois { + font-family: 'Francois One' sans-serif; +} +.Font-librebasker { + font-family: 'Libre Baskerville' serif; +} +.Font-lato { + font-family: 'Lato' sans-serif; +} +.Font-merriw { + font-family: 'Merriweather' serif; +} +.Font-merriws { + font-family: 'Merriweather Sans' sans-serif; +} +.Font-openssans { + font-family: 'Open Sans' sans-serif; +} +.Font-roboto { + font-family: 'Roboto Condensed' sans-serif; +} +.FontStylebold { + font-style: bold; + font-weight: 700; +} +.Fontcolor1 { + color: rgba(39,62,72,0.86); +} +@media screen and (max-width: 320px) { + .titulo1 { + font-size: 1.3rem; + } + .titulo2 { + font-size: 0.9rem; + } + .titulo3 { + font-size: 1.1rem; + } + .titulo4 { + font-size: 0.8rem; + } + main { + display: flex; + flex-direction: row; + } + .Section { + width: 100vw; + } + .Section-secciones { + flex-direction: column; + } + .Header { + box-shadow: -1px 4px 2px 0px #777; + max-height: 100%; + } + .Header-sidenav { + width: 100%; + padding: 0px; + } + .MyCard { + margin-top: 0px; + } + .MyCard-photo { + text-align: center; + } + .MyCard-photo-img { + text-align: center; + width: 70px; + } + .Formpanel { + items-align: center; + margin-top: 2rem; + width: 90vw; + } +} +@media screen and (max-width: 720px) { + main { + display: flex; + flex-direction: column; + } + .Section { + width: 100vw; + } + .Section-secciones { + flex-direction: row; + flex-wrap: wrap; + } + .Header { + box-shadow: -1px 4px 2px 0px #777; + max-height: 100%; + } + .Header-sidenav { + padding: 0px; + width: 100%; + } + .Header-logo { + font-size: 4.5rem; + } + .MyCard { + margin-top: 0px; + } + .MyCard-photo { + text-align: center; + } + .MyCard-photo-img { + text-align: center; + width: 70px; + } + .Formpanel { + items-align: center; + margin-top: 2rem; + width: 90vw; + } +} diff --git a/public/stylesheets/style.styl b/public/stylesheets/style.styl deleted file mode 100644 index 98047c5..0000000 --- a/public/stylesheets/style.styl +++ /dev/null @@ -1,5 +0,0 @@ -body - padding: 50px - font: 14px "Lucida Grande", Helvetica, Arial, sans-serif -a - color: #00B7FF diff --git a/routes/form.js b/routes/form.js new file mode 100644 index 0000000..303efa0 --- /dev/null +++ b/routes/form.js @@ -0,0 +1,20 @@ +var express = require('express'); +var router = express.Router(); + +router.get('/', function(req, res, next) { + res.render('form', { + title: 'Form get', + //user: req.user + }); +}); + +router.post('/', function(req, res) { + // var webname = req.body.webname; + // var propietario = req.body.propietario; + // User.addUser(username, propietario, function(err, user){ + // console.log(username + " " + password); + res.render('form', { title: 'Form post' }); + // }); +}); + +module.exports = router; diff --git a/routes/session.js b/routes/session.js new file mode 100644 index 0000000..bca51e9 --- /dev/null +++ b/routes/session.js @@ -0,0 +1,8 @@ +var express = require('express'); +var router = express.Router(); + +router.get('/', function(req, res, next){ + res.render('session'); +}); + +module.exports = router; \ No newline at end of file diff --git a/routes/webadmin.js b/routes/webadmin.js new file mode 100644 index 0000000..ac8450f --- /dev/null +++ b/routes/webadmin.js @@ -0,0 +1,9 @@ +var express = require('express'); +var router = express.Router(); + +router.get("/", function(req, res, next){ + //res.send('respond with a resource'); + res.render("login"); +}); + +module.exports = router; \ No newline at end of file diff --git a/views/form.jade b/views/form.jade new file mode 100644 index 0000000..bc097f6 --- /dev/null +++ b/views/form.jade @@ -0,0 +1,20 @@ +extends layout + +block content + //- h1= title + //- p Welcome to #{title} + //- form(action="/signup", method="post") + //- div + //- label Username + //- input(type="text", name="username") + //- br + //- div + //- label Password + //- input(type="password", name="password") + //- br + //- div + //- input(type="submit", value="sign up") + include ./models_jade/Header/template.jade + include ./models_jade/Section-main/template.jade + include ./models_jade/Add-nueva-pagina/template.jade + //- script(src="https://code.jquery.com/jquery-2.1.1.min.js") diff --git a/views/layout.jade b/views/layout.jade index 15af079..e5c2714 100644 --- a/views/layout.jade +++ b/views/layout.jade @@ -1,7 +1,20 @@ doctype html -html +//- html +//- head +//- title= title +//- link(rel='stylesheet', href='/stylesheets/style.css') +//- body +//- block content +html(lang="en") head - title= title - link(rel='stylesheet', href='/stylesheets/style.css') + meta(charset="UTF-8") + meta(name="viewport", content="width=device-width, user-scalable=no") + title #{title} + link(rel="stylesheet", href="/stylesheets/style.css") + link(rel="stylesheet", href="/stylesheets/style-fonts.css") + link(rel="stylesheet", href='https://fonts.googleapis.com/css?family=Playfair+Display:400,700,400italic,700italic|Abril+Fatface|Bevan|Alegreya+Sans:400,700,400italic,500italic,700italic|Francois+One|Libre+Baskerville:400,400italic,700|Lato:400,700,400italic,700italic|Merriweather:400,400italic,700,700italic|Merriweather+Sans:400,400italic,700|Open+Sans:400,400italic,700,700italic|Roboto+Condensed:400,400italic,700,700italic') + meta(name="viewport", content="width=device-width, initial-scale=1.0") body - block content + main.Main + block content + script(src="https://code.jquery.com/jquery-2.1.1.min.js") \ No newline at end of file diff --git a/views/login.jade b/views/login.jade new file mode 100644 index 0000000..8ebcab5 --- /dev/null +++ b/views/login.jade @@ -0,0 +1,18 @@ +extends layout + +block content + include ./models_jade/Header/template.jade + //nav Sistema de Administración + include ./models_jade/Section-main/template.jade + .Section-secciones + .Section-item.box.flexbox-colwrp + .styleicon.icon-facebook + .titulo3.margin10.Font-francois.Fontcolor1.loginsocial + a(href='auth/facebook', class="linknone linksocial") Iniciar con Facebook + //.Section-secciones + .Section-item.box.flexbox-colwrp + .styleicon.icon-github + .titulo3.margin10.Font-francois.Fontcolor1.loginsocial + a(href='auth/github', class="linknone linksocial") Iniciar con Github + //- .Section-item.box.flexbox-colwrp + //- a(href='auth/facebook') Login con Facebook diff --git a/views/models_jade/Add-nueva-pagina/style.styl b/views/models_jade/Add-nueva-pagina/style.styl new file mode 100644 index 0000000..48c7149 --- /dev/null +++ b/views/models_jade/Add-nueva-pagina/style.styl @@ -0,0 +1,83 @@ +.Formpanel + // display flex + // justify-content center + // flex-wrap wrap + // flex-direction column + items-align center + margin-top 2rem + width 50vw + +/*input + border-radius 2px + border-width 0px + + margin 10px*/ + +input + background-color transparent + border-width 0px + border-bottom 1px solid rgba(#273e48, 0.6) + border-radius 0 + outline none + width 100% + font-size 1rem + margin 0 0 15px 0 + padding 0 + box-shadow none + height 1.3rem + font-family 'Merriweather' serif +input:focus + outline none + border-width 0px + border-bottom 2px solid rgba(38, 166, 152, 0.9) + +.btn + text-decoration: none; + color: #fff; + background-color: #26a69a; + box-shadow 0px 2px 1px rgba(0, 0, 0, 0.18) + text-align: center; + letter-spacing: .5px; + border: none; + border-radius: 2px; + display: inline-block; + height: 36px; + line-height: 36px; + outline: 0; + padding: 0 2rem; + text-transform: capitalize + width 200px + &:hover + background-color: #2bbbad; + box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); + +.Form-add + display flex + flex-direction column + justify-content space-around + +.inputstyle + display flex + flex-direction column + margin 10px 0px 20px 0px +.btnstyle + display flex + justify-content flex-end + items-align center + margin 10px 0px 0px 0px +.btnstyle1 + display flex + justify-content center + items-align center + margin 10px 0px 10px 0px +.selectbox + font-size 1em + font-family 'Merriweather' serif +select option + font-family 'Merriweather' serif +select option["selected"] + font-family 'Merriweather' serif +.lbl + font-family 'Noto Serif' + margin-bottom 5px + font-weight 600 diff --git a/views/models_jade/Add-nueva-pagina/template.jade b/views/models_jade/Add-nueva-pagina/template.jade new file mode 100644 index 0000000..6781798 --- /dev/null +++ b/views/models_jade/Add-nueva-pagina/template.jade @@ -0,0 +1,31 @@ +section + .titulo1.margin20.Font-francois.FontStylebold.Fontcolor1 Agregar nueva página al catálogo + .titulo2.Font-alegreya Sistema de Administración de catálogo + .divider +.Section-secciones + .Section-agregar.box.Formpanel + .titulo3.margin10.Font-francois.Fontcolor1 Formulario + .divider + .Form + form(id="agregarweb", method="post", action="/form", class="Form-add") + .inputstyle.Fontcolor1 + label(for="input-nombre", class="lbl") Nombre de la nueva web: + input(type="text", id="input-nombre", name="namepage") + .inputstyle.Fontcolor1 + label(for="input-nombre", class="lbl") Nombre del propietario: + input(type="text", id="input-propietario", placeholder="", name="owner") + .inputstyle.Fontcolor1 + label(class="lbl" name="Category") Categoría: + select.box + option(selected) Negocios: + option Música + option Blogs + .inputstyle.Font-openssans.Fontcolor1 + label(class="lbl" name="type") Tipo: + select.box + option(selected) Estática + option Dinamicas + option Sistemas + .divider + .btnstyle.Font-openssans + input(type="submit", class="btn", value="Salvar") diff --git a/views/models_jade/Bienvenido/style.styl b/views/models_jade/Bienvenido/style.styl new file mode 100644 index 0000000..de8df71 --- /dev/null +++ b/views/models_jade/Bienvenido/style.styl @@ -0,0 +1,16 @@ +.Section + width 85vw + background-color rgba(#E5E5E5, 0.7) + // &-main + // width 100% + &-secciones + display flex + flex-wrap wrap + margin 30px auto + flex-direction row + justify-content space-around + align-items flex-stretch + align-content space-around + &-item + width 250px + margin 10px diff --git a/views/models_jade/Bienvenido/template.jade b/views/models_jade/Bienvenido/template.jade new file mode 100644 index 0000000..eafb556 --- /dev/null +++ b/views/models_jade/Bienvenido/template.jade @@ -0,0 +1,54 @@ +.titulo1.margin20.Font-francois.FontStylebold Bienvenido + .titulo2.Font-alegreya Sistema de Administración de catálogo +.divider +.Section-secciones + .Section-item.box.flexbox-colwrp + .titulo3.margin10.Font-francois.Fontcolor1 Agregar nueva página + .divider + .styleicon.icon-logo_nave + p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis + .divider + .btnstyle1 + button.btn(onClick="location.href='/form'") Ir + //a(href="/form", class="linknone") Ir + .Section-item.box.flexbox-colwrp + .titulo3.margin10.Font-francois.Fontcolor1 Agregar categoría + .divider + .styleicon.icon-logo_Carrito + p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis + .divider + .btnstyle1 + button.btn(onClick="location.href='/stored'") Ir + .Section-item.box.flexbox-colwrp + .titulo3.margin10.Font-francois.Fontcolor1 Ver la base de datos + .divider + .styleicon.icon-logo_Basededatos + p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis + .divider + .btnstyle1 + button.btn(onClick="location.href='/stored'") Ir + + .Section-item.box.flexbox-colwrp + .titulo3.margin10.Font-francois.Fontcolor1 Ver estadísticas + .divider + .styleicon.icon-logo_Estadisticas + p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis + .divider + .btnstyle1 + button.btn Ir + .Section-item.box.flexbox-colwrp + .titulo3.margin10.Font-francois.Fontcolor1 Ver usuarios + .divider + .styleicon.icon-logo_Usuario + p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis + .divider + .btnstyle1 + button.btn Ir + .Section-item.box.flexbox-colwrp + .titulo3.margin10.Font-francois.Fontcolor1 Ver archivos + .divider + .styleicon.icon-logo_archivo + p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis + .divider + .btnstyle1 + button.btn Ir diff --git a/views/models_jade/Card/style.styl b/views/models_jade/Card/style.styl new file mode 100644 index 0000000..bc5606f --- /dev/null +++ b/views/models_jade/Card/style.styl @@ -0,0 +1,39 @@ +.MyCard + margin-top 10px + margin-bottom 30px + display flex + flex-direction column + align-items center + text-align center + &-photo + width 100px + border-radius 50% + // border 2px dotted #FBC02D + padding 2px + &-photo-img + background-color #E0E0E0 + width 80px + border-radius 50% + &-name + display flex + flex-direction column + //align-items center + text-align center + justify-content center + //background-color #FBC02D + //height 50px + &--textStyle + //padding 15px auto + //letter-spacing 0.3em + font-family: 'Roboto Condensed', sans-serif; + color rgba(229,229,229,0.7) + &-title + color #FAFAFA + font-family 'Noto Serif' + font-style italic + margin-top -7px + //letter-spacing 0.1em + //height: 50px; + display: flex; + align-items: center; + justify-content: center; diff --git a/views/models_jade/Card/template.jade b/views/models_jade/Card/template.jade new file mode 100644 index 0000000..a8b84b1 --- /dev/null +++ b/views/models_jade/Card/template.jade @@ -0,0 +1,12 @@ +.MyCard + .MyCard-photo + if(user) + img(src="#{user.photo}", class="MyCard-photo-img") + else + img(src="/images/cara.png", class="MyCard-photo-img") + .MyCard-name + if(user) + .MyCard--textStyle.borderStyle.titulo1 #{user.name} + else + .MyCard--textStyle.borderStyle.titulo1 Daniel + .MyCard-title.titulo2 Administrador diff --git a/views/models_jade/Header/style.styl b/views/models_jade/Header/style.styl new file mode 100644 index 0000000..90b6474 --- /dev/null +++ b/views/models_jade/Header/style.styl @@ -0,0 +1,49 @@ +.Header + background-color rgba(#273e48, 1) + box-shadow: 0px -5px 7px 5px #777; + &-sidenav + padding 5px 20px + min-height 100vh + width 15vw + &-logo + color white + font-size 6rem + text-align center + + +.Nav + color white + margin 30px auto + color rgba(229,229,229,0.7) + &-item + display flex + align-items center + margin 10px auto + color rgba(229,229,229,0.7) + cursor pointer + &:hover + color rgba(240,240,240,1) + &-item-text + font-size 0.8rem + margin-left 15px + +.Nav-item[data-lastitem] + margin-top 15px + +.iconstyle + font-size 1.4rem + display flex + align-items center + +.iconstyle[data-cross] + font-size 1.4rem + +.notifi + background-color rgba(88, 114, 125,0.9) + //border 1px solid rgba(38, 166, 152, 0.9) + margin-left 30px + font-size 0.8rem + width 16px + text-align center + padding 2px + border-radius 2px diff --git a/views/models_jade/Header/template.jade b/views/models_jade/Header/template.jade new file mode 100644 index 0000000..fe2f4bf --- /dev/null +++ b/views/models_jade/Header/template.jade @@ -0,0 +1,25 @@ +header.Header + .Header-sidenav + .Header-logo.icon-logos_Logoytexto.margin10 + if(user) + include ../Card/template.jade + .divider + .Nav + if(user) + .Nav-item + .iconstyle.icon-user + div.Nav-item-text Ver perfil + .Nav-item + .iconstyle.icon-cog + div.Nav-item-text Configuración + .Nav-item(data-bandeja) + .iconstyle.icon-drawer + div.Nav-item-text Bandeja de entrada + .notifi 2 + .Nav-item(data-lastitem) + .iconstyle(data-cross).icon-cross + a(href="/logout", class="linknone") + div.Nav-item-text Cerrar sesión + + + diff --git a/views/models_jade/Pages-stored.jade/template.jade b/views/models_jade/Pages-stored.jade/template.jade new file mode 100644 index 0000000..6b94b36 --- /dev/null +++ b/views/models_jade/Pages-stored.jade/template.jade @@ -0,0 +1,30 @@ +.titulo1.margin20.Font-francois.FontStylebold.Fontcolor1 Agregar nueva página al catálogo + .titulo2.Font-alegreya Sistema de Administración de catálogo +.divider +.Section-secciones + .Section-agregar.box.Formpanel + .titulo3.margin10.Font-francois.Fontcolor1 Formulario + .divider + .Form + form(id="agregarweb", method="post", action="/form", class="Form-add") + .inputstyle.Fontcolor1 + label(for="input-nombre", class="lbl") Nombre de la nueva web: + input(type="text", id="input-nombre", name="namepage") + .inputstyle.Fontcolor1 + label(for="input-nombre", class="lbl") Nombre del propietario: + input(type="text", id="input-propietario", placeholder="", name="propietario") + .inputstyle.Fontcolor1 + label(class="lbl") Categoría: + select.box + option(selected) Negocios: + option Música + option Blogs + .inputstyle.Font-openssans.Fontcolor1 + label(class="lbl") Tipo: + select.box + option(selected) Estática + option Dinamicas + option Sistemas + .divider + .btnstyle.Font-openssans + input(type="submit", class="btn", value="Salvar") diff --git a/views/models_jade/Pages-stored/template.jade b/views/models_jade/Pages-stored/template.jade new file mode 100644 index 0000000..185ea97 --- /dev/null +++ b/views/models_jade/Pages-stored/template.jade @@ -0,0 +1,31 @@ +section + .titulo1.margin20.Font-francois.FontStylebold.Fontcolor1 Páginas almacenadas + .titulo2.Font-alegreya Sistema de Administración de catálogo + .divider +.Section-secciones + .Section-agregar.box + //- .titulo3.margin10.Font-francois.Fontcolor1 Formulario + //- .divider + //- .Form + //- form(id="agregarweb", method="post", action="/form", class="Form-add") + //- .inputstyle.Fontcolor1 + //- label(for="input-nombre", class="lbl") Nombre de la nueva web: + //- input(type="text", id="input-nombre", name="namepage") + //- .inputstyle.Fontcolor1 + //- label(for="input-nombre", class="lbl") Nombre del propietario: + //- input(type="text", id="input-propietario", placeholder="", name="propietario") + //- .inputstyle.Fontcolor1 + //- label(class="lbl") Categoría: + //- select.box + //- option(selected) Negocios: + //- option Música + //- option Blogs + //- .inputstyle.Font-openssans.Fontcolor1 + //- label(class="lbl") Tipo: + //- select.box + //- option(selected) Estática + //- option Dinamicas + //- option Sistemas + //- .divider + //- .btnstyle.Font-openssans + //- input(type="submit", class="btn", value="Salvar") diff --git a/views/models_jade/Section-main/template.jade b/views/models_jade/Section-main/template.jade new file mode 100644 index 0000000..0bd5ac5 --- /dev/null +++ b/views/models_jade/Section-main/template.jade @@ -0,0 +1,3 @@ +section.Section + .Section-main + \ No newline at end of file diff --git a/views/models_jade/styles/style-fuentes.styl b/views/models_jade/styles/style-fuentes.styl new file mode 100644 index 0000000..5ea9829 --- /dev/null +++ b/views/models_jade/styles/style-fuentes.styl @@ -0,0 +1,28 @@ +.Font-playfair + font-family 'Playfair Display' serif +.Font-abril + font-family 'Abril Fatface' cursive +.Font-bevan + font-family 'Bevan' cursive +.Font-alegreya + font-family 'Alegreya Sans' sans-serif +.Font-francois + font-family 'Francois One' sans-serif +.Font-librebasker + font-family 'Libre Baskerville' serif +.Font-lato + font-family 'Lato' sans-serif +.Font-merriw + font-family 'Merriweather' serif +.Font-merriws + font-family 'Merriweather Sans' sans-serif +.Font-openssans + font-family 'Open Sans' sans-serif +.Font-roboto + font-family 'Roboto Condensed' sans-serif + +.FontStylebold + font-style bold + font-weight 700 +.Fontcolor1 + color rgba(#273e48, 0.86) diff --git a/views/models_jade/styles/style.styl b/views/models_jade/styles/style.styl new file mode 100644 index 0000000..086ed90 --- /dev/null +++ b/views/models_jade/styles/style.styl @@ -0,0 +1,159 @@ +@import "../../../node_modules/normalize-styl/normalize.styl" + +// Código de Compra +// 26979700 + +.bg-primary + background-color rgba(#1a237e, 0.7) +.bg-secundary + background-color rgba(#e3f2fd, 0.4) + + +.box + background-color white + padding 5px 10px + border-radius 2px + box-shadow 0px 2px 1px rgba(0,0,0,0.1) +.minwidth1 + min-width 300px +// .widthbox1 +// width 250px +// .flexbox-colwrp +// display flex +// flex-wrap wrap +// flex-direction column +.margin10 + margin 10px auto 10px 2px +.margin20 + margin 10px auto 10px 20px +.marginbtm + margin-bottom 10px +.titulo1 + font-size 1.6rem + padding 5px + color rgba(#212121, .95) +.titulo2 + font-size 1.1rem + color rgba(#212121, 0.7) +.titulo3 + font-size 1.4rem + color rgba(#212121, 0.9) + font-weight 600 +.titulo4 + font-size .9rem + font-weight 500 + color rgba(#212121, 0.9) +.divider + height 1px + overflow hidden + background-color #e0e0e0 + + +.linknone + text-decoration none + color rgba(229,229,229,0.9) +.linksocial + color: #273e48; +.loginsocial + text-align center + +.styleicon + font-size 4rem + text-align center + margin 10px auto + color rgba(#273e48, 1) + &:hover + color rgba(#273e48, .7) +.justifytext + text-align justify + + +body + font-size 18px +.Main + display flex + align-items stretch + + +@import "../Add-nueva-pagina/style.styl" +@import "../Header/style.styl" +@import "../Card/style.styl" +@import "../Bienvenido/style.styl" +@import "style-fuentes.styl" + + + +@media screen and (max-width: 320px) + .titulo1 + font-size 1.3rem + .titulo2 + font-size 0.9rem + .titulo3 + font-size 1.1rem + .titulo4 + font-size .8rem + + main + display flex + flex-direction row + + .Section + width 100vw + &-secciones + flex-direction column + + .Header + box-shadow: -1px 4px 2px 0px #777; + max-height 100% + &-sidenav + width 100% + padding 0px + .MyCard + margin-top 0px + &-photo + text-align center + &-photo-img + text-align center + width 70px + .Formpanel + // display flex + // justify-content center + // flex-wrap wrap + // flex-direction column + items-align center + margin-top 2rem + width 90vw + +@media screen and (max-width: 720px) + + main + display flex + flex-direction column + .Section + width 100vw + &-secciones + flex-direction row + flex-wrap wrap + .Header + box-shadow: -1px 4px 2px 0px #777; + max-height 100% + &-sidenav + padding 0px + width 100% + &-logo + font-size 4.5rem + .MyCard + margin-top 0px + &-photo + text-align center + &-photo-img + text-align center + width 70px + .Formpanel + // display flex + // justify-content center + // flex-wrap wrap + // flex-direction column + items-align center + margin-top 2rem + width 90vw diff --git a/views/session.jade b/views/session.jade new file mode 100644 index 0000000..5ac21cb --- /dev/null +++ b/views/session.jade @@ -0,0 +1,10 @@ +extends layout + +block content + //- h1= title + //- p Welcome to #{title} + include ./models_jade/Header/template.jade + include ./models_jade/Section-main/template.jade + include ./models_jade/Bienvenido/template.jade + //- script(src="https://code.jquery.com/jquery-2.1.1.min.js") + //- script(src="./js/materialize.js") From f06af80743c5586ca28778f9644266e160a6f2cc Mon Sep 17 00:00:00 2001 From: daniel nava Date: Fri, 23 Oct 2015 00:07:19 -0500 Subject: [PATCH 16/18] listo hasta la pagina de almacenados, pero aun falta --- public/stylesheets/style.css | 42 ++++++++++++++------- views/models_jade/Admin-users/style.styl | 16 ++++++++ views/models_jade/Admin-users/template.jade | 7 +++- views/models_jade/Stored/style.styl | 0 views/models_jade/Stored/template.jade | 0 views/models_jade/styles/style.styl | 6 ++- views/stored.jade | 2 +- 7 files changed, 57 insertions(+), 16 deletions(-) create mode 100644 views/models_jade/Stored/style.styl create mode 100644 views/models_jade/Stored/template.jade diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css index 369db11..9ebf778 100644 --- a/public/stylesheets/style.css +++ b/public/stylesheets/style.css @@ -442,19 +442,6 @@ select option["selected"] { width: 250px; margin: 10px; } -.Table { - width: 800px; -} -.Table-user-photo { - width: 40px; - border-radius: 50%; -} -.th { - text-align: justify; -} -.td { - margin-top: 10px; -} .Font-playfair { font-family: 'Playfair Display' serif; } @@ -581,3 +568,32 @@ select option["selected"] { width: 90vw; } } +.Table { + width: 800px; +} +.Table-user-photo { + width: 40px; + border-radius: 50%; +} +.th { + text-align: justify; +} +.td { + margin-top: 10px; +} +.facebook-label { + background-color: #00f; + padding: 4px; + border-radius: 0px 5px; + color: #fff; + text-align: center; + width: 85px; +} +.github-label { + background-color: #000; + padding: 4px; + border-radius: 0px 5px; + color: #fff; + text-align: center; + width: 85px; +} diff --git a/views/models_jade/Admin-users/style.styl b/views/models_jade/Admin-users/style.styl index d0262ed..1ae533d 100644 --- a/views/models_jade/Admin-users/style.styl +++ b/views/models_jade/Admin-users/style.styl @@ -7,3 +7,19 @@ text-align justify .td margin-top 10px + +.facebook-label + background-color #00f + padding 4px + border-radius 0px 5px + color white + text-align center + width 85px + +.github-label + background-color #000 + padding 4px + border-radius 0px 5px + color white + text-align center + width 85px diff --git a/views/models_jade/Admin-users/template.jade b/views/models_jade/Admin-users/template.jade index b9bb055..3876eed 100644 --- a/views/models_jade/Admin-users/template.jade +++ b/views/models_jade/Admin-users/template.jade @@ -14,6 +14,11 @@ section each user in users tr(class="tr") td(class="td") #{user.name} - td(class="td") #{user.provider} + if(user.provider == "facebook") + td(class="td") + div.facebook-label #{user.provider} + else + td(class="td") + div.github-label #{user.provider} td(class="td") img(src="#{user.photo}", class="Table-user-photo") diff --git a/views/models_jade/Stored/style.styl b/views/models_jade/Stored/style.styl new file mode 100644 index 0000000..e69de29 diff --git a/views/models_jade/Stored/template.jade b/views/models_jade/Stored/template.jade new file mode 100644 index 0000000..e69de29 diff --git a/views/models_jade/styles/style.styl b/views/models_jade/styles/style.styl index ac96d08..fe35daa 100644 --- a/views/models_jade/styles/style.styl +++ b/views/models_jade/styles/style.styl @@ -79,7 +79,8 @@ body @import "../Header/style.styl" @import "../Card/style.styl" @import "../Bienvenido/style.styl" -@import "../Pages-stored/style.styl" +// @import "../Pages-stored/style.styl" + @import "style-fuentes.styl" @@ -158,3 +159,6 @@ body items-align center margin-top 2rem width 90vw + + +@import "../Admin-users/style.styl" diff --git a/views/stored.jade b/views/stored.jade index 0d556b4..74e10fa 100644 --- a/views/stored.jade +++ b/views/stored.jade @@ -4,4 +4,4 @@ block content include ./models_jade/Header/template.jade include ./models_jade/Section-main/template.jade - //include ./models_jade/Admin-users/template.jade + include ./models_jade/Stored/template.jade From d8d944f683a6c916ab93725f0d0d0296328a79b7 Mon Sep 17 00:00:00 2001 From: Luis Santiago Date: Mon, 2 Nov 2015 14:23:13 +0000 Subject: [PATCH 17/18] Conexion a mongo local, y acceso por facebook --- app.js | 33 +- config/mongodb-config.js | 50 + models/user.js | 12 + models/web.js | 78 + package.json | 13 +- passport.js | 133 + public/stylesheets/materialize.css | 15842 ++++++++-------- public/stylesheets/style-fonts.css | 650 +- public/stylesheets/style-fuentes.css | 80 +- public/stylesheets/style.css | 1153 +- routes/admin-users.js | 26 + routes/form.js | 40 +- routes/index.js | 28 + routes/session.js | 8 +- routes/stored.js | 17 + views/admin-users.jade | 7 + views/layout.jade | 2 +- views/models_jade/Add-nueva-pagina/style.styl | 166 +- .../Add-nueva-pagina/template.jade | 62 +- views/models_jade/Admin-users/style.styl | 25 + views/models_jade/Admin-users/template.jade | 24 + views/models_jade/Bienvenido/style.styl | 32 +- views/models_jade/Bienvenido/template.jade | 108 +- views/models_jade/Card/style.styl | 78 +- views/models_jade/Card/template.jade | 24 +- views/models_jade/Header/style.styl | 98 +- views/models_jade/Header/template.jade | 50 +- .../Pages-stored.jade/template.jade | 30 - views/models_jade/Pages-stored/template.jade | 31 - views/models_jade/Section-main/template.jade | 4 +- views/models_jade/styles/style-fuentes.styl | 56 +- views/models_jade/styles/style.styl | 322 +- views/stored.jade | 7 + 33 files changed, 9861 insertions(+), 9428 deletions(-) create mode 100644 config/mongodb-config.js create mode 100644 models/user.js create mode 100644 models/web.js create mode 100644 passport.js create mode 100644 routes/admin-users.js create mode 100644 routes/stored.js create mode 100644 views/admin-users.jade create mode 100644 views/models_jade/Admin-users/style.styl create mode 100644 views/models_jade/Admin-users/template.jade delete mode 100644 views/models_jade/Pages-stored.jade/template.jade delete mode 100644 views/models_jade/Pages-stored/template.jade create mode 100644 views/stored.jade diff --git a/app.js b/app.js index c9cb3cd..a88d622 100644 --- a/app.js +++ b/app.js @@ -4,13 +4,22 @@ var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); +var session = require('express-session'); +var passport = require('passport'); + var routes = require('./routes/index'); -var users = require('./routes/users'); var webadmin = require('./routes/webadmin'); -var session = require('./routes/session'); +var sesion = require('./routes/session'); var form = require('./routes/form'); +var stored = require('./routes/stored'); +var admins = require('./routes/admin-users'); + +//var users = require('./routes/users'); +require('./passport')(passport); + +//var config = require('./config/mongodb-config'); var app = express(); // view engine setup @@ -26,12 +35,28 @@ app.use(cookieParser()); app.use(require('stylus').middleware(path.join(__dirname, 'public'))); app.use(express.static(path.join(__dirname, 'public'))); + +// Indicamos que use sesiones, para almacenar el objeto usuario +// y que lo recuerde aunque abandonemos la página +app.use(session({ resave: true, + saveUninitialized: true, + secret: 'lollllo' })); + +//Inicializa PASSPORT +app.use(passport.initialize()); +app.use(passport.session()); + + app.use('/', routes); -app.use('/users', users); app.use('/webadmin', webadmin); -app.use('/session', session); +app.use('/session', sesion); app.use('/form', form); +app.use('/stored', stored); +app.use('/admin-users', admins); + +//app.use('/users', users); +//app.use(config); // catch 404 and forward to error handler app.use(function(req, res, next) { var err = new Error('Not Found'); diff --git a/config/mongodb-config.js b/config/mongodb-config.js new file mode 100644 index 0000000..d8f4ec1 --- /dev/null +++ b/config/mongodb-config.js @@ -0,0 +1,50 @@ + +var mongoose = require('mongoose'); +var user = ''; +var password = ''; +var dbaddress = ''; +//var dblocal = ''; +var database = 'develop'; + +//var url = 'mongodb://'+user+':'+password+'@'+dbaddress+database; +var localurl = 'mongodb://localhost:27017/'+database; + + +var exports = module.exports = {}; +exports.conectar = function (){ + mongoose.connect('mongodb://localhost/develop'); + +} +exports.desconectar = function(){ + mongoose.disconnect(); +} + +/* +var db = ({ + mongoose: mongoose, + //models + page: //require('../models/web')(mongoose), + function(){ + var model = require('../models/web'); + return model(mongoose); + } + +}); +module.exports.db = db; +*/ +/* + if(!global.hasOwnProperty('db')){ + var mongoose = require('mongoose'); + var database = ''; + //mongoose.connect('mongodb://localhost'+database); + + global.db = { + mongoose: mongoose, + + //models + // web: require('../models/web.js')//(mongoose) + }; + } + + module.exports = global.db; + */ \ No newline at end of file diff --git a/models/user.js b/models/user.js new file mode 100644 index 0000000..1527e2f --- /dev/null +++ b/models/user.js @@ -0,0 +1,12 @@ +var mongoose = require('mongoose'), + Schema = mongoose.Schema; + +var userSchema = new Schema({ + name : String, // Nombre del usuario + provider : String, // Cuenta del usuario (Twitter o Facebook en este ejemplo) + provider_id : {type: String}, // ID que proporciona Twitter o Facebook + photo : String, // Avatar o foto del usuario + createdAt : {type: Date, default: Date.now} // Fecha de creación +}); + +module.exports = mongoose.model('user', userSchema); \ No newline at end of file diff --git a/models/web.js b/models/web.js new file mode 100644 index 0000000..1114b5f --- /dev/null +++ b/models/web.js @@ -0,0 +1,78 @@ + +var mongoose = require('mongoose'); +var Schema = mongoose.Schema; + + var webSchema = new Schema({ + name: String + /*type: String, + category: String, + urloffline: String, + owner: String, + urlonline: String, + price: Number, + timessold: Number + */ + }/*,{collection: 'pages'}*/); + +module.exports = mongoose.model('web', webSchema); + + + +/* +module.exports = function(mongoose){ + var Schema = mongoose.Schema; + + var webSchema = new Schema({ + name: String, + type: String, + category: String, + urloffline: String, + owner: String, + urlonline: String, + price: Number, + timessold: Number + },{collection: 'pages'}); + + return mongoose.model('web', webSchema); +} +*/ +//var exports = module.exports = {}; + +/* +exports.addweb = function(webname, type, category, urloff, owner, urlon, price){ + var web = new web({ + name: webname, + type: type, + category: category, + urloffline: urloff, + owner: owner, + urlonline: urlon, + price: price + }); + web.save(function (err) { + if (err) return console.error(err); + console.log('insercion exitosa'); + }); + +} +*/ +//webSchema.methods.add = function(webname, type, category, urloff, owner, urlon, price){ + +/* +function addWeb(webname, type, category, urloff, owner, urlon, price){ + var web = new Web({ + name: webname, + type: type, + category: category, + urloffline: urloff, + owner: owner, + urlonline: urlon, + price: price + }) + web.save(function (err, fluffy) { + if (err) return console.error(err); + console.log('insercion exitosa'); + }); + +} +*/ \ No newline at end of file diff --git a/package.json b/package.json index 43e1ba9..cfe66c0 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,7 @@ "private": true, "scripts": { "start": "nodemon ./bin/www", - "stylus": "stylus --use nib --watch ./views/models_jade/styles --out ./public/stylesheets" - + "stylus": "stylus --watch ./views/models_jade/styles --out ./public/stylesheets" }, "repository": { "type": "git", @@ -22,6 +21,14 @@ "nodemon": "^1.7.3", "normalize-styl": "^3.0.3", "serve-favicon": "~2.3.0", - "stylus": "0.42.3" + "stylus": "0.42.3", + "passport": "~0.3.0", + "passport-facebook": "~2.0.0", + "passport-twitter": "~1.0.3", + "express-session": "~1.11.3", + "passport-github2": "~0.1.9" + }, + "devDependencies": { + "stylus": "^0.42.3" } } diff --git a/passport.js b/passport.js new file mode 100644 index 0000000..30ac348 --- /dev/null +++ b/passport.js @@ -0,0 +1,133 @@ +var mongoose = require('mongoose'); +//var db = require('./lib/db'); + +var db = require('./config/mongodb-config'); + +//var User = db.mongoose.model('User'); +var User = require('./models/user'); + +// Estrategia de autenticación con Twitter +var TwitterStrategy = require('passport-twitter').Strategy; +// Estrategia de autenticación con Facebook +var FacebookStrategy = require('passport-facebook').Strategy; + +var GitHubStrategy = require('passport-github2').Strategy; +// Fichero de configuración donde se encuentran las API keys +// Este archivo no debe subirse a GitHub ya que contiene datos +// que pueden comprometer la seguridad de la aplicación. +var config = require('./config'); + +// Exportamos como módulo las funciones de passport, de manera que +// podamos utilizarlas en otras partes de la aplicación. +// De esta manera, mantenemos el código separado en varios archivos +// logrando que sea más manejable. +module.exports = function(passport) { + + // Serializa al usuario para almacenarlo en la sesión + passport.serializeUser(function(user, done) { + done(null, user); + }); + + // Deserializa el objeto usuario almacenado en la sesión para + // poder utilizarlo + passport.deserializeUser(function(obj, done) { + done(null, obj); + }); + + // Configuración del autenticado con Twitter + passport.use(new TwitterStrategy({ + consumerKey : config.twitter.key, + consumerSecret : config.twitter.secret, + callbackURL : '/auth/twitter/callback' + }, function(accessToken, refreshToken, profile, done) { + // Busca en la base de datos si el usuario ya se autenticó en otro + // momento y ya está almacenado en ella + //db.conectar(); + User.findOne({provider_id: profile.id}, function(err, user) { + if(err) throw(err); + // Si existe en la Base de Datos, lo devuelve + if(!err && user!= null) return done(null, user); + + // Si no existe crea un nuevo objecto usuario + var user = new User({ + provider_id : profile.id, + provider : profile.provider, + name : profile.displayName, + photo : profile.photos[0].value + }); + //...y lo almacena en la base de datos + user.save(function(err) { + if(err) throw err; + done(null, user); + }); + //db.desconectar(); + + }/*, function(){db.desconectar();}*/); + })); + + // Configuración del autenticado con Facebook + passport.use(new FacebookStrategy({ + clientID : config.facebook.key, + clientSecret : config.facebook.secret, + callbackURL : '/auth/facebook/callback', + profileFields : ['id', 'displayName', /*'provider',*/ 'photos'] + }, function(accessToken, refreshToken, profile, done) { + // El campo 'profileFields' nos permite que los campos que almacenamos + // se llamen igual tanto para si el usuario se autentica por Twitter o + // por Facebook, ya que cada proveedor entrega los datos en el JSON con + // un nombre diferente. + // Passport esto lo sabe y nos lo pone más sencillo con ese campo + db.conectar(); + User.findOne({provider_id: profile.id}, function(err, user) { + if(err) throw(err); + if(!err && user!= null) return done(null, user); + + // Al igual que antes, si el usuario ya existe lo devuelve + // y si no, lo crea y salva en la base de datos + var user = new User({ + provider_id : profile.id, + provider : profile.provider, + name : profile.displayName, + photo : profile.photos[0].value + }); + user.save(function(err) { + if(err) throw err; + done(null, user); + }); + //db.desconectar(); + }/*,function(){db.desconectar();}*/); + })); + + passport.use(new GitHubStrategy({ + clientID: config.github.key, + clientSecret: config.github.secret, + callbackURL: "/auth/github/callback" + }, + function(accessToken, refreshToken, profile, done) { + //console.log(profile._json) + db.conectar(); + User.findOne({provider_id: profile.id}, function(err, user) { + if(err) throw(err); + // Si existe en la Base de Datos, lo devuelve + if(!err && user!= null) return done(null, user); + + //Si no existe crea un nuevo objecto usuario + console.log(user) + var user = new User({ + provider_id : profile.id, + provider : profile.provider, + name : profile.username, + photo : profile._json.avatar_url + }); + //...y lo almacena en la base de datos + user.save(function(err) { + if(err) throw err; + done(null, user); + }); + //console.log(user) + + + }/*,function(){db.desconectar();}*/); + } +)); +}; diff --git a/public/stylesheets/materialize.css b/public/stylesheets/materialize.css index 81944bf..bc3d16f 100644 --- a/public/stylesheets/materialize.css +++ b/public/stylesheets/materialize.css @@ -1,7921 +1,7921 @@ -.materialize-red.lighten-5 { - background-color: #fdeaeb !important; } - -.materialize-red-text.text-lighten-5 { - color: #fdeaeb !important; } - -.materialize-red.lighten-4 { - background-color: #f8c1c3 !important; } - -.materialize-red-text.text-lighten-4 { - color: #f8c1c3 !important; } - -.materialize-red.lighten-3 { - background-color: #f3989b !important; } - -.materialize-red-text.text-lighten-3 { - color: #f3989b !important; } - -.materialize-red.lighten-2 { - background-color: #ee6e73 !important; } - -.materialize-red-text.text-lighten-2 { - color: #ee6e73 !important; } - -.materialize-red.lighten-1 { - background-color: #ea454b !important; } - -.materialize-red-text.text-lighten-1 { - color: #ea454b !important; } - -.materialize-red { - background-color: #e51c23 !important; } - -.materialize-red-text { - color: #e51c23 !important; } - -.materialize-red.darken-1 { - background-color: #d0181e !important; } - -.materialize-red-text.text-darken-1 { - color: #d0181e !important; } - -.materialize-red.darken-2 { - background-color: #b9151b !important; } - -.materialize-red-text.text-darken-2 { - color: #b9151b !important; } - -.materialize-red.darken-3 { - background-color: #a21318 !important; } - -.materialize-red-text.text-darken-3 { - color: #a21318 !important; } - -.materialize-red.darken-4 { - background-color: #8b1014 !important; } - -.materialize-red-text.text-darken-4 { - color: #8b1014 !important; } - -.red.lighten-5 { - background-color: #FFEBEE !important; } - -.red-text.text-lighten-5 { - color: #FFEBEE !important; } - -.red.lighten-4 { - background-color: #FFCDD2 !important; } - -.red-text.text-lighten-4 { - color: #FFCDD2 !important; } - -.red.lighten-3 { - background-color: #EF9A9A !important; } - -.red-text.text-lighten-3 { - color: #EF9A9A !important; } - -.red.lighten-2 { - background-color: #E57373 !important; } - -.red-text.text-lighten-2 { - color: #E57373 !important; } - -.red.lighten-1 { - background-color: #EF5350 !important; } - -.red-text.text-lighten-1 { - color: #EF5350 !important; } - -.red { - background-color: #F44336 !important; } - -.red-text { - color: #F44336 !important; } - -.red.darken-1 { - background-color: #E53935 !important; } - -.red-text.text-darken-1 { - color: #E53935 !important; } - -.red.darken-2 { - background-color: #D32F2F !important; } - -.red-text.text-darken-2 { - color: #D32F2F !important; } - -.red.darken-3 { - background-color: #C62828 !important; } - -.red-text.text-darken-3 { - color: #C62828 !important; } - -.red.darken-4 { - background-color: #B71C1C !important; } - -.red-text.text-darken-4 { - color: #B71C1C !important; } - -.red.accent-1 { - background-color: #FF8A80 !important; } - -.red-text.text-accent-1 { - color: #FF8A80 !important; } - -.red.accent-2 { - background-color: #FF5252 !important; } - -.red-text.text-accent-2 { - color: #FF5252 !important; } - -.red.accent-3 { - background-color: #FF1744 !important; } - -.red-text.text-accent-3 { - color: #FF1744 !important; } - -.red.accent-4 { - background-color: #D50000 !important; } - -.red-text.text-accent-4 { - color: #D50000 !important; } - -.pink.lighten-5 { - background-color: #fce4ec !important; } - -.pink-text.text-lighten-5 { - color: #fce4ec !important; } - -.pink.lighten-4 { - background-color: #f8bbd0 !important; } - -.pink-text.text-lighten-4 { - color: #f8bbd0 !important; } - -.pink.lighten-3 { - background-color: #f48fb1 !important; } - -.pink-text.text-lighten-3 { - color: #f48fb1 !important; } - -.pink.lighten-2 { - background-color: #f06292 !important; } - -.pink-text.text-lighten-2 { - color: #f06292 !important; } - -.pink.lighten-1 { - background-color: #ec407a !important; } - -.pink-text.text-lighten-1 { - color: #ec407a !important; } - -.pink { - background-color: #e91e63 !important; } - -.pink-text { - color: #e91e63 !important; } - -.pink.darken-1 { - background-color: #d81b60 !important; } - -.pink-text.text-darken-1 { - color: #d81b60 !important; } - -.pink.darken-2 { - background-color: #c2185b !important; } - -.pink-text.text-darken-2 { - color: #c2185b !important; } - -.pink.darken-3 { - background-color: #ad1457 !important; } - -.pink-text.text-darken-3 { - color: #ad1457 !important; } - -.pink.darken-4 { - background-color: #880e4f !important; } - -.pink-text.text-darken-4 { - color: #880e4f !important; } - -.pink.accent-1 { - background-color: #ff80ab !important; } - -.pink-text.text-accent-1 { - color: #ff80ab !important; } - -.pink.accent-2 { - background-color: #ff4081 !important; } - -.pink-text.text-accent-2 { - color: #ff4081 !important; } - -.pink.accent-3 { - background-color: #f50057 !important; } - -.pink-text.text-accent-3 { - color: #f50057 !important; } - -.pink.accent-4 { - background-color: #c51162 !important; } - -.pink-text.text-accent-4 { - color: #c51162 !important; } - -.purple.lighten-5 { - background-color: #f3e5f5 !important; } - -.purple-text.text-lighten-5 { - color: #f3e5f5 !important; } - -.purple.lighten-4 { - background-color: #e1bee7 !important; } - -.purple-text.text-lighten-4 { - color: #e1bee7 !important; } - -.purple.lighten-3 { - background-color: #ce93d8 !important; } - -.purple-text.text-lighten-3 { - color: #ce93d8 !important; } - -.purple.lighten-2 { - background-color: #ba68c8 !important; } - -.purple-text.text-lighten-2 { - color: #ba68c8 !important; } - -.purple.lighten-1 { - background-color: #ab47bc !important; } - -.purple-text.text-lighten-1 { - color: #ab47bc !important; } - -.purple { - background-color: #9c27b0 !important; } - -.purple-text { - color: #9c27b0 !important; } - -.purple.darken-1 { - background-color: #8e24aa !important; } - -.purple-text.text-darken-1 { - color: #8e24aa !important; } - -.purple.darken-2 { - background-color: #7b1fa2 !important; } - -.purple-text.text-darken-2 { - color: #7b1fa2 !important; } - -.purple.darken-3 { - background-color: #6a1b9a !important; } - -.purple-text.text-darken-3 { - color: #6a1b9a !important; } - -.purple.darken-4 { - background-color: #4a148c !important; } - -.purple-text.text-darken-4 { - color: #4a148c !important; } - -.purple.accent-1 { - background-color: #ea80fc !important; } - -.purple-text.text-accent-1 { - color: #ea80fc !important; } - -.purple.accent-2 { - background-color: #e040fb !important; } - -.purple-text.text-accent-2 { - color: #e040fb !important; } - -.purple.accent-3 { - background-color: #d500f9 !important; } - -.purple-text.text-accent-3 { - color: #d500f9 !important; } - -.purple.accent-4 { - background-color: #aa00ff !important; } - -.purple-text.text-accent-4 { - color: #aa00ff !important; } - -.deep-purple.lighten-5 { - background-color: #ede7f6 !important; } - -.deep-purple-text.text-lighten-5 { - color: #ede7f6 !important; } - -.deep-purple.lighten-4 { - background-color: #d1c4e9 !important; } - -.deep-purple-text.text-lighten-4 { - color: #d1c4e9 !important; } - -.deep-purple.lighten-3 { - background-color: #b39ddb !important; } - -.deep-purple-text.text-lighten-3 { - color: #b39ddb !important; } - -.deep-purple.lighten-2 { - background-color: #9575cd !important; } - -.deep-purple-text.text-lighten-2 { - color: #9575cd !important; } - -.deep-purple.lighten-1 { - background-color: #7e57c2 !important; } - -.deep-purple-text.text-lighten-1 { - color: #7e57c2 !important; } - -.deep-purple { - background-color: #673ab7 !important; } - -.deep-purple-text { - color: #673ab7 !important; } - -.deep-purple.darken-1 { - background-color: #5e35b1 !important; } - -.deep-purple-text.text-darken-1 { - color: #5e35b1 !important; } - -.deep-purple.darken-2 { - background-color: #512da8 !important; } - -.deep-purple-text.text-darken-2 { - color: #512da8 !important; } - -.deep-purple.darken-3 { - background-color: #4527a0 !important; } - -.deep-purple-text.text-darken-3 { - color: #4527a0 !important; } - -.deep-purple.darken-4 { - background-color: #311b92 !important; } - -.deep-purple-text.text-darken-4 { - color: #311b92 !important; } - -.deep-purple.accent-1 { - background-color: #b388ff !important; } - -.deep-purple-text.text-accent-1 { - color: #b388ff !important; } - -.deep-purple.accent-2 { - background-color: #7c4dff !important; } - -.deep-purple-text.text-accent-2 { - color: #7c4dff !important; } - -.deep-purple.accent-3 { - background-color: #651fff !important; } - -.deep-purple-text.text-accent-3 { - color: #651fff !important; } - -.deep-purple.accent-4 { - background-color: #6200ea !important; } - -.deep-purple-text.text-accent-4 { - color: #6200ea !important; } - -.indigo.lighten-5 { - background-color: #e8eaf6 !important; } - -.indigo-text.text-lighten-5 { - color: #e8eaf6 !important; } - -.indigo.lighten-4 { - background-color: #c5cae9 !important; } - -.indigo-text.text-lighten-4 { - color: #c5cae9 !important; } - -.indigo.lighten-3 { - background-color: #9fa8da !important; } - -.indigo-text.text-lighten-3 { - color: #9fa8da !important; } - -.indigo.lighten-2 { - background-color: #7986cb !important; } - -.indigo-text.text-lighten-2 { - color: #7986cb !important; } - -.indigo.lighten-1 { - background-color: #5c6bc0 !important; } - -.indigo-text.text-lighten-1 { - color: #5c6bc0 !important; } - -.indigo { - background-color: #3f51b5 !important; } - -.indigo-text { - color: #3f51b5 !important; } - -.indigo.darken-1 { - background-color: #3949ab !important; } - -.indigo-text.text-darken-1 { - color: #3949ab !important; } - -.indigo.darken-2 { - background-color: #303f9f !important; } - -.indigo-text.text-darken-2 { - color: #303f9f !important; } - -.indigo.darken-3 { - background-color: #283593 !important; } - -.indigo-text.text-darken-3 { - color: #283593 !important; } - -.indigo.darken-4 { - background-color: #1a237e !important; } - -.indigo-text.text-darken-4 { - color: #1a237e !important; } - -.indigo.accent-1 { - background-color: #8c9eff !important; } - -.indigo-text.text-accent-1 { - color: #8c9eff !important; } - -.indigo.accent-2 { - background-color: #536dfe !important; } - -.indigo-text.text-accent-2 { - color: #536dfe !important; } - -.indigo.accent-3 { - background-color: #3d5afe !important; } - -.indigo-text.text-accent-3 { - color: #3d5afe !important; } - -.indigo.accent-4 { - background-color: #304ffe !important; } - -.indigo-text.text-accent-4 { - color: #304ffe !important; } - -.blue.lighten-5 { - background-color: #E3F2FD !important; } - -.blue-text.text-lighten-5 { - color: #E3F2FD !important; } - -.blue.lighten-4 { - background-color: #BBDEFB !important; } - -.blue-text.text-lighten-4 { - color: #BBDEFB !important; } - -.blue.lighten-3 { - background-color: #90CAF9 !important; } - -.blue-text.text-lighten-3 { - color: #90CAF9 !important; } - -.blue.lighten-2 { - background-color: #64B5F6 !important; } - -.blue-text.text-lighten-2 { - color: #64B5F6 !important; } - -.blue.lighten-1 { - background-color: #42A5F5 !important; } - -.blue-text.text-lighten-1 { - color: #42A5F5 !important; } - -.blue { - background-color: #2196F3 !important; } - -.blue-text { - color: #2196F3 !important; } - -.blue.darken-1 { - background-color: #1E88E5 !important; } - -.blue-text.text-darken-1 { - color: #1E88E5 !important; } - -.blue.darken-2 { - background-color: #1976D2 !important; } - -.blue-text.text-darken-2 { - color: #1976D2 !important; } - -.blue.darken-3 { - background-color: #1565C0 !important; } - -.blue-text.text-darken-3 { - color: #1565C0 !important; } - -.blue.darken-4 { - background-color: #0D47A1 !important; } - -.blue-text.text-darken-4 { - color: #0D47A1 !important; } - -.blue.accent-1 { - background-color: #82B1FF !important; } - -.blue-text.text-accent-1 { - color: #82B1FF !important; } - -.blue.accent-2 { - background-color: #448AFF !important; } - -.blue-text.text-accent-2 { - color: #448AFF !important; } - -.blue.accent-3 { - background-color: #2979FF !important; } - -.blue-text.text-accent-3 { - color: #2979FF !important; } - -.blue.accent-4 { - background-color: #2962FF !important; } - -.blue-text.text-accent-4 { - color: #2962FF !important; } - -.light-blue.lighten-5 { - background-color: #e1f5fe !important; } - -.light-blue-text.text-lighten-5 { - color: #e1f5fe !important; } - -.light-blue.lighten-4 { - background-color: #b3e5fc !important; } - -.light-blue-text.text-lighten-4 { - color: #b3e5fc !important; } - -.light-blue.lighten-3 { - background-color: #81d4fa !important; } - -.light-blue-text.text-lighten-3 { - color: #81d4fa !important; } - -.light-blue.lighten-2 { - background-color: #4fc3f7 !important; } - -.light-blue-text.text-lighten-2 { - color: #4fc3f7 !important; } - -.light-blue.lighten-1 { - background-color: #29b6f6 !important; } - -.light-blue-text.text-lighten-1 { - color: #29b6f6 !important; } - -.light-blue { - background-color: #03a9f4 !important; } - -.light-blue-text { - color: #03a9f4 !important; } - -.light-blue.darken-1 { - background-color: #039be5 !important; } - -.light-blue-text.text-darken-1 { - color: #039be5 !important; } - -.light-blue.darken-2 { - background-color: #0288d1 !important; } - -.light-blue-text.text-darken-2 { - color: #0288d1 !important; } - -.light-blue.darken-3 { - background-color: #0277bd !important; } - -.light-blue-text.text-darken-3 { - color: #0277bd !important; } - -.light-blue.darken-4 { - background-color: #01579b !important; } - -.light-blue-text.text-darken-4 { - color: #01579b !important; } - -.light-blue.accent-1 { - background-color: #80d8ff !important; } - -.light-blue-text.text-accent-1 { - color: #80d8ff !important; } - -.light-blue.accent-2 { - background-color: #40c4ff !important; } - -.light-blue-text.text-accent-2 { - color: #40c4ff !important; } - -.light-blue.accent-3 { - background-color: #00b0ff !important; } - -.light-blue-text.text-accent-3 { - color: #00b0ff !important; } - -.light-blue.accent-4 { - background-color: #0091ea !important; } - -.light-blue-text.text-accent-4 { - color: #0091ea !important; } - -.cyan.lighten-5 { - background-color: #e0f7fa !important; } - -.cyan-text.text-lighten-5 { - color: #e0f7fa !important; } - -.cyan.lighten-4 { - background-color: #b2ebf2 !important; } - -.cyan-text.text-lighten-4 { - color: #b2ebf2 !important; } - -.cyan.lighten-3 { - background-color: #80deea !important; } - -.cyan-text.text-lighten-3 { - color: #80deea !important; } - -.cyan.lighten-2 { - background-color: #4dd0e1 !important; } - -.cyan-text.text-lighten-2 { - color: #4dd0e1 !important; } - -.cyan.lighten-1 { - background-color: #26c6da !important; } - -.cyan-text.text-lighten-1 { - color: #26c6da !important; } - -.cyan { - background-color: #00bcd4 !important; } - -.cyan-text { - color: #00bcd4 !important; } - -.cyan.darken-1 { - background-color: #00acc1 !important; } - -.cyan-text.text-darken-1 { - color: #00acc1 !important; } - -.cyan.darken-2 { - background-color: #0097a7 !important; } - -.cyan-text.text-darken-2 { - color: #0097a7 !important; } - -.cyan.darken-3 { - background-color: #00838f !important; } - -.cyan-text.text-darken-3 { - color: #00838f !important; } - -.cyan.darken-4 { - background-color: #006064 !important; } - -.cyan-text.text-darken-4 { - color: #006064 !important; } - -.cyan.accent-1 { - background-color: #84ffff !important; } - -.cyan-text.text-accent-1 { - color: #84ffff !important; } - -.cyan.accent-2 { - background-color: #18ffff !important; } - -.cyan-text.text-accent-2 { - color: #18ffff !important; } - -.cyan.accent-3 { - background-color: #00e5ff !important; } - -.cyan-text.text-accent-3 { - color: #00e5ff !important; } - -.cyan.accent-4 { - background-color: #00b8d4 !important; } - -.cyan-text.text-accent-4 { - color: #00b8d4 !important; } - -.teal.lighten-5 { - background-color: #e0f2f1 !important; } - -.teal-text.text-lighten-5 { - color: #e0f2f1 !important; } - -.teal.lighten-4 { - background-color: #b2dfdb !important; } - -.teal-text.text-lighten-4 { - color: #b2dfdb !important; } - -.teal.lighten-3 { - background-color: #80cbc4 !important; } - -.teal-text.text-lighten-3 { - color: #80cbc4 !important; } - -.teal.lighten-2 { - background-color: #4db6ac !important; } - -.teal-text.text-lighten-2 { - color: #4db6ac !important; } - -.teal.lighten-1 { - background-color: #26a69a !important; } - -.teal-text.text-lighten-1 { - color: #26a69a !important; } - -.teal { - background-color: #009688 !important; } - -.teal-text { - color: #009688 !important; } - -.teal.darken-1 { - background-color: #00897b !important; } - -.teal-text.text-darken-1 { - color: #00897b !important; } - -.teal.darken-2 { - background-color: #00796b !important; } - -.teal-text.text-darken-2 { - color: #00796b !important; } - -.teal.darken-3 { - background-color: #00695c !important; } - -.teal-text.text-darken-3 { - color: #00695c !important; } - -.teal.darken-4 { - background-color: #004d40 !important; } - -.teal-text.text-darken-4 { - color: #004d40 !important; } - -.teal.accent-1 { - background-color: #a7ffeb !important; } - -.teal-text.text-accent-1 { - color: #a7ffeb !important; } - -.teal.accent-2 { - background-color: #64ffda !important; } - -.teal-text.text-accent-2 { - color: #64ffda !important; } - -.teal.accent-3 { - background-color: #1de9b6 !important; } - -.teal-text.text-accent-3 { - color: #1de9b6 !important; } - -.teal.accent-4 { - background-color: #00bfa5 !important; } - -.teal-text.text-accent-4 { - color: #00bfa5 !important; } - -.green.lighten-5 { - background-color: #E8F5E9 !important; } - -.green-text.text-lighten-5 { - color: #E8F5E9 !important; } - -.green.lighten-4 { - background-color: #C8E6C9 !important; } - -.green-text.text-lighten-4 { - color: #C8E6C9 !important; } - -.green.lighten-3 { - background-color: #A5D6A7 !important; } - -.green-text.text-lighten-3 { - color: #A5D6A7 !important; } - -.green.lighten-2 { - background-color: #81C784 !important; } - -.green-text.text-lighten-2 { - color: #81C784 !important; } - -.green.lighten-1 { - background-color: #66BB6A !important; } - -.green-text.text-lighten-1 { - color: #66BB6A !important; } - -.green { - background-color: #4CAF50 !important; } - -.green-text { - color: #4CAF50 !important; } - -.green.darken-1 { - background-color: #43A047 !important; } - -.green-text.text-darken-1 { - color: #43A047 !important; } - -.green.darken-2 { - background-color: #388E3C !important; } - -.green-text.text-darken-2 { - color: #388E3C !important; } - -.green.darken-3 { - background-color: #2E7D32 !important; } - -.green-text.text-darken-3 { - color: #2E7D32 !important; } - -.green.darken-4 { - background-color: #1B5E20 !important; } - -.green-text.text-darken-4 { - color: #1B5E20 !important; } - -.green.accent-1 { - background-color: #B9F6CA !important; } - -.green-text.text-accent-1 { - color: #B9F6CA !important; } - -.green.accent-2 { - background-color: #69F0AE !important; } - -.green-text.text-accent-2 { - color: #69F0AE !important; } - -.green.accent-3 { - background-color: #00E676 !important; } - -.green-text.text-accent-3 { - color: #00E676 !important; } - -.green.accent-4 { - background-color: #00C853 !important; } - -.green-text.text-accent-4 { - color: #00C853 !important; } - -.light-green.lighten-5 { - background-color: #f1f8e9 !important; } - -.light-green-text.text-lighten-5 { - color: #f1f8e9 !important; } - -.light-green.lighten-4 { - background-color: #dcedc8 !important; } - -.light-green-text.text-lighten-4 { - color: #dcedc8 !important; } - -.light-green.lighten-3 { - background-color: #c5e1a5 !important; } - -.light-green-text.text-lighten-3 { - color: #c5e1a5 !important; } - -.light-green.lighten-2 { - background-color: #aed581 !important; } - -.light-green-text.text-lighten-2 { - color: #aed581 !important; } - -.light-green.lighten-1 { - background-color: #9ccc65 !important; } - -.light-green-text.text-lighten-1 { - color: #9ccc65 !important; } - -.light-green { - background-color: #8bc34a !important; } - -.light-green-text { - color: #8bc34a !important; } - -.light-green.darken-1 { - background-color: #7cb342 !important; } - -.light-green-text.text-darken-1 { - color: #7cb342 !important; } - -.light-green.darken-2 { - background-color: #689f38 !important; } - -.light-green-text.text-darken-2 { - color: #689f38 !important; } - -.light-green.darken-3 { - background-color: #558b2f !important; } - -.light-green-text.text-darken-3 { - color: #558b2f !important; } - -.light-green.darken-4 { - background-color: #33691e !important; } - -.light-green-text.text-darken-4 { - color: #33691e !important; } - -.light-green.accent-1 { - background-color: #ccff90 !important; } - -.light-green-text.text-accent-1 { - color: #ccff90 !important; } - -.light-green.accent-2 { - background-color: #b2ff59 !important; } - -.light-green-text.text-accent-2 { - color: #b2ff59 !important; } - -.light-green.accent-3 { - background-color: #76ff03 !important; } - -.light-green-text.text-accent-3 { - color: #76ff03 !important; } - -.light-green.accent-4 { - background-color: #64dd17 !important; } - -.light-green-text.text-accent-4 { - color: #64dd17 !important; } - -.lime.lighten-5 { - background-color: #f9fbe7 !important; } - -.lime-text.text-lighten-5 { - color: #f9fbe7 !important; } - -.lime.lighten-4 { - background-color: #f0f4c3 !important; } - -.lime-text.text-lighten-4 { - color: #f0f4c3 !important; } - -.lime.lighten-3 { - background-color: #e6ee9c !important; } - -.lime-text.text-lighten-3 { - color: #e6ee9c !important; } - -.lime.lighten-2 { - background-color: #dce775 !important; } - -.lime-text.text-lighten-2 { - color: #dce775 !important; } - -.lime.lighten-1 { - background-color: #d4e157 !important; } - -.lime-text.text-lighten-1 { - color: #d4e157 !important; } - -.lime { - background-color: #cddc39 !important; } - -.lime-text { - color: #cddc39 !important; } - -.lime.darken-1 { - background-color: #c0ca33 !important; } - -.lime-text.text-darken-1 { - color: #c0ca33 !important; } - -.lime.darken-2 { - background-color: #afb42b !important; } - -.lime-text.text-darken-2 { - color: #afb42b !important; } - -.lime.darken-3 { - background-color: #9e9d24 !important; } - -.lime-text.text-darken-3 { - color: #9e9d24 !important; } - -.lime.darken-4 { - background-color: #827717 !important; } - -.lime-text.text-darken-4 { - color: #827717 !important; } - -.lime.accent-1 { - background-color: #f4ff81 !important; } - -.lime-text.text-accent-1 { - color: #f4ff81 !important; } - -.lime.accent-2 { - background-color: #eeff41 !important; } - -.lime-text.text-accent-2 { - color: #eeff41 !important; } - -.lime.accent-3 { - background-color: #c6ff00 !important; } - -.lime-text.text-accent-3 { - color: #c6ff00 !important; } - -.lime.accent-4 { - background-color: #aeea00 !important; } - -.lime-text.text-accent-4 { - color: #aeea00 !important; } - -.yellow.lighten-5 { - background-color: #fffde7 !important; } - -.yellow-text.text-lighten-5 { - color: #fffde7 !important; } - -.yellow.lighten-4 { - background-color: #fff9c4 !important; } - -.yellow-text.text-lighten-4 { - color: #fff9c4 !important; } - -.yellow.lighten-3 { - background-color: #fff59d !important; } - -.yellow-text.text-lighten-3 { - color: #fff59d !important; } - -.yellow.lighten-2 { - background-color: #fff176 !important; } - -.yellow-text.text-lighten-2 { - color: #fff176 !important; } - -.yellow.lighten-1 { - background-color: #ffee58 !important; } - -.yellow-text.text-lighten-1 { - color: #ffee58 !important; } - -.yellow { - background-color: #ffeb3b !important; } - -.yellow-text { - color: #ffeb3b !important; } - -.yellow.darken-1 { - background-color: #fdd835 !important; } - -.yellow-text.text-darken-1 { - color: #fdd835 !important; } - -.yellow.darken-2 { - background-color: #fbc02d !important; } - -.yellow-text.text-darken-2 { - color: #fbc02d !important; } - -.yellow.darken-3 { - background-color: #f9a825 !important; } - -.yellow-text.text-darken-3 { - color: #f9a825 !important; } - -.yellow.darken-4 { - background-color: #f57f17 !important; } - -.yellow-text.text-darken-4 { - color: #f57f17 !important; } - -.yellow.accent-1 { - background-color: #ffff8d !important; } - -.yellow-text.text-accent-1 { - color: #ffff8d !important; } - -.yellow.accent-2 { - background-color: #ffff00 !important; } - -.yellow-text.text-accent-2 { - color: #ffff00 !important; } - -.yellow.accent-3 { - background-color: #ffea00 !important; } - -.yellow-text.text-accent-3 { - color: #ffea00 !important; } - -.yellow.accent-4 { - background-color: #ffd600 !important; } - -.yellow-text.text-accent-4 { - color: #ffd600 !important; } - -.amber.lighten-5 { - background-color: #fff8e1 !important; } - -.amber-text.text-lighten-5 { - color: #fff8e1 !important; } - -.amber.lighten-4 { - background-color: #ffecb3 !important; } - -.amber-text.text-lighten-4 { - color: #ffecb3 !important; } - -.amber.lighten-3 { - background-color: #ffe082 !important; } - -.amber-text.text-lighten-3 { - color: #ffe082 !important; } - -.amber.lighten-2 { - background-color: #ffd54f !important; } - -.amber-text.text-lighten-2 { - color: #ffd54f !important; } - -.amber.lighten-1 { - background-color: #ffca28 !important; } - -.amber-text.text-lighten-1 { - color: #ffca28 !important; } - -.amber { - background-color: #ffc107 !important; } - -.amber-text { - color: #ffc107 !important; } - -.amber.darken-1 { - background-color: #ffb300 !important; } - -.amber-text.text-darken-1 { - color: #ffb300 !important; } - -.amber.darken-2 { - background-color: #ffa000 !important; } - -.amber-text.text-darken-2 { - color: #ffa000 !important; } - -.amber.darken-3 { - background-color: #ff8f00 !important; } - -.amber-text.text-darken-3 { - color: #ff8f00 !important; } - -.amber.darken-4 { - background-color: #ff6f00 !important; } - -.amber-text.text-darken-4 { - color: #ff6f00 !important; } - -.amber.accent-1 { - background-color: #ffe57f !important; } - -.amber-text.text-accent-1 { - color: #ffe57f !important; } - -.amber.accent-2 { - background-color: #ffd740 !important; } - -.amber-text.text-accent-2 { - color: #ffd740 !important; } - -.amber.accent-3 { - background-color: #ffc400 !important; } - -.amber-text.text-accent-3 { - color: #ffc400 !important; } - -.amber.accent-4 { - background-color: #ffab00 !important; } - -.amber-text.text-accent-4 { - color: #ffab00 !important; } - -.orange.lighten-5 { - background-color: #fff3e0 !important; } - -.orange-text.text-lighten-5 { - color: #fff3e0 !important; } - -.orange.lighten-4 { - background-color: #ffe0b2 !important; } - -.orange-text.text-lighten-4 { - color: #ffe0b2 !important; } - -.orange.lighten-3 { - background-color: #ffcc80 !important; } - -.orange-text.text-lighten-3 { - color: #ffcc80 !important; } - -.orange.lighten-2 { - background-color: #ffb74d !important; } - -.orange-text.text-lighten-2 { - color: #ffb74d !important; } - -.orange.lighten-1 { - background-color: #ffa726 !important; } - -.orange-text.text-lighten-1 { - color: #ffa726 !important; } - -.orange { - background-color: #ff9800 !important; } - -.orange-text { - color: #ff9800 !important; } - -.orange.darken-1 { - background-color: #fb8c00 !important; } - -.orange-text.text-darken-1 { - color: #fb8c00 !important; } - -.orange.darken-2 { - background-color: #f57c00 !important; } - -.orange-text.text-darken-2 { - color: #f57c00 !important; } - -.orange.darken-3 { - background-color: #ef6c00 !important; } - -.orange-text.text-darken-3 { - color: #ef6c00 !important; } - -.orange.darken-4 { - background-color: #e65100 !important; } - -.orange-text.text-darken-4 { - color: #e65100 !important; } - -.orange.accent-1 { - background-color: #ffd180 !important; } - -.orange-text.text-accent-1 { - color: #ffd180 !important; } - -.orange.accent-2 { - background-color: #ffab40 !important; } - -.orange-text.text-accent-2 { - color: #ffab40 !important; } - -.orange.accent-3 { - background-color: #ff9100 !important; } - -.orange-text.text-accent-3 { - color: #ff9100 !important; } - -.orange.accent-4 { - background-color: #ff6d00 !important; } - -.orange-text.text-accent-4 { - color: #ff6d00 !important; } - -.deep-orange.lighten-5 { - background-color: #fbe9e7 !important; } - -.deep-orange-text.text-lighten-5 { - color: #fbe9e7 !important; } - -.deep-orange.lighten-4 { - background-color: #ffccbc !important; } - -.deep-orange-text.text-lighten-4 { - color: #ffccbc !important; } - -.deep-orange.lighten-3 { - background-color: #ffab91 !important; } - -.deep-orange-text.text-lighten-3 { - color: #ffab91 !important; } - -.deep-orange.lighten-2 { - background-color: #ff8a65 !important; } - -.deep-orange-text.text-lighten-2 { - color: #ff8a65 !important; } - -.deep-orange.lighten-1 { - background-color: #ff7043 !important; } - -.deep-orange-text.text-lighten-1 { - color: #ff7043 !important; } - -.deep-orange { - background-color: #ff5722 !important; } - -.deep-orange-text { - color: #ff5722 !important; } - -.deep-orange.darken-1 { - background-color: #f4511e !important; } - -.deep-orange-text.text-darken-1 { - color: #f4511e !important; } - -.deep-orange.darken-2 { - background-color: #e64a19 !important; } - -.deep-orange-text.text-darken-2 { - color: #e64a19 !important; } - -.deep-orange.darken-3 { - background-color: #d84315 !important; } - -.deep-orange-text.text-darken-3 { - color: #d84315 !important; } - -.deep-orange.darken-4 { - background-color: #bf360c !important; } - -.deep-orange-text.text-darken-4 { - color: #bf360c !important; } - -.deep-orange.accent-1 { - background-color: #ff9e80 !important; } - -.deep-orange-text.text-accent-1 { - color: #ff9e80 !important; } - -.deep-orange.accent-2 { - background-color: #ff6e40 !important; } - -.deep-orange-text.text-accent-2 { - color: #ff6e40 !important; } - -.deep-orange.accent-3 { - background-color: #ff3d00 !important; } - -.deep-orange-text.text-accent-3 { - color: #ff3d00 !important; } - -.deep-orange.accent-4 { - background-color: #dd2c00 !important; } - -.deep-orange-text.text-accent-4 { - color: #dd2c00 !important; } - -.brown.lighten-5 { - background-color: #efebe9 !important; } - -.brown-text.text-lighten-5 { - color: #efebe9 !important; } - -.brown.lighten-4 { - background-color: #d7ccc8 !important; } - -.brown-text.text-lighten-4 { - color: #d7ccc8 !important; } - -.brown.lighten-3 { - background-color: #bcaaa4 !important; } - -.brown-text.text-lighten-3 { - color: #bcaaa4 !important; } - -.brown.lighten-2 { - background-color: #a1887f !important; } - -.brown-text.text-lighten-2 { - color: #a1887f !important; } - -.brown.lighten-1 { - background-color: #8d6e63 !important; } - -.brown-text.text-lighten-1 { - color: #8d6e63 !important; } - -.brown { - background-color: #795548 !important; } - -.brown-text { - color: #795548 !important; } - -.brown.darken-1 { - background-color: #6d4c41 !important; } - -.brown-text.text-darken-1 { - color: #6d4c41 !important; } - -.brown.darken-2 { - background-color: #5d4037 !important; } - -.brown-text.text-darken-2 { - color: #5d4037 !important; } - -.brown.darken-3 { - background-color: #4e342e !important; } - -.brown-text.text-darken-3 { - color: #4e342e !important; } - -.brown.darken-4 { - background-color: #3e2723 !important; } - -.brown-text.text-darken-4 { - color: #3e2723 !important; } - -.blue-grey.lighten-5 { - background-color: #eceff1 !important; } - -.blue-grey-text.text-lighten-5 { - color: #eceff1 !important; } - -.blue-grey.lighten-4 { - background-color: #cfd8dc !important; } - -.blue-grey-text.text-lighten-4 { - color: #cfd8dc !important; } - -.blue-grey.lighten-3 { - background-color: #b0bec5 !important; } - -.blue-grey-text.text-lighten-3 { - color: #b0bec5 !important; } - -.blue-grey.lighten-2 { - background-color: #90a4ae !important; } - -.blue-grey-text.text-lighten-2 { - color: #90a4ae !important; } - -.blue-grey.lighten-1 { - background-color: #78909c !important; } - -.blue-grey-text.text-lighten-1 { - color: #78909c !important; } - -.blue-grey { - background-color: #607d8b !important; } - -.blue-grey-text { - color: #607d8b !important; } - -.blue-grey.darken-1 { - background-color: #546e7a !important; } - -.blue-grey-text.text-darken-1 { - color: #546e7a !important; } - -.blue-grey.darken-2 { - background-color: #455a64 !important; } - -.blue-grey-text.text-darken-2 { - color: #455a64 !important; } - -.blue-grey.darken-3 { - background-color: #37474f !important; } - -.blue-grey-text.text-darken-3 { - color: #37474f !important; } - -.blue-grey.darken-4 { - background-color: #263238 !important; } - -.blue-grey-text.text-darken-4 { - color: #263238 !important; } - -.grey.lighten-5 { - background-color: #fafafa !important; } - -.grey-text.text-lighten-5 { - color: #fafafa !important; } - -.grey.lighten-4 { - background-color: #f5f5f5 !important; } - -.grey-text.text-lighten-4 { - color: #f5f5f5 !important; } - -.grey.lighten-3 { - background-color: #eeeeee !important; } - -.grey-text.text-lighten-3 { - color: #eeeeee !important; } - -.grey.lighten-2 { - background-color: #e0e0e0 !important; } - -.grey-text.text-lighten-2 { - color: #e0e0e0 !important; } - -.grey.lighten-1 { - background-color: #bdbdbd !important; } - -.grey-text.text-lighten-1 { - color: #bdbdbd !important; } - -.grey { - background-color: #9e9e9e !important; } - -.grey-text { - color: #9e9e9e !important; } - -.grey.darken-1 { - background-color: #757575 !important; } - -.grey-text.text-darken-1 { - color: #757575 !important; } - -.grey.darken-2 { - background-color: #616161 !important; } - -.grey-text.text-darken-2 { - color: #616161 !important; } - -.grey.darken-3 { - background-color: #424242 !important; } - -.grey-text.text-darken-3 { - color: #424242 !important; } - -.grey.darken-4 { - background-color: #212121 !important; } - -.grey-text.text-darken-4 { - color: #212121 !important; } - -.shades.black { - background-color: #000000 !important; } - -.shades-text.text-black { - color: #000000 !important; } - -.shades.white { - background-color: #FFFFFF !important; } - -.shades-text.text-white { - color: #FFFFFF !important; } - -.shades.transparent { - background-color: transparent !important; } - -.shades-text.text-transparent { - color: transparent !important; } - -.black { - background-color: #000000 !important; } - -.black-text { - color: #000000 !important; } - -.white { - background-color: #FFFFFF !important; } - -.white-text { - color: #FFFFFF !important; } - -.transparent { - background-color: transparent !important; } - -.transparent-text { - color: transparent !important; } - -/*** Colors ***/ -/*** Badges ***/ -/*** Buttons ***/ -/*** Cards ***/ -/*** Collapsible ***/ -/*** Dropdown ***/ -/*** Fonts ***/ -/*** Forms ***/ -/*** Global ***/ -/*** Navbar ***/ -/*** SideNav ***/ -/*** Tabs ***/ -/*** Tables ***/ -/*** Toasts ***/ -/*** Typography ***/ -/*** Collections ***/ -/* Progress Bar */ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ -html { - font-family: sans-serif; - /* 1 */ - -ms-text-size-adjust: 100%; - /* 2 */ - -webkit-text-size-adjust: 100%; - /* 2 */ } - -/** - * Remove default margin. - */ -body { - margin: 0; } - -/* HTML5 display definitions - ========================================================================== */ -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ -article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { - display: block; } - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ -audio, canvas, progress, video { - display: inline-block; - /* 1 */ - vertical-align: baseline; - /* 2 */ } - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ -audio:not([controls]) { - display: none; - height: 0; } - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. - */ -[hidden], template { - display: none; } - -/* Links - ========================================================================== */ -/** - * Remove the gray background color from active links in IE 10. - */ -a { - background-color: transparent; } - -/** - * Improve readability when focused and also mouse hovered in all browsers. - */ -a:active, a:hover { - outline: 0; } - -/* Text-level semantics - ========================================================================== */ -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ -abbr[title] { - border-bottom: 1px dotted; } - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ -b, strong { - font-weight: bold; } - -/** - * Address styling not present in Safari and Chrome. - */ -dfn { - font-style: italic; } - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ -h1 { - font-size: 2em; - margin: 0.67em 0; } - -/** - * Address styling not present in IE 8/9. - */ -mark { - background: #ff0; - color: #000; } - -/** - * Address inconsistent and variable font size in all browsers. - */ -small { - font-size: 80%; } - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ -sub, sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; } - -sup { - top: -0.5em; } - -sub { - bottom: -0.25em; } - -/* Embedded content - ========================================================================== */ -/** - * Remove border when inside `a` element in IE 8/9/10. - */ -img { - border: 0; } - -/** - * Correct overflow not hidden in IE 9/10/11. - */ -svg:not(:root) { - overflow: hidden; } - -/* Grouping content - ========================================================================== */ -/** - * Address margin not present in IE 8/9 and Safari. - */ -figure { - margin: 1em 40px; } - -/** - * Address differences between Firefox and other browsers. - */ -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; } - -/** - * Contain overflow in all browsers. - */ -pre { - overflow: auto; } - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ -code, kbd, pre, samp { - font-family: monospace, monospace; - font-size: 1em; } - -/* Forms - ========================================================================== */ -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ -button, input, optgroup, select, textarea { - color: inherit; - /* 1 */ - font: inherit; - /* 2 */ - margin: 0; - /* 3 */ } - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ -button { - overflow: visible; } - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ -button, select { - text-transform: none; } - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ -/* 1 */ -html input[type="button"], button, input[type="reset"], input[type="submit"] { - -webkit-appearance: button; - /* 2 */ - cursor: pointer; - /* 3 */ } - -/** - * Re-set default cursor for disabled elements. - */ -button[disabled], html input[disabled] { - cursor: default; } - -/** - * Remove inner padding and border in Firefox 4+. - */ -button::-moz-focus-inner, input::-moz-focus-inner { - border: 0; - padding: 0; } - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ -input { - line-height: normal; } - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ -input[type="checkbox"], input[type="radio"] { - box-sizing: border-box; - /* 1 */ - padding: 0; - /* 2 */ } - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ -input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { - height: auto; } - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome - * (include `-moz` to future-proof). - */ -input[type="search"] { - -webkit-appearance: textfield; - /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - /* 2 */ - box-sizing: content-box; } - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ -input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; } - -/** - * Define consistent border, margin, and padding. - */ -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; } - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ -legend { - border: 0; - /* 1 */ - padding: 0; - /* 2 */ } - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ -textarea { - overflow: auto; } - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ -optgroup { - font-weight: bold; } - -/* Tables - ========================================================================== */ -/** - * Remove most spacing between table cells. - */ -table { - border-collapse: collapse; - border-spacing: 0; } - -td, th { - padding: 0; } - -html { - box-sizing: border-box; } - -*, *:before, *:after { - box-sizing: inherit; } - -ul { - list-style-type: none; } - -a { - color: #039be5; - text-decoration: none; - -webkit-tap-highlight-color: transparent; } - -.valign-wrapper { - display: -webkit-box; - display: -moz-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; } - .valign-wrapper .valign { - display: block; } - -ul { - padding: 0; } - ul li { - list-style-type: none; } - -.clearfix { - clear: both; } - -.z-depth-1, nav, .card-panel, .card, .toast, .btn, .btn-large, .btn-floating, .dropdown-content, .collapsible, .side-nav { - -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); - -moz-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); - box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); } - -.z-depth-1-half, .btn:hover, .btn-large:hover, .btn-floating:hover { - -webkit-box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); - -moz-box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); - box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); } - -.z-depth-2 { - -webkit-box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); - -moz-box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); - box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); } - -.z-depth-3 { - -webkit-box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); - -moz-box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); - box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); } - -.z-depth-4, .modal { - -webkit-box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21); - -moz-box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21); - box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21); } - -.z-depth-5 { - -webkit-box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22); - -moz-box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22); - box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22); } - -.divider { - height: 1px; - overflow: hidden; - background-color: #e0e0e0; } - -blockquote { - margin: 20px 0; - padding-left: 1.5rem; - border-left: 5px solid #EF9A9A; } - -i { - line-height: inherit; } - i.left { - float: left; - margin-right: 15px; } - i.right { - float: right; - margin-left: 15px; } - i.tiny { - font-size: 1rem; } - i.small { - font-size: 2rem; } - i.medium { - font-size: 4rem; } - i.large { - font-size: 6rem; } - -img.responsive-img, video.responsive-video { - max-width: 100%; - height: auto; } - -.pagination li { - font-size: 1.2rem; - float: left; - width: 30px; - height: 30px; - margin: 0 10px; - border-radius: 2px; - text-align: center; } - .pagination li a { - color: #444; } - .pagination li.active a { - color: #fff; } - .pagination li.active { - background-color: #ee6e73; } - .pagination li.disabled a { - color: #999; } - .pagination li i { - font-size: 2rem; - line-height: 1.8rem; } - -.parallax-container { - position: relative; - overflow: hidden; - height: 500px; } - -.parallax { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - z-index: -1; } - .parallax img { - display: none; - position: absolute; - left: 50%; - bottom: 0; - min-width: 100%; - min-height: 100%; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - transform: translateX(-50%); } - -.pin-top, .pin-bottom { - position: relative; } - -.pinned { - position: fixed !important; } - -/********************* - Transition Classes -**********************/ -ul.staggered-list li { - opacity: 0; } - -.fade-in { - opacity: 0; - transform-origin: 0 50%; } - -/********************* - Media Query Classes -**********************/ -@media only screen and (max-width : 600px) { - .hide-on-small-only, .hide-on-small-and-down { - display: none !important; } } - -@media only screen and (max-width : 992px) { - .hide-on-med-and-down { - display: none !important; } } - -@media only screen and (min-width : 601px) { - .hide-on-med-and-up { - display: none !important; } } - -@media only screen and (min-width: 600px) and (max-width: 992px) { - .hide-on-med-only { - display: none !important; } } - -@media only screen and (min-width : 993px) { - .hide-on-large-only { - display: none !important; } } - -@media only screen and (min-width : 993px) { - .show-on-large { - display: initial !important; } } - -@media only screen and (min-width: 600px) and (max-width: 992px) { - .show-on-medium { - display: initial !important; } } - -@media only screen and (max-width : 600px) { - .show-on-small { - display: initial !important; } } - -@media only screen and (min-width : 601px) { - .show-on-medium-and-up { - display: initial !important; } } - -@media only screen and (max-width : 992px) { - .show-on-medium-and-down { - display: initial !important; } } - -@media only screen and (max-width : 600px) { - .center-on-small-only { - text-align: center; } } - -footer.page-footer { - margin-top: 20px; - padding-top: 20px; - background-color: #ee6e73; } - footer.page-footer .footer-copyright { - overflow: hidden; - height: 50px; - line-height: 50px; - color: rgba(255, 255, 255, 0.8); - background-color: rgba(51, 51, 51, 0.08); } - -table, th, td { - border: none; } - -table { - width: 100%; - display: table; } - table.bordered tr { - border-bottom: 1px solid #d0d0d0; } - table.striped tbody tr:nth-child(odd) { - background-color: #f2f2f2; } - table.hoverable tbody tr { - -webkit-transition: background-color .25s ease; - -moz-transition: background-color .25s ease; - -o-transition: background-color .25s ease; - -ms-transition: background-color .25s ease; - transition: background-color .25s ease; } - table.hoverable tbody tr:hover { - background-color: #f2f2f2; } - table.centered thead tr th, table.centered tbody tr td { - text-align: center; } - -thead { - border-bottom: 1px solid #d0d0d0; } - -td, th { - padding: 15px 5px; - display: table-cell; - text-align: left; - vertical-align: middle; - border-radius: 2px; } - -@media only screen and (max-width : 992px) { - table.responsive-table { - width: 100%; - border-collapse: collapse; - border-spacing: 0; - display: block; - position: relative; - /* sort out borders */ } - table.responsive-table th, table.responsive-table td { - margin: 0; - vertical-align: top; } - table.responsive-table th { - text-align: left; } - table.responsive-table thead { - display: block; - float: left; } - table.responsive-table thead tr { - display: block; - padding: 0 10px 0 0; } - table.responsive-table thead tr th::before { - content: "\00a0"; } - table.responsive-table tbody { - display: block; - width: auto; - position: relative; - overflow-x: auto; - white-space: nowrap; } - table.responsive-table tbody tr { - display: inline-block; - vertical-align: top; } - table.responsive-table th { - display: block; - text-align: right; } - table.responsive-table td { - display: block; - min-height: 1.25em; - text-align: left; } - table.responsive-table tr { - padding: 0 10px; } - table.responsive-table thead { - border: 0; - border-right: 1px solid #d0d0d0; } - table.responsive-table.bordered th { - border-bottom: 0; - border-left: 0; } - table.responsive-table.bordered td { - border-left: 0; - border-right: 0; - border-bottom: 0; } - table.responsive-table.bordered tr { - border: 0; } - table.responsive-table.bordered tbody tr { - border-right: 1px solid #d0d0d0; } } - -.collection { - margin: 0.5rem 0 1rem 0; - border: 1px solid #e0e0e0; - border-radius: 2px; - overflow: hidden; - position: relative; } - .collection .collection-item { - background-color: #fff; - line-height: 1.5rem; - padding: 10px 20px; - margin: 0; - border-bottom: 1px solid #e0e0e0; } - .collection .collection-item.avatar { - height: 84px; - padding-left: 72px; - position: relative; } - .collection .collection-item.avatar .circle { - position: absolute; - width: 42px; - height: 42px; - overflow: hidden; - left: 15px; - display: inline-block; - vertical-align: middle; } - .collection .collection-item.avatar i.circle { - font-size: 18px; - line-height: 42px; - color: #fff; - background-color: #999; - text-align: center; } - .collection .collection-item.avatar .title { - font-size: 16px; } - .collection .collection-item.avatar p { - margin: 0; } - .collection .collection-item.avatar .secondary-content { - position: absolute; - top: 16px; - right: 16px; } - .collection .collection-item:last-child { - border-bottom: none; } - .collection .collection-item.active { - background-color: #26a69a; - color: #eafaf9; } - .collection a.collection-item { - display: block; - -webkit-transition: 0.25s; - -moz-transition: 0.25s; - -o-transition: 0.25s; - -ms-transition: 0.25s; - transition: 0.25s; - color: #26a69a; } - .collection a.collection-item:not(.active):hover { - background-color: #ddd; } - .collection.with-header .collection-header { - background-color: #fff; - border-bottom: 1px solid #e0e0e0; - padding: 10px 20px; } - .collection.with-header .collection-item { - padding-left: 30px; } - -.secondary-content { - float: right; - color: #26a69a; } - -span.badge { - min-width: 3rem; - padding: 0 6px; - text-align: center; - font-size: 1rem; - line-height: inherit; - color: #757575; - position: absolute; - right: 15px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; } - span.badge.new { - font-weight: 300; - font-size: 0.8rem; - color: #fff; - background-color: #26a69a; - border-radius: 2px; } - span.badge.new:after { - content: " new"; } - -.video-container { - position: relative; - padding-bottom: 56.25%; - padding-top: 30px; - height: 0; - overflow: hidden; } - .video-container.no-controls { - padding-top: 0; } - .video-container iframe, .video-container object, .video-container embed { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; } - -.progress { - position: relative; - height: 4px; - display: block; - width: 100%; - background-color: #acece6; - border-radius: 2px; - margin: 0.5rem 0 1rem 0; - overflow: hidden; } - .progress .determinate { - position: absolute; - background-color: inherit; - top: 0; - bottom: 0; - background-color: #26a69a; - -webkit-transition: width .3s linear; - -moz-transition: width .3s linear; - -o-transition: width .3s linear; - -ms-transition: width .3s linear; - transition: width .3s linear; } - .progress .indeterminate { - background-color: #26a69a; } - .progress .indeterminate:before { - content: ''; - position: absolute; - background-color: inherit; - top: 0; - left: 0; - bottom: 0; - will-change: left, right; - -webkit-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; - -moz-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; - -ms-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; - -o-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; - animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; } - .progress .indeterminate:after { - content: ''; - position: absolute; - background-color: inherit; - top: 0; - left: 0; - bottom: 0; - will-change: left, right; - -webkit-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; - -moz-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; - -ms-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; - -o-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; - animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; - -webkit-animation-delay: 1.15s; - -moz-animation-delay: 1.15s; - -ms-animation-delay: 1.15s; - -o-animation-delay: 1.15s; - animation-delay: 1.15s; } - -@-webkit-keyframes indeterminate { - 0% { - left: -35%; - right: 100%; } - - 60% { - left: 100%; - right: -90%; } - - 100% { - left: 100%; - right: -90%; } } - -@-moz-keyframes indeterminate { - 0% { - left: -35%; - right: 100%; } - - 60% { - left: 100%; - right: -90%; } - - 100% { - left: 100%; - right: -90%; } } - -@keyframes indeterminate { - 0% { - left: -35%; - right: 100%; } - - 60% { - left: 100%; - right: -90%; } - - 100% { - left: 100%; - right: -90%; } } - -@-webkit-keyframes indeterminate-short { - 0% { - left: -200%; - right: 100%; } - - 60% { - left: 107%; - right: -8%; } - - 100% { - left: 107%; - right: -8%; } } - -@-moz-keyframes indeterminate-short { - 0% { - left: -200%; - right: 100%; } - - 60% { - left: 107%; - right: -8%; } - - 100% { - left: 107%; - right: -8%; } } - -@keyframes indeterminate-short { - 0% { - left: -200%; - right: 100%; } - - 60% { - left: 107%; - right: -8%; } - - 100% { - left: 107%; - right: -8%; } } - -/******************* - Utility Classes -*******************/ -.hide { - display: none !important; } - -.left-align { - text-align: left; } - -.right-align { - text-align: right; } - -.center, .center-align { - text-align: center; } - -.left { - float: left !important; } - -.right { - float: right !important; } - -.no-select, input[type=range], input[type=range] + .thumb { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -.circle { - border-radius: 50%; } - -.center-block { - display: block; - margin-left: auto; - margin-right: auto; } - -.truncate { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - -.no-padding { - padding: 0 !important; } - -@font-face { - font-family: "Material-Design-Icons"; - src: url("../font/material-design-icons/Material-Design-Icons.eot?#iefix") format("embedded-opentype"), url("../font/material-design-icons/Material-Design-Icons.woff2") format("woff2"), url("../font/material-design-icons/Material-Design-Icons.woff") format("woff"), url("../font/material-design-icons/Material-Design-Icons.ttf") format("truetype"), url("../font/material-design-icons/Material-Design-Icons.svg#Material-Design-Icons") format("svg"); - font-weight: normal; - font-style: normal; } - -[class^="mdi-"], [class*=" mdi-"] { - font-family: "Material-Design-Icons"; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - text-rendering: auto; - /* Better Font Rendering =========== */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; } - -.mdi-action-3d-rotation:before { - content: "\e600"; } - -.mdi-action-accessibility:before { - content: "\e601"; } - -.mdi-action-account-balance:before { - content: "\e602"; } - -.mdi-action-account-balance-wallet:before { - content: "\e603"; } - -.mdi-action-account-box:before { - content: "\e604"; } - -.mdi-action-account-child:before { - content: "\e605"; } - -.mdi-action-account-circle:before { - content: "\e606"; } - -.mdi-action-add-shopping-cart:before { - content: "\e607"; } - -.mdi-action-alarm:before { - content: "\e608"; } - -.mdi-action-alarm-add:before { - content: "\e609"; } - -.mdi-action-alarm-off:before { - content: "\e60a"; } - -.mdi-action-alarm-on:before { - content: "\e60b"; } - -.mdi-action-android:before { - content: "\e60c"; } - -.mdi-action-announcement:before { - content: "\e60d"; } - -.mdi-action-aspect-ratio:before { - content: "\e60e"; } - -.mdi-action-assessment:before { - content: "\e60f"; } - -.mdi-action-assignment:before { - content: "\e610"; } - -.mdi-action-assignment-ind:before { - content: "\e611"; } - -.mdi-action-assignment-late:before { - content: "\e612"; } - -.mdi-action-assignment-return:before { - content: "\e613"; } - -.mdi-action-assignment-returned:before { - content: "\e614"; } - -.mdi-action-assignment-turned-in:before { - content: "\e615"; } - -.mdi-action-autorenew:before { - content: "\e616"; } - -.mdi-action-backup:before { - content: "\e617"; } - -.mdi-action-book:before { - content: "\e618"; } - -.mdi-action-bookmark:before { - content: "\e619"; } - -.mdi-action-bookmark-outline:before { - content: "\e61a"; } - -.mdi-action-bug-report:before { - content: "\e61b"; } - -.mdi-action-cached:before { - content: "\e61c"; } - -.mdi-action-class:before { - content: "\e61d"; } - -.mdi-action-credit-card:before { - content: "\e61e"; } - -.mdi-action-dashboard:before { - content: "\e61f"; } - -.mdi-action-delete:before { - content: "\e620"; } - -.mdi-action-description:before { - content: "\e621"; } - -.mdi-action-dns:before { - content: "\e622"; } - -.mdi-action-done:before { - content: "\e623"; } - -.mdi-action-done-all:before { - content: "\e624"; } - -.mdi-action-event:before { - content: "\e625"; } - -.mdi-action-exit-to-app:before { - content: "\e626"; } - -.mdi-action-explore:before { - content: "\e627"; } - -.mdi-action-extension:before { - content: "\e628"; } - -.mdi-action-face-unlock:before { - content: "\e629"; } - -.mdi-action-favorite:before { - content: "\e62a"; } - -.mdi-action-favorite-outline:before { - content: "\e62b"; } - -.mdi-action-find-in-page:before { - content: "\e62c"; } - -.mdi-action-find-replace:before { - content: "\e62d"; } - -.mdi-action-flip-to-back:before { - content: "\e62e"; } - -.mdi-action-flip-to-front:before { - content: "\e62f"; } - -.mdi-action-get-app:before { - content: "\e630"; } - -.mdi-action-grade:before { - content: "\e631"; } - -.mdi-action-group-work:before { - content: "\e632"; } - -.mdi-action-help:before { - content: "\e633"; } - -.mdi-action-highlight-remove:before { - content: "\e634"; } - -.mdi-action-history:before { - content: "\e635"; } - -.mdi-action-home:before { - content: "\e636"; } - -.mdi-action-https:before { - content: "\e637"; } - -.mdi-action-info:before { - content: "\e638"; } - -.mdi-action-info-outline:before { - content: "\e639"; } - -.mdi-action-input:before { - content: "\e63a"; } - -.mdi-action-invert-colors:before { - content: "\e63b"; } - -.mdi-action-label:before { - content: "\e63c"; } - -.mdi-action-label-outline:before { - content: "\e63d"; } - -.mdi-action-language:before { - content: "\e63e"; } - -.mdi-action-launch:before { - content: "\e63f"; } - -.mdi-action-list:before { - content: "\e640"; } - -.mdi-action-lock:before { - content: "\e641"; } - -.mdi-action-lock-open:before { - content: "\e642"; } - -.mdi-action-lock-outline:before { - content: "\e643"; } - -.mdi-action-loyalty:before { - content: "\e644"; } - -.mdi-action-markunread-mailbox:before { - content: "\e645"; } - -.mdi-action-note-add:before { - content: "\e646"; } - -.mdi-action-open-in-browser:before { - content: "\e647"; } - -.mdi-action-open-in-new:before { - content: "\e648"; } - -.mdi-action-open-with:before { - content: "\e649"; } - -.mdi-action-pageview:before { - content: "\e64a"; } - -.mdi-action-payment:before { - content: "\e64b"; } - -.mdi-action-perm-camera-mic:before { - content: "\e64c"; } - -.mdi-action-perm-contact-cal:before { - content: "\e64d"; } - -.mdi-action-perm-data-setting:before { - content: "\e64e"; } - -.mdi-action-perm-device-info:before { - content: "\e64f"; } - -.mdi-action-perm-identity:before { - content: "\e650"; } - -.mdi-action-perm-media:before { - content: "\e651"; } - -.mdi-action-perm-phone-msg:before { - content: "\e652"; } - -.mdi-action-perm-scan-wifi:before { - content: "\e653"; } - -.mdi-action-picture-in-picture:before { - content: "\e654"; } - -.mdi-action-polymer:before { - content: "\e655"; } - -.mdi-action-print:before { - content: "\e656"; } - -.mdi-action-query-builder:before { - content: "\e657"; } - -.mdi-action-question-answer:before { - content: "\e658"; } - -.mdi-action-receipt:before { - content: "\e659"; } - -.mdi-action-redeem:before { - content: "\e65a"; } - -.mdi-action-report-problem:before { - content: "\e65b"; } - -.mdi-action-restore:before { - content: "\e65c"; } - -.mdi-action-room:before { - content: "\e65d"; } - -.mdi-action-schedule:before { - content: "\e65e"; } - -.mdi-action-search:before { - content: "\e65f"; } - -.mdi-action-settings:before { - content: "\e660"; } - -.mdi-action-settings-applications:before { - content: "\e661"; } - -.mdi-action-settings-backup-restore:before { - content: "\e662"; } - -.mdi-action-settings-bluetooth:before { - content: "\e663"; } - -.mdi-action-settings-cell:before { - content: "\e664"; } - -.mdi-action-settings-display:before { - content: "\e665"; } - -.mdi-action-settings-ethernet:before { - content: "\e666"; } - -.mdi-action-settings-input-antenna:before { - content: "\e667"; } - -.mdi-action-settings-input-component:before { - content: "\e668"; } - -.mdi-action-settings-input-composite:before { - content: "\e669"; } - -.mdi-action-settings-input-hdmi:before { - content: "\e66a"; } - -.mdi-action-settings-input-svideo:before { - content: "\e66b"; } - -.mdi-action-settings-overscan:before { - content: "\e66c"; } - -.mdi-action-settings-phone:before { - content: "\e66d"; } - -.mdi-action-settings-power:before { - content: "\e66e"; } - -.mdi-action-settings-remote:before { - content: "\e66f"; } - -.mdi-action-settings-voice:before { - content: "\e670"; } - -.mdi-action-shop:before { - content: "\e671"; } - -.mdi-action-shopping-basket:before { - content: "\e672"; } - -.mdi-action-shopping-cart:before { - content: "\e673"; } - -.mdi-action-shop-two:before { - content: "\e674"; } - -.mdi-action-speaker-notes:before { - content: "\e675"; } - -.mdi-action-spellcheck:before { - content: "\e676"; } - -.mdi-action-star-rate:before { - content: "\e677"; } - -.mdi-action-stars:before { - content: "\e678"; } - -.mdi-action-store:before { - content: "\e679"; } - -.mdi-action-subject:before { - content: "\e67a"; } - -.mdi-action-swap-horiz:before { - content: "\e67b"; } - -.mdi-action-swap-vert:before { - content: "\e67c"; } - -.mdi-action-swap-vert-circle:before { - content: "\e67d"; } - -.mdi-action-system-update-tv:before { - content: "\e67e"; } - -.mdi-action-tab:before { - content: "\e67f"; } - -.mdi-action-tab-unselected:before { - content: "\e680"; } - -.mdi-action-theaters:before { - content: "\e681"; } - -.mdi-action-thumb-down:before { - content: "\e682"; } - -.mdi-action-thumbs-up-down:before { - content: "\e683"; } - -.mdi-action-thumb-up:before { - content: "\e684"; } - -.mdi-action-toc:before { - content: "\e685"; } - -.mdi-action-today:before { - content: "\e686"; } - -.mdi-action-track-changes:before { - content: "\e687"; } - -.mdi-action-translate:before { - content: "\e688"; } - -.mdi-action-trending-down:before { - content: "\e689"; } - -.mdi-action-trending-neutral:before { - content: "\e68a"; } - -.mdi-action-trending-up:before { - content: "\e68b"; } - -.mdi-action-turned-in:before { - content: "\e68c"; } - -.mdi-action-turned-in-not:before { - content: "\e68d"; } - -.mdi-action-verified-user:before { - content: "\e68e"; } - -.mdi-action-view-agenda:before { - content: "\e68f"; } - -.mdi-action-view-array:before { - content: "\e690"; } - -.mdi-action-view-carousel:before { - content: "\e691"; } - -.mdi-action-view-column:before { - content: "\e692"; } - -.mdi-action-view-day:before { - content: "\e693"; } - -.mdi-action-view-headline:before { - content: "\e694"; } - -.mdi-action-view-list:before { - content: "\e695"; } - -.mdi-action-view-module:before { - content: "\e696"; } - -.mdi-action-view-quilt:before { - content: "\e697"; } - -.mdi-action-view-stream:before { - content: "\e698"; } - -.mdi-action-view-week:before { - content: "\e699"; } - -.mdi-action-visibility:before { - content: "\e69a"; } - -.mdi-action-visibility-off:before { - content: "\e69b"; } - -.mdi-action-wallet-giftcard:before { - content: "\e69c"; } - -.mdi-action-wallet-membership:before { - content: "\e69d"; } - -.mdi-action-wallet-travel:before { - content: "\e69e"; } - -.mdi-action-work:before { - content: "\e69f"; } - -.mdi-alert-error:before { - content: "\e6a0"; } - -.mdi-alert-warning:before { - content: "\e6a1"; } - -.mdi-av-album:before { - content: "\e6a2"; } - -.mdi-av-timer:before { - content: "\e6a3"; } - -.mdi-av-closed-caption:before { - content: "\e6a4"; } - -.mdi-av-equalizer:before { - content: "\e6a5"; } - -.mdi-av-explicit:before { - content: "\e6a6"; } - -.mdi-av-fast-forward:before { - content: "\e6a7"; } - -.mdi-av-fast-rewind:before { - content: "\e6a8"; } - -.mdi-av-games:before { - content: "\e6a9"; } - -.mdi-av-hearing:before { - content: "\e6aa"; } - -.mdi-av-high-quality:before { - content: "\e6ab"; } - -.mdi-av-loop:before { - content: "\e6ac"; } - -.mdi-av-mic:before { - content: "\e6ad"; } - -.mdi-av-mic-none:before { - content: "\e6ae"; } - -.mdi-av-mic-off:before { - content: "\e6af"; } - -.mdi-av-movie:before { - content: "\e6b0"; } - -.mdi-av-my-library-add:before { - content: "\e6b1"; } - -.mdi-av-my-library-books:before { - content: "\e6b2"; } - -.mdi-av-my-library-music:before { - content: "\e6b3"; } - -.mdi-av-new-releases:before { - content: "\e6b4"; } - -.mdi-av-not-interested:before { - content: "\e6b5"; } - -.mdi-av-pause:before { - content: "\e6b6"; } - -.mdi-av-pause-circle-fill:before { - content: "\e6b7"; } - -.mdi-av-pause-circle-outline:before { - content: "\e6b8"; } - -.mdi-av-play-arrow:before { - content: "\e6b9"; } - -.mdi-av-play-circle-fill:before { - content: "\e6ba"; } - -.mdi-av-play-circle-outline:before { - content: "\e6bb"; } - -.mdi-av-playlist-add:before { - content: "\e6bc"; } - -.mdi-av-play-shopping-bag:before { - content: "\e6bd"; } - -.mdi-av-queue:before { - content: "\e6be"; } - -.mdi-av-queue-music:before { - content: "\e6bf"; } - -.mdi-av-radio:before { - content: "\e6c0"; } - -.mdi-av-recent-actors:before { - content: "\e6c1"; } - -.mdi-av-repeat:before { - content: "\e6c2"; } - -.mdi-av-repeat-one:before { - content: "\e6c3"; } - -.mdi-av-replay:before { - content: "\e6c4"; } - -.mdi-av-shuffle:before { - content: "\e6c5"; } - -.mdi-av-skip-next:before { - content: "\e6c6"; } - -.mdi-av-skip-previous:before { - content: "\e6c7"; } - -.mdi-av-snooze:before { - content: "\e6c8"; } - -.mdi-av-stop:before { - content: "\e6c9"; } - -.mdi-av-subtitles:before { - content: "\e6ca"; } - -.mdi-av-surround-sound:before { - content: "\e6cb"; } - -.mdi-av-videocam:before { - content: "\e6cc"; } - -.mdi-av-videocam-off:before { - content: "\e6cd"; } - -.mdi-av-video-collection:before { - content: "\e6ce"; } - -.mdi-av-volume-down:before { - content: "\e6cf"; } - -.mdi-av-volume-mute:before { - content: "\e6d0"; } - -.mdi-av-volume-off:before { - content: "\e6d1"; } - -.mdi-av-volume-up:before { - content: "\e6d2"; } - -.mdi-av-web:before { - content: "\e6d3"; } - -.mdi-communication-business:before { - content: "\e6d4"; } - -.mdi-communication-call:before { - content: "\e6d5"; } - -.mdi-communication-call-end:before { - content: "\e6d6"; } - -.mdi-communication-call-made:before { - content: "\e6d7"; } - -.mdi-communication-call-merge:before { - content: "\e6d8"; } - -.mdi-communication-call-missed:before { - content: "\e6d9"; } - -.mdi-communication-call-received:before { - content: "\e6da"; } - -.mdi-communication-call-split:before { - content: "\e6db"; } - -.mdi-communication-chat:before { - content: "\e6dc"; } - -.mdi-communication-clear-all:before { - content: "\e6dd"; } - -.mdi-communication-comment:before { - content: "\e6de"; } - -.mdi-communication-contacts:before { - content: "\e6df"; } - -.mdi-communication-dialer-sip:before { - content: "\e6e0"; } - -.mdi-communication-dialpad:before { - content: "\e6e1"; } - -.mdi-communication-dnd-on:before { - content: "\e6e2"; } - -.mdi-communication-email:before { - content: "\e6e3"; } - -.mdi-communication-forum:before { - content: "\e6e4"; } - -.mdi-communication-import-export:before { - content: "\e6e5"; } - -.mdi-communication-invert-colors-off:before { - content: "\e6e6"; } - -.mdi-communication-invert-colors-on:before { - content: "\e6e7"; } - -.mdi-communication-live-help:before { - content: "\e6e8"; } - -.mdi-communication-location-off:before { - content: "\e6e9"; } - -.mdi-communication-location-on:before { - content: "\e6ea"; } - -.mdi-communication-message:before { - content: "\e6eb"; } - -.mdi-communication-messenger:before { - content: "\e6ec"; } - -.mdi-communication-no-sim:before { - content: "\e6ed"; } - -.mdi-communication-phone:before { - content: "\e6ee"; } - -.mdi-communication-portable-wifi-off:before { - content: "\e6ef"; } - -.mdi-communication-quick-contacts-dialer:before { - content: "\e6f0"; } - -.mdi-communication-quick-contacts-mail:before { - content: "\e6f1"; } - -.mdi-communication-ring-volume:before { - content: "\e6f2"; } - -.mdi-communication-stay-current-landscape:before { - content: "\e6f3"; } - -.mdi-communication-stay-current-portrait:before { - content: "\e6f4"; } - -.mdi-communication-stay-primary-landscape:before { - content: "\e6f5"; } - -.mdi-communication-stay-primary-portrait:before { - content: "\e6f6"; } - -.mdi-communication-swap-calls:before { - content: "\e6f7"; } - -.mdi-communication-textsms:before { - content: "\e6f8"; } - -.mdi-communication-voicemail:before { - content: "\e6f9"; } - -.mdi-communication-vpn-key:before { - content: "\e6fa"; } - -.mdi-content-add:before { - content: "\e6fb"; } - -.mdi-content-add-box:before { - content: "\e6fc"; } - -.mdi-content-add-circle:before { - content: "\e6fd"; } - -.mdi-content-add-circle-outline:before { - content: "\e6fe"; } - -.mdi-content-archive:before { - content: "\e6ff"; } - -.mdi-content-backspace:before { - content: "\e700"; } - -.mdi-content-block:before { - content: "\e701"; } - -.mdi-content-clear:before { - content: "\e702"; } - -.mdi-content-content-copy:before { - content: "\e703"; } - -.mdi-content-content-cut:before { - content: "\e704"; } - -.mdi-content-content-paste:before { - content: "\e705"; } - -.mdi-content-create:before { - content: "\e706"; } - -.mdi-content-drafts:before { - content: "\e707"; } - -.mdi-content-filter-list:before { - content: "\e708"; } - -.mdi-content-flag:before { - content: "\e709"; } - -.mdi-content-forward:before { - content: "\e70a"; } - -.mdi-content-gesture:before { - content: "\e70b"; } - -.mdi-content-inbox:before { - content: "\e70c"; } - -.mdi-content-link:before { - content: "\e70d"; } - -.mdi-content-mail:before { - content: "\e70e"; } - -.mdi-content-markunread:before { - content: "\e70f"; } - -.mdi-content-redo:before { - content: "\e710"; } - -.mdi-content-remove:before { - content: "\e711"; } - -.mdi-content-remove-circle:before { - content: "\e712"; } - -.mdi-content-remove-circle-outline:before { - content: "\e713"; } - -.mdi-content-reply:before { - content: "\e714"; } - -.mdi-content-reply-all:before { - content: "\e715"; } - -.mdi-content-report:before { - content: "\e716"; } - -.mdi-content-save:before { - content: "\e717"; } - -.mdi-content-select-all:before { - content: "\e718"; } - -.mdi-content-send:before { - content: "\e719"; } - -.mdi-content-sort:before { - content: "\e71a"; } - -.mdi-content-text-format:before { - content: "\e71b"; } - -.mdi-content-undo:before { - content: "\e71c"; } - -.mdi-device-access-alarm:before { - content: "\e71d"; } - -.mdi-device-access-alarms:before { - content: "\e71e"; } - -.mdi-device-access-time:before { - content: "\e71f"; } - -.mdi-device-add-alarm:before { - content: "\e720"; } - -.mdi-device-airplanemode-off:before { - content: "\e721"; } - -.mdi-device-airplanemode-on:before { - content: "\e722"; } - -.mdi-device-battery-20:before { - content: "\e723"; } - -.mdi-device-battery-30:before { - content: "\e724"; } - -.mdi-device-battery-50:before { - content: "\e725"; } - -.mdi-device-battery-60:before { - content: "\e726"; } - -.mdi-device-battery-80:before { - content: "\e727"; } - -.mdi-device-battery-90:before { - content: "\e728"; } - -.mdi-device-battery-alert:before { - content: "\e729"; } - -.mdi-device-battery-charging-20:before { - content: "\e72a"; } - -.mdi-device-battery-charging-30:before { - content: "\e72b"; } - -.mdi-device-battery-charging-50:before { - content: "\e72c"; } - -.mdi-device-battery-charging-60:before { - content: "\e72d"; } - -.mdi-device-battery-charging-80:before { - content: "\e72e"; } - -.mdi-device-battery-charging-90:before { - content: "\e72f"; } - -.mdi-device-battery-charging-full:before { - content: "\e730"; } - -.mdi-device-battery-full:before { - content: "\e731"; } - -.mdi-device-battery-std:before { - content: "\e732"; } - -.mdi-device-battery-unknown:before { - content: "\e733"; } - -.mdi-device-bluetooth:before { - content: "\e734"; } - -.mdi-device-bluetooth-connected:before { - content: "\e735"; } - -.mdi-device-bluetooth-disabled:before { - content: "\e736"; } - -.mdi-device-bluetooth-searching:before { - content: "\e737"; } - -.mdi-device-brightness-auto:before { - content: "\e738"; } - -.mdi-device-brightness-high:before { - content: "\e739"; } - -.mdi-device-brightness-low:before { - content: "\e73a"; } - -.mdi-device-brightness-medium:before { - content: "\e73b"; } - -.mdi-device-data-usage:before { - content: "\e73c"; } - -.mdi-device-developer-mode:before { - content: "\e73d"; } - -.mdi-device-devices:before { - content: "\e73e"; } - -.mdi-device-dvr:before { - content: "\e73f"; } - -.mdi-device-gps-fixed:before { - content: "\e740"; } - -.mdi-device-gps-not-fixed:before { - content: "\e741"; } - -.mdi-device-gps-off:before { - content: "\e742"; } - -.mdi-device-location-disabled:before { - content: "\e743"; } - -.mdi-device-location-searching:before { - content: "\e744"; } - -.mdi-device-multitrack-audio:before { - content: "\e745"; } - -.mdi-device-network-cell:before { - content: "\e746"; } - -.mdi-device-network-wifi:before { - content: "\e747"; } - -.mdi-device-nfc:before { - content: "\e748"; } - -.mdi-device-now-wallpaper:before { - content: "\e749"; } - -.mdi-device-now-widgets:before { - content: "\e74a"; } - -.mdi-device-screen-lock-landscape:before { - content: "\e74b"; } - -.mdi-device-screen-lock-portrait:before { - content: "\e74c"; } - -.mdi-device-screen-lock-rotation:before { - content: "\e74d"; } - -.mdi-device-screen-rotation:before { - content: "\e74e"; } - -.mdi-device-sd-storage:before { - content: "\e74f"; } - -.mdi-device-settings-system-daydream:before { - content: "\e750"; } - -.mdi-device-signal-cellular-0-bar:before { - content: "\e751"; } - -.mdi-device-signal-cellular-1-bar:before { - content: "\e752"; } - -.mdi-device-signal-cellular-2-bar:before { - content: "\e753"; } - -.mdi-device-signal-cellular-3-bar:before { - content: "\e754"; } - -.mdi-device-signal-cellular-4-bar:before { - content: "\e755"; } - -.mdi-device-signal-cellular-connected-no-internet-0-bar:before { - content: "\e756"; } - -.mdi-device-signal-cellular-connected-no-internet-1-bar:before { - content: "\e757"; } - -.mdi-device-signal-cellular-connected-no-internet-2-bar:before { - content: "\e758"; } - -.mdi-device-signal-cellular-connected-no-internet-3-bar:before { - content: "\e759"; } - -.mdi-device-signal-cellular-connected-no-internet-4-bar:before { - content: "\e75a"; } - -.mdi-device-signal-cellular-no-sim:before { - content: "\e75b"; } - -.mdi-device-signal-cellular-null:before { - content: "\e75c"; } - -.mdi-device-signal-cellular-off:before { - content: "\e75d"; } - -.mdi-device-signal-wifi-0-bar:before { - content: "\e75e"; } - -.mdi-device-signal-wifi-1-bar:before { - content: "\e75f"; } - -.mdi-device-signal-wifi-2-bar:before { - content: "\e760"; } - -.mdi-device-signal-wifi-3-bar:before { - content: "\e761"; } - -.mdi-device-signal-wifi-4-bar:before { - content: "\e762"; } - -.mdi-device-signal-wifi-off:before { - content: "\e763"; } - -.mdi-device-storage:before { - content: "\e764"; } - -.mdi-device-usb:before { - content: "\e765"; } - -.mdi-device-wifi-lock:before { - content: "\e766"; } - -.mdi-device-wifi-tethering:before { - content: "\e767"; } - -.mdi-editor-attach-file:before { - content: "\e768"; } - -.mdi-editor-attach-money:before { - content: "\e769"; } - -.mdi-editor-border-all:before { - content: "\e76a"; } - -.mdi-editor-border-bottom:before { - content: "\e76b"; } - -.mdi-editor-border-clear:before { - content: "\e76c"; } - -.mdi-editor-border-color:before { - content: "\e76d"; } - -.mdi-editor-border-horizontal:before { - content: "\e76e"; } - -.mdi-editor-border-inner:before { - content: "\e76f"; } - -.mdi-editor-border-left:before { - content: "\e770"; } - -.mdi-editor-border-outer:before { - content: "\e771"; } - -.mdi-editor-border-right:before { - content: "\e772"; } - -.mdi-editor-border-style:before { - content: "\e773"; } - -.mdi-editor-border-top:before { - content: "\e774"; } - -.mdi-editor-border-vertical:before { - content: "\e775"; } - -.mdi-editor-format-align-center:before { - content: "\e776"; } - -.mdi-editor-format-align-justify:before { - content: "\e777"; } - -.mdi-editor-format-align-left:before { - content: "\e778"; } - -.mdi-editor-format-align-right:before { - content: "\e779"; } - -.mdi-editor-format-bold:before { - content: "\e77a"; } - -.mdi-editor-format-clear:before { - content: "\e77b"; } - -.mdi-editor-format-color-fill:before { - content: "\e77c"; } - -.mdi-editor-format-color-reset:before { - content: "\e77d"; } - -.mdi-editor-format-color-text:before { - content: "\e77e"; } - -.mdi-editor-format-indent-decrease:before { - content: "\e77f"; } - -.mdi-editor-format-indent-increase:before { - content: "\e780"; } - -.mdi-editor-format-italic:before { - content: "\e781"; } - -.mdi-editor-format-line-spacing:before { - content: "\e782"; } - -.mdi-editor-format-list-bulleted:before { - content: "\e783"; } - -.mdi-editor-format-list-numbered:before { - content: "\e784"; } - -.mdi-editor-format-paint:before { - content: "\e785"; } - -.mdi-editor-format-quote:before { - content: "\e786"; } - -.mdi-editor-format-size:before { - content: "\e787"; } - -.mdi-editor-format-strikethrough:before { - content: "\e788"; } - -.mdi-editor-functions:before { - content: "\e789"; } - -.mdi-editor-format-textdirection-l-to-r:before { - content: "\e78a"; } - -.mdi-editor-format-underline:before { - content: "\e78b"; } - -.mdi-editor-format-textdirection-r-to-l:before { - content: "\e78c"; } - -.mdi-editor-insert-chart:before { - content: "\e78d"; } - -.mdi-editor-insert-comment:before { - content: "\e78e"; } - -.mdi-editor-insert-drive-file:before { - content: "\e78f"; } - -.mdi-editor-insert-emoticon:before { - content: "\e790"; } - -.mdi-editor-insert-invitation:before { - content: "\e791"; } - -.mdi-editor-insert-link:before { - content: "\e792"; } - -.mdi-editor-insert-photo:before { - content: "\e793"; } - -.mdi-editor-merge-type:before { - content: "\e794"; } - -.mdi-editor-mode-comment:before { - content: "\e795"; } - -.mdi-editor-mode-edit:before { - content: "\e796"; } - -.mdi-editor-publish:before { - content: "\e797"; } - -.mdi-editor-vertical-align-bottom:before { - content: "\e798"; } - -.mdi-editor-vertical-align-center:before { - content: "\e799"; } - -.mdi-editor-vertical-align-top:before { - content: "\e79a"; } - -.mdi-editor-wrap-text:before { - content: "\e79b"; } - -.mdi-file-attachment:before { - content: "\e79c"; } - -.mdi-file-cloud:before { - content: "\e79d"; } - -.mdi-file-cloud-circle:before { - content: "\e79e"; } - -.mdi-file-cloud-done:before { - content: "\e79f"; } - -.mdi-file-cloud-download:before { - content: "\e7a0"; } - -.mdi-file-cloud-off:before { - content: "\e7a1"; } - -.mdi-file-cloud-queue:before { - content: "\e7a2"; } - -.mdi-file-cloud-upload:before { - content: "\e7a3"; } - -.mdi-file-file-download:before { - content: "\e7a4"; } - -.mdi-file-file-upload:before { - content: "\e7a5"; } - -.mdi-file-folder:before { - content: "\e7a6"; } - -.mdi-file-folder-open:before { - content: "\e7a7"; } - -.mdi-file-folder-shared:before { - content: "\e7a8"; } - -.mdi-hardware-cast:before { - content: "\e7a9"; } - -.mdi-hardware-cast-connected:before { - content: "\e7aa"; } - -.mdi-hardware-computer:before { - content: "\e7ab"; } - -.mdi-hardware-desktop-mac:before { - content: "\e7ac"; } - -.mdi-hardware-desktop-windows:before { - content: "\e7ad"; } - -.mdi-hardware-dock:before { - content: "\e7ae"; } - -.mdi-hardware-gamepad:before { - content: "\e7af"; } - -.mdi-hardware-headset:before { - content: "\e7b0"; } - -.mdi-hardware-headset-mic:before { - content: "\e7b1"; } - -.mdi-hardware-keyboard:before { - content: "\e7b2"; } - -.mdi-hardware-keyboard-alt:before { - content: "\e7b3"; } - -.mdi-hardware-keyboard-arrow-down:before { - content: "\e7b4"; } - -.mdi-hardware-keyboard-arrow-left:before { - content: "\e7b5"; } - -.mdi-hardware-keyboard-arrow-right:before { - content: "\e7b6"; } - -.mdi-hardware-keyboard-arrow-up:before { - content: "\e7b7"; } - -.mdi-hardware-keyboard-backspace:before { - content: "\e7b8"; } - -.mdi-hardware-keyboard-capslock:before { - content: "\e7b9"; } - -.mdi-hardware-keyboard-control:before { - content: "\e7ba"; } - -.mdi-hardware-keyboard-hide:before { - content: "\e7bb"; } - -.mdi-hardware-keyboard-return:before { - content: "\e7bc"; } - -.mdi-hardware-keyboard-tab:before { - content: "\e7bd"; } - -.mdi-hardware-keyboard-voice:before { - content: "\e7be"; } - -.mdi-hardware-laptop:before { - content: "\e7bf"; } - -.mdi-hardware-laptop-chromebook:before { - content: "\e7c0"; } - -.mdi-hardware-laptop-mac:before { - content: "\e7c1"; } - -.mdi-hardware-laptop-windows:before { - content: "\e7c2"; } - -.mdi-hardware-memory:before { - content: "\e7c3"; } - -.mdi-hardware-mouse:before { - content: "\e7c4"; } - -.mdi-hardware-phone-android:before { - content: "\e7c5"; } - -.mdi-hardware-phone-iphone:before { - content: "\e7c6"; } - -.mdi-hardware-phonelink:before { - content: "\e7c7"; } - -.mdi-hardware-phonelink-off:before { - content: "\e7c8"; } - -.mdi-hardware-security:before { - content: "\e7c9"; } - -.mdi-hardware-sim-card:before { - content: "\e7ca"; } - -.mdi-hardware-smartphone:before { - content: "\e7cb"; } - -.mdi-hardware-speaker:before { - content: "\e7cc"; } - -.mdi-hardware-tablet:before { - content: "\e7cd"; } - -.mdi-hardware-tablet-android:before { - content: "\e7ce"; } - -.mdi-hardware-tablet-mac:before { - content: "\e7cf"; } - -.mdi-hardware-tv:before { - content: "\e7d0"; } - -.mdi-hardware-watch:before { - content: "\e7d1"; } - -.mdi-image-add-to-photos:before { - content: "\e7d2"; } - -.mdi-image-adjust:before { - content: "\e7d3"; } - -.mdi-image-assistant-photo:before { - content: "\e7d4"; } - -.mdi-image-audiotrack:before { - content: "\e7d5"; } - -.mdi-image-blur-circular:before { - content: "\e7d6"; } - -.mdi-image-blur-linear:before { - content: "\e7d7"; } - -.mdi-image-blur-off:before { - content: "\e7d8"; } - -.mdi-image-blur-on:before { - content: "\e7d9"; } - -.mdi-image-brightness-1:before { - content: "\e7da"; } - -.mdi-image-brightness-2:before { - content: "\e7db"; } - -.mdi-image-brightness-3:before { - content: "\e7dc"; } - -.mdi-image-brightness-4:before { - content: "\e7dd"; } - -.mdi-image-brightness-5:before { - content: "\e7de"; } - -.mdi-image-brightness-6:before { - content: "\e7df"; } - -.mdi-image-brightness-7:before { - content: "\e7e0"; } - -.mdi-image-brush:before { - content: "\e7e1"; } - -.mdi-image-camera:before { - content: "\e7e2"; } - -.mdi-image-camera-alt:before { - content: "\e7e3"; } - -.mdi-image-camera-front:before { - content: "\e7e4"; } - -.mdi-image-camera-rear:before { - content: "\e7e5"; } - -.mdi-image-camera-roll:before { - content: "\e7e6"; } - -.mdi-image-center-focus-strong:before { - content: "\e7e7"; } - -.mdi-image-center-focus-weak:before { - content: "\e7e8"; } - -.mdi-image-collections:before { - content: "\e7e9"; } - -.mdi-image-colorize:before { - content: "\e7ea"; } - -.mdi-image-color-lens:before { - content: "\e7eb"; } - -.mdi-image-compare:before { - content: "\e7ec"; } - -.mdi-image-control-point:before { - content: "\e7ed"; } - -.mdi-image-control-point-duplicate:before { - content: "\e7ee"; } - -.mdi-image-crop:before { - content: "\e7ef"; } - -.mdi-image-crop-3-2:before { - content: "\e7f0"; } - -.mdi-image-crop-5-4:before { - content: "\e7f1"; } - -.mdi-image-crop-7-5:before { - content: "\e7f2"; } - -.mdi-image-crop-16-9:before { - content: "\e7f3"; } - -.mdi-image-crop-din:before { - content: "\e7f4"; } - -.mdi-image-crop-free:before { - content: "\e7f5"; } - -.mdi-image-crop-landscape:before { - content: "\e7f6"; } - -.mdi-image-crop-original:before { - content: "\e7f7"; } - -.mdi-image-crop-portrait:before { - content: "\e7f8"; } - -.mdi-image-crop-square:before { - content: "\e7f9"; } - -.mdi-image-dehaze:before { - content: "\e7fa"; } - -.mdi-image-details:before { - content: "\e7fb"; } - -.mdi-image-edit:before { - content: "\e7fc"; } - -.mdi-image-exposure:before { - content: "\e7fd"; } - -.mdi-image-exposure-minus-1:before { - content: "\e7fe"; } - -.mdi-image-exposure-minus-2:before { - content: "\e7ff"; } - -.mdi-image-exposure-plus-1:before { - content: "\e800"; } - -.mdi-image-exposure-plus-2:before { - content: "\e801"; } - -.mdi-image-exposure-zero:before { - content: "\e802"; } - -.mdi-image-filter:before { - content: "\e803"; } - -.mdi-image-filter-1:before { - content: "\e804"; } - -.mdi-image-filter-2:before { - content: "\e805"; } - -.mdi-image-filter-3:before { - content: "\e806"; } - -.mdi-image-filter-4:before { - content: "\e807"; } - -.mdi-image-filter-5:before { - content: "\e808"; } - -.mdi-image-filter-6:before { - content: "\e809"; } - -.mdi-image-filter-7:before { - content: "\e80a"; } - -.mdi-image-filter-8:before { - content: "\e80b"; } - -.mdi-image-filter-9:before { - content: "\e80c"; } - -.mdi-image-filter-9-plus:before { - content: "\e80d"; } - -.mdi-image-filter-b-and-w:before { - content: "\e80e"; } - -.mdi-image-filter-center-focus:before { - content: "\e80f"; } - -.mdi-image-filter-drama:before { - content: "\e810"; } - -.mdi-image-filter-frames:before { - content: "\e811"; } - -.mdi-image-filter-hdr:before { - content: "\e812"; } - -.mdi-image-filter-none:before { - content: "\e813"; } - -.mdi-image-filter-tilt-shift:before { - content: "\e814"; } - -.mdi-image-filter-vintage:before { - content: "\e815"; } - -.mdi-image-flare:before { - content: "\e816"; } - -.mdi-image-flash-auto:before { - content: "\e817"; } - -.mdi-image-flash-off:before { - content: "\e818"; } - -.mdi-image-flash-on:before { - content: "\e819"; } - -.mdi-image-flip:before { - content: "\e81a"; } - -.mdi-image-gradient:before { - content: "\e81b"; } - -.mdi-image-grain:before { - content: "\e81c"; } - -.mdi-image-grid-off:before { - content: "\e81d"; } - -.mdi-image-grid-on:before { - content: "\e81e"; } - -.mdi-image-hdr-off:before { - content: "\e81f"; } - -.mdi-image-hdr-on:before { - content: "\e820"; } - -.mdi-image-hdr-strong:before { - content: "\e821"; } - -.mdi-image-hdr-weak:before { - content: "\e822"; } - -.mdi-image-healing:before { - content: "\e823"; } - -.mdi-image-image:before { - content: "\e824"; } - -.mdi-image-image-aspect-ratio:before { - content: "\e825"; } - -.mdi-image-iso:before { - content: "\e826"; } - -.mdi-image-landscape:before { - content: "\e827"; } - -.mdi-image-leak-add:before { - content: "\e828"; } - -.mdi-image-leak-remove:before { - content: "\e829"; } - -.mdi-image-lens:before { - content: "\e82a"; } - -.mdi-image-looks:before { - content: "\e82b"; } - -.mdi-image-looks-3:before { - content: "\e82c"; } - -.mdi-image-looks-4:before { - content: "\e82d"; } - -.mdi-image-looks-5:before { - content: "\e82e"; } - -.mdi-image-looks-6:before { - content: "\e82f"; } - -.mdi-image-looks-one:before { - content: "\e830"; } - -.mdi-image-looks-two:before { - content: "\e831"; } - -.mdi-image-loupe:before { - content: "\e832"; } - -.mdi-image-movie-creation:before { - content: "\e833"; } - -.mdi-image-nature:before { - content: "\e834"; } - -.mdi-image-nature-people:before { - content: "\e835"; } - -.mdi-image-navigate-before:before { - content: "\e836"; } - -.mdi-image-navigate-next:before { - content: "\e837"; } - -.mdi-image-palette:before { - content: "\e838"; } - -.mdi-image-panorama:before { - content: "\e839"; } - -.mdi-image-panorama-fisheye:before { - content: "\e83a"; } - -.mdi-image-panorama-horizontal:before { - content: "\e83b"; } - -.mdi-image-panorama-vertical:before { - content: "\e83c"; } - -.mdi-image-panorama-wide-angle:before { - content: "\e83d"; } - -.mdi-image-photo:before { - content: "\e83e"; } - -.mdi-image-photo-album:before { - content: "\e83f"; } - -.mdi-image-photo-camera:before { - content: "\e840"; } - -.mdi-image-photo-library:before { - content: "\e841"; } - -.mdi-image-portrait:before { - content: "\e842"; } - -.mdi-image-remove-red-eye:before { - content: "\e843"; } - -.mdi-image-rotate-left:before { - content: "\e844"; } - -.mdi-image-rotate-right:before { - content: "\e845"; } - -.mdi-image-slideshow:before { - content: "\e846"; } - -.mdi-image-straighten:before { - content: "\e847"; } - -.mdi-image-style:before { - content: "\e848"; } - -.mdi-image-switch-camera:before { - content: "\e849"; } - -.mdi-image-switch-video:before { - content: "\e84a"; } - -.mdi-image-tag-faces:before { - content: "\e84b"; } - -.mdi-image-texture:before { - content: "\e84c"; } - -.mdi-image-timelapse:before { - content: "\e84d"; } - -.mdi-image-timer:before { - content: "\e84e"; } - -.mdi-image-timer-3:before { - content: "\e84f"; } - -.mdi-image-timer-10:before { - content: "\e850"; } - -.mdi-image-timer-auto:before { - content: "\e851"; } - -.mdi-image-timer-off:before { - content: "\e852"; } - -.mdi-image-tonality:before { - content: "\e853"; } - -.mdi-image-transform:before { - content: "\e854"; } - -.mdi-image-tune:before { - content: "\e855"; } - -.mdi-image-wb-auto:before { - content: "\e856"; } - -.mdi-image-wb-cloudy:before { - content: "\e857"; } - -.mdi-image-wb-incandescent:before { - content: "\e858"; } - -.mdi-image-wb-irradescent:before { - content: "\e859"; } - -.mdi-image-wb-sunny:before { - content: "\e85a"; } - -.mdi-maps-beenhere:before { - content: "\e85b"; } - -.mdi-maps-directions:before { - content: "\e85c"; } - -.mdi-maps-directions-bike:before { - content: "\e85d"; } - -.mdi-maps-directions-bus:before { - content: "\e85e"; } - -.mdi-maps-directions-car:before { - content: "\e85f"; } - -.mdi-maps-directions-ferry:before { - content: "\e860"; } - -.mdi-maps-directions-subway:before { - content: "\e861"; } - -.mdi-maps-directions-train:before { - content: "\e862"; } - -.mdi-maps-directions-transit:before { - content: "\e863"; } - -.mdi-maps-directions-walk:before { - content: "\e864"; } - -.mdi-maps-flight:before { - content: "\e865"; } - -.mdi-maps-hotel:before { - content: "\e866"; } - -.mdi-maps-layers:before { - content: "\e867"; } - -.mdi-maps-layers-clear:before { - content: "\e868"; } - -.mdi-maps-local-airport:before { - content: "\e869"; } - -.mdi-maps-local-atm:before { - content: "\e86a"; } - -.mdi-maps-local-attraction:before { - content: "\e86b"; } - -.mdi-maps-local-bar:before { - content: "\e86c"; } - -.mdi-maps-local-cafe:before { - content: "\e86d"; } - -.mdi-maps-local-car-wash:before { - content: "\e86e"; } - -.mdi-maps-local-convenience-store:before { - content: "\e86f"; } - -.mdi-maps-local-drink:before { - content: "\e870"; } - -.mdi-maps-local-florist:before { - content: "\e871"; } - -.mdi-maps-local-gas-station:before { - content: "\e872"; } - -.mdi-maps-local-grocery-store:before { - content: "\e873"; } - -.mdi-maps-local-hospital:before { - content: "\e874"; } - -.mdi-maps-local-hotel:before { - content: "\e875"; } - -.mdi-maps-local-laundry-service:before { - content: "\e876"; } - -.mdi-maps-local-library:before { - content: "\e877"; } - -.mdi-maps-local-mall:before { - content: "\e878"; } - -.mdi-maps-local-movies:before { - content: "\e879"; } - -.mdi-maps-local-offer:before { - content: "\e87a"; } - -.mdi-maps-local-parking:before { - content: "\e87b"; } - -.mdi-maps-local-pharmacy:before { - content: "\e87c"; } - -.mdi-maps-local-phone:before { - content: "\e87d"; } - -.mdi-maps-local-pizza:before { - content: "\e87e"; } - -.mdi-maps-local-play:before { - content: "\e87f"; } - -.mdi-maps-local-post-office:before { - content: "\e880"; } - -.mdi-maps-local-print-shop:before { - content: "\e881"; } - -.mdi-maps-local-restaurant:before { - content: "\e882"; } - -.mdi-maps-local-see:before { - content: "\e883"; } - -.mdi-maps-local-shipping:before { - content: "\e884"; } - -.mdi-maps-local-taxi:before { - content: "\e885"; } - -.mdi-maps-location-history:before { - content: "\e886"; } - -.mdi-maps-map:before { - content: "\e887"; } - -.mdi-maps-my-location:before { - content: "\e888"; } - -.mdi-maps-navigation:before { - content: "\e889"; } - -.mdi-maps-pin-drop:before { - content: "\e88a"; } - -.mdi-maps-place:before { - content: "\e88b"; } - -.mdi-maps-rate-review:before { - content: "\e88c"; } - -.mdi-maps-restaurant-menu:before { - content: "\e88d"; } - -.mdi-maps-satellite:before { - content: "\e88e"; } - -.mdi-maps-store-mall-directory:before { - content: "\e88f"; } - -.mdi-maps-terrain:before { - content: "\e890"; } - -.mdi-maps-traffic:before { - content: "\e891"; } - -.mdi-navigation-apps:before { - content: "\e892"; } - -.mdi-navigation-arrow-back:before { - content: "\e893"; } - -.mdi-navigation-arrow-drop-down:before { - content: "\e894"; } - -.mdi-navigation-arrow-drop-down-circle:before { - content: "\e895"; } - -.mdi-navigation-arrow-drop-up:before { - content: "\e896"; } - -.mdi-navigation-arrow-forward:before { - content: "\e897"; } - -.mdi-navigation-cancel:before { - content: "\e898"; } - -.mdi-navigation-check:before { - content: "\e899"; } - -.mdi-navigation-chevron-left:before { - content: "\e89a"; } - -.mdi-navigation-chevron-right:before { - content: "\e89b"; } - -.mdi-navigation-close:before { - content: "\e89c"; } - -.mdi-navigation-expand-less:before { - content: "\e89d"; } - -.mdi-navigation-expand-more:before { - content: "\e89e"; } - -.mdi-navigation-fullscreen:before { - content: "\e89f"; } - -.mdi-navigation-fullscreen-exit:before { - content: "\e8a0"; } - -.mdi-navigation-menu:before { - content: "\e8a1"; } - -.mdi-navigation-more-horiz:before { - content: "\e8a2"; } - -.mdi-navigation-more-vert:before { - content: "\e8a3"; } - -.mdi-navigation-refresh:before { - content: "\e8a4"; } - -.mdi-navigation-unfold-less:before { - content: "\e8a5"; } - -.mdi-navigation-unfold-more:before { - content: "\e8a6"; } - -.mdi-notification-adb:before { - content: "\e8a7"; } - -.mdi-notification-bluetooth-audio:before { - content: "\e8a8"; } - -.mdi-notification-disc-full:before { - content: "\e8a9"; } - -.mdi-notification-dnd-forwardslash:before { - content: "\e8aa"; } - -.mdi-notification-do-not-disturb:before { - content: "\e8ab"; } - -.mdi-notification-drive-eta:before { - content: "\e8ac"; } - -.mdi-notification-event-available:before { - content: "\e8ad"; } - -.mdi-notification-event-busy:before { - content: "\e8ae"; } - -.mdi-notification-event-note:before { - content: "\e8af"; } - -.mdi-notification-folder-special:before { - content: "\e8b0"; } - -.mdi-notification-mms:before { - content: "\e8b1"; } - -.mdi-notification-more:before { - content: "\e8b2"; } - -.mdi-notification-network-locked:before { - content: "\e8b3"; } - -.mdi-notification-phone-bluetooth-speaker:before { - content: "\e8b4"; } - -.mdi-notification-phone-forwarded:before { - content: "\e8b5"; } - -.mdi-notification-phone-in-talk:before { - content: "\e8b6"; } - -.mdi-notification-phone-locked:before { - content: "\e8b7"; } - -.mdi-notification-phone-missed:before { - content: "\e8b8"; } - -.mdi-notification-phone-paused:before { - content: "\e8b9"; } - -.mdi-notification-play-download:before { - content: "\e8ba"; } - -.mdi-notification-play-install:before { - content: "\e8bb"; } - -.mdi-notification-sd-card:before { - content: "\e8bc"; } - -.mdi-notification-sim-card-alert:before { - content: "\e8bd"; } - -.mdi-notification-sms:before { - content: "\e8be"; } - -.mdi-notification-sms-failed:before { - content: "\e8bf"; } - -.mdi-notification-sync:before { - content: "\e8c0"; } - -.mdi-notification-sync-disabled:before { - content: "\e8c1"; } - -.mdi-notification-sync-problem:before { - content: "\e8c2"; } - -.mdi-notification-system-update:before { - content: "\e8c3"; } - -.mdi-notification-tap-and-play:before { - content: "\e8c4"; } - -.mdi-notification-time-to-leave:before { - content: "\e8c5"; } - -.mdi-notification-vibration:before { - content: "\e8c6"; } - -.mdi-notification-voice-chat:before { - content: "\e8c7"; } - -.mdi-notification-vpn-lock:before { - content: "\e8c8"; } - -.mdi-social-cake:before { - content: "\e8c9"; } - -.mdi-social-domain:before { - content: "\e8ca"; } - -.mdi-social-group:before { - content: "\e8cb"; } - -.mdi-social-group-add:before { - content: "\e8cc"; } - -.mdi-social-location-city:before { - content: "\e8cd"; } - -.mdi-social-mood:before { - content: "\e8ce"; } - -.mdi-social-notifications:before { - content: "\e8cf"; } - -.mdi-social-notifications-none:before { - content: "\e8d0"; } - -.mdi-social-notifications-off:before { - content: "\e8d1"; } - -.mdi-social-notifications-on:before { - content: "\e8d2"; } - -.mdi-social-notifications-paused:before { - content: "\e8d3"; } - -.mdi-social-pages:before { - content: "\e8d4"; } - -.mdi-social-party-mode:before { - content: "\e8d5"; } - -.mdi-social-people:before { - content: "\e8d6"; } - -.mdi-social-people-outline:before { - content: "\e8d7"; } - -.mdi-social-person:before { - content: "\e8d8"; } - -.mdi-social-person-add:before { - content: "\e8d9"; } - -.mdi-social-person-outline:before { - content: "\e8da"; } - -.mdi-social-plus-one:before { - content: "\e8db"; } - -.mdi-social-poll:before { - content: "\e8dc"; } - -.mdi-social-public:before { - content: "\e8dd"; } - -.mdi-social-school:before { - content: "\e8de"; } - -.mdi-social-share:before { - content: "\e8df"; } - -.mdi-social-whatshot:before { - content: "\e8e0"; } - -.mdi-toggle-check-box:before { - content: "\e8e1"; } - -.mdi-toggle-check-box-outline-blank:before { - content: "\e8e2"; } - -.mdi-toggle-radio-button-off:before { - content: "\e8e3"; } - -.mdi-toggle-radio-button-on:before { - content: "\e8e4"; } - -.container { - padding: 0 1.5rem; - margin: 0 auto; - max-width: 1280px; - width: 90%; } - -@media only screen and (min-width : 601px) { - .container { - width: 85%; } } - -@media only screen and (min-width : 993px) { - .container { - width: 70%; } } - -.container .row { - margin-left: -0.75rem; - margin-right: -0.75rem; } - -.section { - padding-top: 1rem; - padding-bottom: 1rem; } - .section.no-pad { - padding: 0; } - .section.no-pad-bot { - padding-bottom: 0; } - .section.no-pad-top { - padding-top: 0; } - -.row { - margin-left: auto; - margin-right: auto; - margin-bottom: 20px; } - .row:after { - content: ""; - display: table; - clear: both; } - .row .col { - float: left; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 0 0.75rem; } - .row .col.s1 { - width: 8.33333%; - margin-left: 0; } - .row .col.s2 { - width: 16.66667%; - margin-left: 0; } - .row .col.s3 { - width: 25%; - margin-left: 0; } - .row .col.s4 { - width: 33.33333%; - margin-left: 0; } - .row .col.s5 { - width: 41.66667%; - margin-left: 0; } - .row .col.s6 { - width: 50%; - margin-left: 0; } - .row .col.s7 { - width: 58.33333%; - margin-left: 0; } - .row .col.s8 { - width: 66.66667%; - margin-left: 0; } - .row .col.s9 { - width: 75%; - margin-left: 0; } - .row .col.s10 { - width: 83.33333%; - margin-left: 0; } - .row .col.s11 { - width: 91.66667%; - margin-left: 0; } - .row .col.s12 { - width: 100%; - margin-left: 0; } - .row .col.offset-s1 { - margin-left: 8.33333%; } - .row .col.offset-s2 { - margin-left: 16.66667%; } - .row .col.offset-s3 { - margin-left: 25%; } - .row .col.offset-s4 { - margin-left: 33.33333%; } - .row .col.offset-s5 { - margin-left: 41.66667%; } - .row .col.offset-s6 { - margin-left: 50%; } - .row .col.offset-s7 { - margin-left: 58.33333%; } - .row .col.offset-s8 { - margin-left: 66.66667%; } - .row .col.offset-s9 { - margin-left: 75%; } - .row .col.offset-s10 { - margin-left: 83.33333%; } - .row .col.offset-s11 { - margin-left: 91.66667%; } - .row .col.offset-s12 { - margin-left: 100%; } - @media only screen and (min-width : 601px) { - .row .col.m1 { - width: 8.33333%; - margin-left: 0; } - .row .col.m2 { - width: 16.66667%; - margin-left: 0; } - .row .col.m3 { - width: 25%; - margin-left: 0; } - .row .col.m4 { - width: 33.33333%; - margin-left: 0; } - .row .col.m5 { - width: 41.66667%; - margin-left: 0; } - .row .col.m6 { - width: 50%; - margin-left: 0; } - .row .col.m7 { - width: 58.33333%; - margin-left: 0; } - .row .col.m8 { - width: 66.66667%; - margin-left: 0; } - .row .col.m9 { - width: 75%; - margin-left: 0; } - .row .col.m10 { - width: 83.33333%; - margin-left: 0; } - .row .col.m11 { - width: 91.66667%; - margin-left: 0; } - .row .col.m12 { - width: 100%; - margin-left: 0; } - .row .col.offset-m1 { - margin-left: 8.33333%; } - .row .col.offset-m2 { - margin-left: 16.66667%; } - .row .col.offset-m3 { - margin-left: 25%; } - .row .col.offset-m4 { - margin-left: 33.33333%; } - .row .col.offset-m5 { - margin-left: 41.66667%; } - .row .col.offset-m6 { - margin-left: 50%; } - .row .col.offset-m7 { - margin-left: 58.33333%; } - .row .col.offset-m8 { - margin-left: 66.66667%; } - .row .col.offset-m9 { - margin-left: 75%; } - .row .col.offset-m10 { - margin-left: 83.33333%; } - .row .col.offset-m11 { - margin-left: 91.66667%; } - .row .col.offset-m12 { - margin-left: 100%; } } - @media only screen and (min-width : 993px) { - .row .col.l1 { - width: 8.33333%; - margin-left: 0; } - .row .col.l2 { - width: 16.66667%; - margin-left: 0; } - .row .col.l3 { - width: 25%; - margin-left: 0; } - .row .col.l4 { - width: 33.33333%; - margin-left: 0; } - .row .col.l5 { - width: 41.66667%; - margin-left: 0; } - .row .col.l6 { - width: 50%; - margin-left: 0; } - .row .col.l7 { - width: 58.33333%; - margin-left: 0; } - .row .col.l8 { - width: 66.66667%; - margin-left: 0; } - .row .col.l9 { - width: 75%; - margin-left: 0; } - .row .col.l10 { - width: 83.33333%; - margin-left: 0; } - .row .col.l11 { - width: 91.66667%; - margin-left: 0; } - .row .col.l12 { - width: 100%; - margin-left: 0; } - .row .col.offset-l1 { - margin-left: 8.33333%; } - .row .col.offset-l2 { - margin-left: 16.66667%; } - .row .col.offset-l3 { - margin-left: 25%; } - .row .col.offset-l4 { - margin-left: 33.33333%; } - .row .col.offset-l5 { - margin-left: 41.66667%; } - .row .col.offset-l6 { - margin-left: 50%; } - .row .col.offset-l7 { - margin-left: 58.33333%; } - .row .col.offset-l8 { - margin-left: 66.66667%; } - .row .col.offset-l9 { - margin-left: 75%; } - .row .col.offset-l10 { - margin-left: 83.33333%; } - .row .col.offset-l11 { - margin-left: 91.66667%; } - .row .col.offset-l12 { - margin-left: 100%; } } - -nav { - color: #fff; - background-color: #ee6e73; - width: 100%; - height: 56px; - line-height: 56px; } - nav a { - color: #fff; } - nav .nav-wrapper { - position: relative; - height: 100%; } - nav .nav-wrapper i { - display: block; - font-size: 2rem; } - @media only screen and (min-width : 993px) { - nav a.button-collapse { - display: none; } } - nav .button-collapse { - float: left; - position: relative; - z-index: 1; - height: 56px; } - nav .button-collapse i { - font-size: 2.7rem; - height: 56px; - line-height: 56px; } - nav .brand-logo { - position: absolute; - color: #fff; - display: inline-block; - font-size: 2.1rem; - padding: 0; } - nav .brand-logo.center { - left: 50%; - -webkit-transform: translateX(-50%); - -moz-transform: translateX(-50%); - -ms-transform: translateX(-50%); - -o-transform: translateX(-50%); - transform: translateX(-50%); } - @media only screen and (max-width : 992px) { - nav .brand-logo { - left: 50%; - -webkit-transform: translateX(-50%); - -moz-transform: translateX(-50%); - -ms-transform: translateX(-50%); - -o-transform: translateX(-50%); - transform: translateX(-50%); } } - nav .brand-logo.right { - right: 0.5rem; - padding: 0; } - nav ul { - margin: 0; } - nav ul li { - -webkit-transition: background-color .3s; - -moz-transition: background-color .3s; - -o-transition: background-color .3s; - -ms-transition: background-color .3s; - transition: background-color .3s; - float: left; - padding: 0; } - nav ul li:hover, nav ul li.active { - background-color: rgba(0, 0, 0, 0.1); } - nav ul a { - font-size: 1rem; - color: #fff; - display: block; - padding: 0 15px; } - nav ul.left { - float: left; } - nav .input-field { - margin: 0; } - nav .input-field input { - height: 100%; - font-size: 1.2rem; - border: none; - padding-left: 2rem; } - nav .input-field input:focus, nav .input-field input[type=text]:valid, nav .input-field input[type=password]:valid, nav .input-field input[type=email]:valid, nav .input-field input[type=url]:valid, nav .input-field input[type=date]:valid { - border: none; - box-shadow: none; } - nav .input-field label { - top: 0; - left: 0; } - nav .input-field label i { - color: rgba(255, 255, 255, 0.7); - -webkit-transition: color .3s; - -moz-transition: color .3s; - -o-transition: color .3s; - -ms-transition: color .3s; - transition: color .3s; } - nav .input-field label.active i { - color: #fff; } - nav .input-field label.active { - -webkit-transform: translateY(0); - -moz-transform: translateY(0); - -ms-transform: translateY(0); - -o-transform: translateY(0); - transform: translateY(0); } - -.navbar-fixed { - position: relative; - height: 56px; - z-index: 998; } - .navbar-fixed nav { - position: fixed; } - -@media only screen and (min-width : 601px) { - nav, nav .nav-wrapper i, nav a.button-collapse, nav a.button-collapse i { - height: 64px; - line-height: 64px; } - .navbar-fixed { - height: 64px; } } - -@font-face { - font-family: "Roboto"; - src: url("../font/roboto/Roboto-Thin.woff2") format("woff2"), url("../font/roboto/Roboto-Thin.woff") format("woff"), url("../font/roboto/Roboto-Thin.ttf") format("truetype"); - font-weight: 200; } - -@font-face { - font-family: "Roboto"; - src: url("../font/roboto/Roboto-Light.woff2") format("woff2"), url("../font/roboto/Roboto-Light.woff") format("woff"), url("../font/roboto/Roboto-Light.ttf") format("truetype"); - font-weight: 300; } - -@font-face { - font-family: "Roboto"; - src: url("../font/roboto/Roboto-Regular.woff2") format("woff2"), url("../font/roboto/Roboto-Regular.woff") format("woff"), url("../font/roboto/Roboto-Regular.ttf") format("truetype"); - font-weight: 400; } - -@font-face { - font-family: "Roboto"; - src: url("../font/roboto/Roboto-Medium.woff2") format("woff2"), url("../font/roboto/Roboto-Medium.woff") format("woff"), url("../font/roboto/Roboto-Medium.ttf") format("truetype"); - font-weight: 500; } - -@font-face { - font-family: "Roboto"; - src: url("../font/roboto/Roboto-Bold.woff2") format("woff2"), url("../font/roboto/Roboto-Bold.woff") format("woff"), url("../font/roboto/Roboto-Bold.ttf") format("truetype"); - font-weight: 700; } - -a { - text-decoration: none; } - -html { - line-height: 1.5; - font-family: "Roboto", sans-serif; - font-weight: normal; - color: rgba(0, 0, 0, 0.87); } - @media only screen and (min-width: 0) { - html { - font-size: 14px; } } - @media only screen and (min-width: 992px) { - html { - font-size: 14.5px; } } - @media only screen and (min-width: 1200px) { - html { - font-size: 15px; } } - -h1, h2, h3, h4, h5, h6 { - font-weight: 400; } - -h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { - font-weight: inherit; } - -h1 { - font-size: 4.2rem; - line-height: 4.62rem; - margin: 2.1rem 0 1.68rem 0; } - -h2 { - font-size: 3.56rem; - line-height: 3.916rem; - margin: 1.78rem 0 1.424rem 0; } - -h3 { - font-size: 2.92rem; - line-height: 3.212rem; - margin: 1.46rem 0 1.168rem 0; } - -h4 { - font-size: 2.28rem; - line-height: 2.508rem; - margin: 1.14rem 0 0.912rem 0; } - -h5 { - font-size: 1.64rem; - line-height: 1.804rem; - margin: 0.82rem 0 0.656rem 0; } - -h6 { - font-size: 1rem; - line-height: 1.1rem; - margin: 0.5rem 0 0.4rem 0; } - -em { - font-style: italic; } - -strong { - font-weight: 500; } - -small { - font-size: 75%; } - -.light, footer.page-footer .footer-copyright { - font-weight: 300; } - -.thin { - font-weight: 200; } - -.flow-text { - font-weight: 300; } - @media only screen and (min-width: 360px) { - .flow-text { - font-size: 1.2rem; } } - @media only screen and (min-width: 0px) { - .flow-text { - line-height: .8rem; } } - @media only screen and (min-width: 390px) { - .flow-text { - font-size: 1.224rem; } } - @media only screen and (min-width: 30px) { - .flow-text { - line-height: .904rem; } } - @media only screen and (min-width: 420px) { - .flow-text { - font-size: 1.248rem; } } - @media only screen and (min-width: 60px) { - .flow-text { - line-height: 1.008rem; } } - @media only screen and (min-width: 450px) { - .flow-text { - font-size: 1.272rem; } } - @media only screen and (min-width: 90px) { - .flow-text { - line-height: 1.112rem; } } - @media only screen and (min-width: 480px) { - .flow-text { - font-size: 1.296rem; } } - @media only screen and (min-width: 120px) { - .flow-text { - line-height: 1.216rem; } } - @media only screen and (min-width: 510px) { - .flow-text { - font-size: 1.32rem; } } - @media only screen and (min-width: 150px) { - .flow-text { - line-height: 1.32rem; } } - @media only screen and (min-width: 540px) { - .flow-text { - font-size: 1.344rem; } } - @media only screen and (min-width: 180px) { - .flow-text { - line-height: 1.424rem; } } - @media only screen and (min-width: 570px) { - .flow-text { - font-size: 1.368rem; } } - @media only screen and (min-width: 210px) { - .flow-text { - line-height: 1.528rem; } } - @media only screen and (min-width: 600px) { - .flow-text { - font-size: 1.392rem; } } - @media only screen and (min-width: 240px) { - .flow-text { - line-height: 1.632rem; } } - @media only screen and (min-width: 630px) { - .flow-text { - font-size: 1.416rem; } } - @media only screen and (min-width: 270px) { - .flow-text { - line-height: 1.736rem; } } - @media only screen and (min-width: 660px) { - .flow-text { - font-size: 1.44rem; } } - @media only screen and (min-width: 300px) { - .flow-text { - line-height: 1.84rem; } } - @media only screen and (min-width: 690px) { - .flow-text { - font-size: 1.464rem; } } - @media only screen and (min-width: 330px) { - .flow-text { - line-height: 1.944rem; } } - @media only screen and (min-width: 720px) { - .flow-text { - font-size: 1.488rem; } } - @media only screen and (min-width: 360px) { - .flow-text { - line-height: 2.048rem; } } - @media only screen and (min-width: 750px) { - .flow-text { - font-size: 1.512rem; } } - @media only screen and (min-width: 390px) { - .flow-text { - line-height: 2.152rem; } } - @media only screen and (min-width: 780px) { - .flow-text { - font-size: 1.536rem; } } - @media only screen and (min-width: 420px) { - .flow-text { - line-height: 2.256rem; } } - @media only screen and (min-width: 810px) { - .flow-text { - font-size: 1.56rem; } } - @media only screen and (min-width: 450px) { - .flow-text { - line-height: 2.36rem; } } - @media only screen and (min-width: 840px) { - .flow-text { - font-size: 1.584rem; } } - @media only screen and (min-width: 480px) { - .flow-text { - line-height: 2.464rem; } } - @media only screen and (min-width: 870px) { - .flow-text { - font-size: 1.608rem; } } - @media only screen and (min-width: 510px) { - .flow-text { - line-height: 2.568rem; } } - @media only screen and (min-width: 900px) { - .flow-text { - font-size: 1.632rem; } } - @media only screen and (min-width: 540px) { - .flow-text { - line-height: 2.672rem; } } - @media only screen and (min-width: 930px) { - .flow-text { - font-size: 1.656rem; } } - @media only screen and (min-width: 570px) { - .flow-text { - line-height: 2.776rem; } } - @media only screen and (min-width: 960px) { - .flow-text { - font-size: 1.68rem; } } - @media only screen and (min-width: 600px) { - .flow-text { - line-height: 2.88rem; } } - -.card-panel { - padding: 20px; - margin: 0.5rem 0 1rem 0; - border-radius: 2px; - background-color: #fff; } - -.card { - position: relative; - overflow: hidden; - margin: 0.5rem 0 1rem 0; - background-color: #fff; - border-radius: 2px; } - .card .card-title { - color: #fff; - font-size: 24px; - font-weight: 300; } - .card .card-title.activator { - cursor: pointer; } - .card.small, .card.medium, .card.large { - position: relative; } - .card.small .card-image, .card.medium .card-image, .card.large .card-image { - overflow: hidden; } - .card.small .card-content, .card.medium .card-content, .card.large .card-content { - overflow: hidden; } - .card.small .card-action, .card.medium .card-action, .card.large .card-action { - position: absolute; - bottom: 0; - left: 0; - right: 0; } - .card.small { - height: 300px; } - .card.small .card-image { - height: 150px; } - .card.small .card-content { - height: 150px; } - .card.medium { - height: 400px; } - .card.medium .card-image { - height: 250px; } - .card.medium .card-content { - height: 150px; } - .card.large { - height: 500px; } - .card.large .card-image { - height: 330px; } - .card.large .card-content { - height: 170px; } - .card .card-image { - position: relative; } - .card .card-image img { - border-radius: 2px 2px 0 0; - position: relative; - left: 0; - right: 0; - top: 0; - bottom: 0; - width: 100%; } - .card .card-image .card-title { - position: absolute; - bottom: 0; - left: 0; - padding: 20px; } - .card .card-content { - padding: 20px; - border-radius: 0 0 2px 2px; } - .card .card-content p { - margin: 0; - color: inherit; } - .card .card-content .card-title { - line-height: 48px; } - .card .card-action { - border-top: 1px solid rgba(160, 160, 160, 0.2); - padding: 20px; } - .card .card-action a { - color: #ffab40; - margin-right: 20px; - -webkit-transition: color .3s ease; - -moz-transition: color .3s ease; - -o-transition: color .3s ease; - -ms-transition: color .3s ease; - transition: color .3s ease; - text-transform: uppercase; } - .card .card-action a:hover { - color: #ffd8a6; } - .card .card-reveal { - padding: 20px; - position: absolute; - background-color: #FFF; - width: 100%; - overflow-y: auto; - top: 100%; - height: 100%; - z-index: 1; - display: none; } - .card .card-reveal .card-title { - cursor: pointer; - display: block; } - -#toast-container { - display: block; - position: fixed; - z-index: 1001; } - @media only screen and (max-width : 600px) { - #toast-container { - min-width: 100%; - bottom: 0%; } } - @media only screen and (min-width : 601px) and (max-width : 992px) { - #toast-container { - min-width: 30%; - left: 5%; - bottom: 7%; } } - @media only screen and (min-width : 993px) { - #toast-container { - min-width: 8%; - top: 10%; - right: 7%; } } - -.toast { - border-radius: 2px; - top: 0; - width: auto; - clear: both; - margin-top: 10px; - position: relative; - max-width: 100%; - height: 48px; - line-height: 48px; - background-color: #323232; - padding: 0 25px; - font-size: 1.1rem; - font-weight: 300; - color: #fff; - display: -webkit-box; - display: -moz-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - -webkit-justify-content: space-between; - justify-content: space-between; } - .toast .btn, .toast .btn-large, .toast .btn-flat { - margin: 0; - margin-left: 3rem; } - .toast.rounded { - border-radius: 24px; } - @media only screen and (max-width : 600px) { - .toast { - width: 100%; - border-radius: 0; } } - @media only screen and (min-width : 601px) and (max-width : 992px) { - .toast { - float: left; } } - @media only screen and (min-width : 993px) { - .toast { - float: right; } } - -.tabs { - position: relative; - height: 48px; - background-color: #fff; - margin: 0 auto; - width: 100%; - white-space: nowrap; } - .tabs .tab { - display: block; - float: left; - text-align: center; - line-height: 48px; - height: 48px; - padding: 0 20px; - margin: 0; - text-transform: uppercase; - letter-spacing: .8px; - width: 15%; } - .tabs .tab a { - color: #ee6e73; - display: block; - width: 100%; - height: 100%; - -webkit-transition: color .28s ease; - -moz-transition: color .28s ease; - -o-transition: color .28s ease; - -ms-transition: color .28s ease; - transition: color .28s ease; } - .tabs .tab a:hover { - color: #f9c9cb; } - .tabs .indicator { - position: absolute; - bottom: 0; - height: 2px; - background-color: #f6b2b5; - will-change: left, right; } - -.tabs .tab { - padding: 0; } - -.material-tooltip { - padding: 10px 8px; - font-size: 1rem; - z-index: 1000; - background-color: transparent; - border-radius: 2px; - color: #fff; - min-height: 36px; - line-height: 1rem; - opacity: 0; - display: none; - position: absolute; - text-align: center; - overflow: hidden; - left: 0; - top: 0; - will-change: top, left; } - -.backdrop { - position: absolute; - opacity: 0; - display: none; - height: 7px; - width: 14px; - border-radius: 0 0 14px 14px; - background-color: #323232; - z-index: -1; - -webkit-transform-origin: 50% 10%; - -moz-transform-origin: 50% 10%; - -ms-transform-origin: 50% 10%; - -o-transform-origin: 50% 10%; - transform-origin: 50% 10%; - will-change: transform, opacity; } - -.btn, .btn-large, .btn-flat { - border: none; - border-radius: 2px; - display: inline-block; - height: 36px; - line-height: 36px; - outline: 0; - padding: 0 2rem; - text-transform: uppercase; - vertical-align: middle; - -webkit-tap-highlight-color: transparent; } - -.btn.disabled, .disabled.btn-large, .btn-floating.disabled, .btn-large.disabled, .btn:disabled, .btn-large:disabled, .btn-large:disabled, .btn-floating:disabled { - background-color: #DFDFDF; - box-shadow: none; - color: #9F9F9F; - cursor: default; } - .btn.disabled *, .disabled.btn-large *, .btn-floating.disabled *, .btn-large.disabled *, .btn:disabled *, .btn-large:disabled *, .btn-large:disabled *, .btn-floating:disabled * { - pointer-events: none; } - .btn.disabled:hover, .disabled.btn-large:hover, .btn-floating.disabled:hover, .btn-large.disabled:hover, .btn:disabled:hover, .btn-large:disabled:hover, .btn-large:disabled:hover, .btn-floating:disabled:hover { - background-color: #DFDFDF; - color: #9F9F9F; } - -.btn i, .btn-large i, .btn-floating i, .btn-large i, .btn-flat i { - font-size: 1.3rem; - line-height: inherit; } - -.btn, .btn-large { - text-decoration: none; - color: #FFF; - background-color: #26a69a; - text-align: center; - letter-spacing: .5px; - -webkit-transition: .2s ease-out; - -moz-transition: .2s ease-out; - -o-transition: .2s ease-out; - -ms-transition: .2s ease-out; - transition: .2s ease-out; - cursor: pointer; } - .btn:hover, .btn-large:hover { - background-color: #2bbbad; } - -.btn-floating { - display: inline-block; - color: #FFF; - position: relative; - overflow: hidden; - z-index: 1; - width: 37px; - height: 37px; - line-height: 37px; - padding: 0; - background-color: #26a69a; - border-radius: 50%; - transition: .3s; - cursor: pointer; - vertical-align: middle; } - .btn-floating i { - width: inherit; - display: inline-block; - text-align: center; - color: #FFF; - font-size: 1.6rem; - line-height: 37px; } - .btn-floating:before { - border-radius: 0; } - .btn-floating.btn-large { - width: 55.5px; - height: 55.5px; } - .btn-floating.btn-large i { - line-height: 55.5px; } - -button.btn-floating { - border: none; } - -.fixed-action-btn { - position: fixed; - right: 23px; - bottom: 23px; - padding-top: 15px; - margin-bottom: 0; - z-index: 998; } - .fixed-action-btn ul { - left: 0; - right: 0; - text-align: center; - position: absolute; - bottom: 64px; } - .fixed-action-btn ul li { - margin-bottom: 15px; } - .fixed-action-btn ul a.btn-floating { - opacity: 0; } - -.btn-flat { - box-shadow: none; - background-color: transparent; - color: #343434; - cursor: pointer; } - .btn-flat.disabled { - color: #b3b3b3; - cursor: default; } - -.btn-large { - height: 54px; - line-height: 56px; } - .btn-large i { - font-size: 1.6rem; } - -.dropdown-content { - background-color: #FFFFFF; - margin: 0; - display: none; - min-width: 100px; - max-height: 650px; - overflow-y: auto; - opacity: 0; - position: absolute; - white-space: nowrap; - z-index: 1; - will-change: width, height; } - .dropdown-content li { - clear: both; - color: rgba(0, 0, 0, 0.87); - cursor: pointer; - line-height: 1.5rem; - width: 100%; - text-align: left; - text-transform: none; } - .dropdown-content li:hover, .dropdown-content li.active { - background-color: #eee; } - .dropdown-content li > a, .dropdown-content li > span { - font-size: 1.2rem; - color: #26a69a; - display: block; - padding: 1rem 1rem; } - -/*! - * Waves v0.6.0 - * http://fian.my.id/Waves - * - * Copyright 2014 Alfiana E. Sibuea and other contributors - * Released under the MIT license - * https://github.com/fians/Waves/blob/master/LICENSE - */ -.waves-effect { - position: relative; - cursor: pointer; - display: inline-block; - overflow: hidden; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-tap-highlight-color: transparent; - vertical-align: middle; - z-index: 1; - will-change: opacity, transform; - -webkit-transition: all .3s ease-out; - -moz-transition: all .3s ease-out; - -o-transition: all .3s ease-out; - -ms-transition: all .3s ease-out; - transition: all .3s ease-out; } - .waves-effect .waves-ripple { - position: absolute; - border-radius: 50%; - width: 20px; - height: 20px; - margin-top: -10px; - margin-left: -10px; - opacity: 0; - background: rgba(0, 0, 0, 0.2); - -webkit-transition: all 0.7s ease-out; - -moz-transition: all 0.7s ease-out; - -o-transition: all 0.7s ease-out; - -ms-transition: all 0.7s ease-out; - transition: all 0.7s ease-out; - -webkit-transition-property: -webkit-transform, opacity; - -moz-transition-property: -moz-transform, opacity; - -o-transition-property: -o-transform, opacity; - transition-property: transform, opacity; - -webkit-transform: scale(0); - -moz-transform: scale(0); - -ms-transform: scale(0); - -o-transform: scale(0); - transform: scale(0); - pointer-events: none; } - .waves-effect.waves-light .waves-ripple { - background-color: rgba(255, 255, 255, 0.45); } - .waves-effect.waves-red .waves-ripple { - background-color: rgba(244, 67, 54, 0.7); } - .waves-effect.waves-yellow .waves-ripple { - background-color: rgba(255, 235, 59, 0.7); } - .waves-effect.waves-orange .waves-ripple { - background-color: rgba(255, 152, 0, 0.7); } - .waves-effect.waves-purple .waves-ripple { - background-color: rgba(156, 39, 176, 0.7); } - .waves-effect.waves-green .waves-ripple { - background-color: rgba(76, 175, 80, 0.7); } - .waves-effect.waves-teal .waves-ripple { - background-color: rgba(0, 150, 136, 0.7); } - -.waves-notransition { - -webkit-transition: none !important; - -moz-transition: none !important; - -o-transition: none !important; - -ms-transition: none !important; - transition: none !important; } - -.waves-circle { - -webkit-transform: translateZ(0); - -moz-transform: translateZ(0); - -ms-transform: translateZ(0); - -o-transform: translateZ(0); - transform: translateZ(0); - -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%); } - -.waves-input-wrapper { - border-radius: 0.2em; - vertical-align: bottom; } - .waves-input-wrapper .waves-button-input { - position: relative; - top: 0; - left: 0; - z-index: 1; } - -.waves-circle { - text-align: center; - width: 2.5em; - height: 2.5em; - line-height: 2.5em; - border-radius: 50%; - -webkit-mask-image: none; } - -.waves-block { - display: block; } - -/* Firefox Bug: link not triggered */ -a.waves-effect .waves-ripple { - z-index: -1; } - -.modal { - display: none; - position: fixed; - left: 0; - right: 0; - background-color: #fafafa; - padding: 0; - max-height: 70%; - width: 55%; - margin: auto; - overflow-y: auto; - z-index: 1000; - border-radius: 2px; - -webkit-transform: translate(0); - -moz-transform: translate(0); - -ms-transform: translate(0); - -o-transform: translate(0); - transform: translate(0); - will-change: top, opacity; } - @media only screen and (max-width : 992px) { - .modal { - width: 80%; } } - .modal h1, .modal h2, .modal h3, .modal h4 { - margin-top: 0; } - .modal .modal-content { - padding: 24px; } - .modal .modal-footer { - border-radius: 0 0 2px 2px; - background-color: #fafafa; - padding: 4px 6px; - height: 56px; - width: 100%; } - .modal .modal-footer .btn, .modal .modal-footer .btn-large, .modal .modal-footer .btn-flat { - float: right; - margin: 6px 0; } - -#lean-overlay { - position: fixed; - z-index: 999; - top: 0; - left: 0; - bottom: 0; - right: 0; - height: 115%; - width: 100%; - background: #000; - display: none; - will-change: opacity; } - -.modal.modal-fixed-footer { - padding: 0; - height: 70%; } - .modal.modal-fixed-footer .modal-content { - position: fixed; - max-height: 100%; - padding-bottom: 64px; - width: 100%; - overflow-y: auto; } - .modal.modal-fixed-footer .modal-footer { - border-top: 1px solid rgba(0, 0, 0, 0.1); - position: fixed; - bottom: 0; } - -.modal.bottom-sheet { - top: auto; - bottom: -100%; - margin: 0; - width: 100%; - max-height: 45%; - border-radius: 0; - will-change: bottom, opacity; } - -.collapsible { - border-top: 1px solid #ddd; - border-right: 1px solid #ddd; - border-left: 1px solid #ddd; - margin: 0.5rem 0 1rem 0; } - -.collapsible-header { - display: block; - cursor: pointer; - height: 3rem; - line-height: 3rem; - padding: 0 1rem; - background-color: #fff; - border-bottom: 1px solid #ddd; } - .collapsible-header i { - width: 2rem; - font-size: 1.6rem; - line-height: 3rem; - display: block; - float: left; - text-align: center; - margin-right: 1rem; } - -.collapsible-body { - overflow: hidden; - display: none; - border-bottom: 1px solid #ddd; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; } - .collapsible-body p { - margin: 0; - padding: 2rem; } - -.side-nav .collapsible { - border: none; - box-shadow: none; } - .side-nav .collapsible li { - padding: 0; } -.side-nav .collapsible-header { - background-color: transparent; - border: none; - line-height: inherit; - height: inherit; - margin: 0 1rem; } - .side-nav .collapsible-header i { - line-height: inherit; } -.side-nav .collapsible-body { - border: 0; - background-color: #FFF; } - .side-nav .collapsible-body li a { - margin: 0 1rem 0 2rem; } - -.collapsible.popout { - border: none; - box-shadow: none; } - .collapsible.popout > li { - box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); - transform: scaleX(.92) translate3d(0, 0, 0); - transition: margin .35s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform .35s cubic-bezier(0.25, 0.46, 0.45, 0.94); } - .collapsible.popout > li:hover { - will-change: margin, transform; } - .collapsible.popout > li.active { - box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); - margin: 16px 0; - transform: scaleX(1) translate3d(0, 0, 0); } - -.materialboxed { - cursor: zoom-in; - position: relative; - -webkit-transition: opacity .4s; - -moz-transition: opacity .4s; - -o-transition: opacity .4s; - -ms-transition: opacity .4s; - transition: opacity .4s; } - .materialboxed:hover { - will-change: left, top, width, height; } - .materialboxed:hover:not(.active) { - opacity: .8; } - -.materialboxed.active { - cursor: zoom-out; } - -#materialbox-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: #292929; - z-index: 999; - will-change: opacity; } - -.materialbox-caption { - position: fixed; - display: none; - color: #fff; - line-height: 50px; - bottom: 0; - width: 100%; - text-align: center; - padding: 0% 15%; - height: 50px; - z-index: 1000; - -webkit-font-smoothing: antialiased; } - -/* Remove Focus Boxes */ -select:focus { - outline: 1px solid #c9f3ef; } - -button:focus { - outline: none; - background-color: #2ab7a9; } - -label { - font-size: 0.8rem; - color: #9e9e9e; } - -/*************************** - Text Inputs + Textarea -****************************/ -::-webkit-input-placeholder { - color: #d1d1d1; } - -:-moz-placeholder { - /* Firefox 18- */ - color: #d1d1d1; } - -::-moz-placeholder { - /* Firefox 19+ */ - color: #d1d1d1; } - -:-ms-input-placeholder { - color: #d1d1d1; } - -input[type=text], input[type=password], input[type=email], input[type=url], input[type=time], input[type=date], input[type=datetime-local], input[type=tel], input[type=number], input[type=search], textarea.materialize-textarea { - background-color: transparent; - border: none; - border-bottom: 1px solid #9e9e9e; - border-radius: 0; - outline: none; - height: 3rem; - width: 100%; - font-size: 1rem; - margin: 0 0 15px 0; - padding: 0; - box-shadow: none; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - transition: all .3s; } - input[type=text]:disabled, input[type=text][readonly="readonly"], input[type=password]:disabled, input[type=password][readonly="readonly"], input[type=email]:disabled, input[type=email][readonly="readonly"], input[type=url]:disabled, input[type=url][readonly="readonly"], input[type=time]:disabled, input[type=time][readonly="readonly"], input[type=date]:disabled, input[type=date][readonly="readonly"], input[type=datetime-local]:disabled, input[type=datetime-local][readonly="readonly"], input[type=tel]:disabled, input[type=tel][readonly="readonly"], input[type=number]:disabled, input[type=number][readonly="readonly"], input[type=search]:disabled, input[type=search][readonly="readonly"], textarea.materialize-textarea:disabled, textarea.materialize-textarea[readonly="readonly"] { - color: rgba(0, 0, 0, 0.26); - border-bottom: 1px dotted rgba(0, 0, 0, 0.26); } - input[type=text]:disabled + label, input[type=text][readonly="readonly"] + label, input[type=password]:disabled + label, input[type=password][readonly="readonly"] + label, input[type=email]:disabled + label, input[type=email][readonly="readonly"] + label, input[type=url]:disabled + label, input[type=url][readonly="readonly"] + label, input[type=time]:disabled + label, input[type=time][readonly="readonly"] + label, input[type=date]:disabled + label, input[type=date][readonly="readonly"] + label, input[type=datetime-local]:disabled + label, input[type=datetime-local][readonly="readonly"] + label, input[type=tel]:disabled + label, input[type=tel][readonly="readonly"] + label, input[type=number]:disabled + label, input[type=number][readonly="readonly"] + label, input[type=search]:disabled + label, input[type=search][readonly="readonly"] + label, textarea.materialize-textarea:disabled + label, textarea.materialize-textarea[readonly="readonly"] + label { - color: rgba(0, 0, 0, 0.26); } - input[type=text]:focus:not([readonly]), input[type=password]:focus:not([readonly]), input[type=email]:focus:not([readonly]), input[type=url]:focus:not([readonly]), input[type=time]:focus:not([readonly]), input[type=date]:focus:not([readonly]), input[type=datetime-local]:focus:not([readonly]), input[type=tel]:focus:not([readonly]), input[type=number]:focus:not([readonly]), input[type=search]:focus:not([readonly]), textarea.materialize-textarea:focus:not([readonly]) { - border-bottom: 1px solid #26a69a; - box-shadow: 0 1px 0 0 #26a69a; } - input[type=text]:focus:not([readonly]) + label, input[type=password]:focus:not([readonly]) + label, input[type=email]:focus:not([readonly]) + label, input[type=url]:focus:not([readonly]) + label, input[type=time]:focus:not([readonly]) + label, input[type=date]:focus:not([readonly]) + label, input[type=datetime-local]:focus:not([readonly]) + label, input[type=tel]:focus:not([readonly]) + label, input[type=number]:focus:not([readonly]) + label, input[type=search]:focus:not([readonly]) + label, textarea.materialize-textarea:focus:not([readonly]) + label { - color: #26a69a; } - input[type=text].valid, input[type=text]:focus.valid, input[type=password].valid, input[type=password]:focus.valid, input[type=email].valid, input[type=email]:focus.valid, input[type=url].valid, input[type=url]:focus.valid, input[type=time].valid, input[type=time]:focus.valid, input[type=date].valid, input[type=date]:focus.valid, input[type=datetime-local].valid, input[type=datetime-local]:focus.valid, input[type=tel].valid, input[type=tel]:focus.valid, input[type=number].valid, input[type=number]:focus.valid, input[type=search].valid, input[type=search]:focus.valid, textarea.materialize-textarea.valid, textarea.materialize-textarea:focus.valid { - border-bottom: 1px solid #4CAF50; - box-shadow: 0 1px 0 0 #4CAF50; } - input[type=text].invalid, input[type=text]:focus.invalid, input[type=password].invalid, input[type=password]:focus.invalid, input[type=email].invalid, input[type=email]:focus.invalid, input[type=url].invalid, input[type=url]:focus.invalid, input[type=time].invalid, input[type=time]:focus.invalid, input[type=date].invalid, input[type=date]:focus.invalid, input[type=datetime-local].invalid, input[type=datetime-local]:focus.invalid, input[type=tel].invalid, input[type=tel]:focus.invalid, input[type=number].invalid, input[type=number]:focus.invalid, input[type=search].invalid, input[type=search]:focus.invalid, textarea.materialize-textarea.invalid, textarea.materialize-textarea:focus.invalid { - border-bottom: 1px solid #F44336; - box-shadow: 0 1px 0 0 #F44336; } - -.input-field { - position: relative; - margin-top: 1rem; } - .input-field label { - color: #9e9e9e; - position: absolute; - top: 0.8rem; - left: 0.75rem; - font-size: 1rem; - cursor: text; - -webkit-transition: .2s ease-out; - -moz-transition: .2s ease-out; - -o-transition: .2s ease-out; - -ms-transition: .2s ease-out; - transition: .2s ease-out; } - .input-field label.active { - font-size: 0.8rem; - -webkit-transform: translateY(-140%); - -moz-transform: translateY(-140%); - -ms-transform: translateY(-140%); - -o-transform: translateY(-140%); - transform: translateY(-140%); } - .input-field .prefix { - position: absolute; - width: 3rem; - font-size: 2rem; - -webkit-transition: color .2s; - -moz-transition: color .2s; - -o-transition: color .2s; - -ms-transition: color .2s; - transition: color .2s; } - .input-field .prefix.active { - color: #26a69a; } - .input-field .prefix ~ input, .input-field .prefix ~ textarea { - margin-left: 3rem; - width: 92%; - width: calc(100% - 3rem); } - .input-field .prefix ~ textarea { - padding-top: .8rem; } - .input-field .prefix ~ label { - margin-left: 3rem; } - @media only screen and (max-width : 992px) { - .input-field .prefix ~ input { - width: 86%; - width: calc(100% - 3rem); } } - @media only screen and (max-width : 600px) { - .input-field .prefix ~ input { - width: 80%; - width: calc(100% - 3rem); } } - -.input-field input[type=search] { - display: block; - line-height: inherit; - padding-left: 4rem; - width: calc(100% - 4rem); } - .input-field input[type=search]:focus { - background-color: #FFF; - border: 0; - box-shadow: none; - color: #444; } - .input-field input[type=search]:focus + label i, .input-field input[type=search]:focus ~ .mdi-navigation-close { - color: #444; } - .input-field input[type=search] + label { - left: 1rem; } - .input-field input[type=search] ~ .mdi-navigation-close { - position: absolute; - top: 0; - right: 1rem; - color: transparent; - cursor: pointer; - font-size: 2rem; - transition: .3s color; } - -textarea { - width: 100%; - height: 3rem; - background-color: transparent; } - textarea.materialize-textarea { - overflow-y: hidden; - /* prevents scroll bar flash */ - padding: 1.6rem 0; - /* prevents text jump on Enter keypress */ - resize: none; - min-height: 3rem; } - -.hiddendiv { - display: none; - white-space: pre-wrap; - word-wrap: break-word; - overflow-wrap: break-word; - /* future version of deprecated 'word-wrap' */ - padding-top: 1.2rem; - /* prevents text jump on Enter keypress */ } - -/*************** - Radio Buttons -***************/ -/* Remove default Radio Buttons */ -[type="radio"]:not(:checked), [type="radio"]:checked { - position: absolute; - left: -9999px; - visibility: hidden; } - -[type="radio"]:not(:checked) + label, [type="radio"]:checked + label { - position: relative; - padding-left: 35px; - cursor: pointer; - display: inline-block; - height: 25px; - line-height: 25px; - font-size: 1rem; - -webkit-transition: .28s ease; - -moz-transition: .28s ease; - -o-transition: .28s ease; - -ms-transition: .28s ease; - transition: .28s ease; - -webkit-user-select: none; - /* webkit (safari, chrome) browsers */ - -moz-user-select: none; - /* mozilla browsers */ - -khtml-user-select: none; - /* webkit (konqueror) browsers */ - -ms-user-select: none; - /* IE10+ */ } - -[type="radio"] + label:before, [type="radio"] + label:after { - content: ''; - position: absolute; - left: 0; - top: 0; - margin: 4px; - width: 16px; - height: 16px; - z-index: 0; - -webkit-transition: .28s ease; - -moz-transition: .28s ease; - -o-transition: .28s ease; - -ms-transition: .28s ease; - transition: .28s ease; } - -/* Unchecked styles */ -[type="radio"]:not(:checked) + label:before { - border-radius: 50%; - border: 2px solid #5a5a5a; } - -[type="radio"]:not(:checked) + label:after { - border-radius: 50%; - border: 2px solid #5a5a5a; - z-index: -1; - -webkit-transform: scale(0); - -moz-transform: scale(0); - -ms-transform: scale(0); - -o-transform: scale(0); - transform: scale(0); } - -/* Checked styles */ -[type="radio"]:checked + label:before { - border-radius: 50%; - border: 2px solid transparent; } - -[type="radio"]:checked + label:after { - border-radius: 50%; - border: 2px solid #26a69a; - background-color: #26a69a; - z-index: 0; - -webkit-transform: scale(1.02); - -moz-transform: scale(1.02); - -ms-transform: scale(1.02); - -o-transform: scale(1.02); - transform: scale(1.02); } - -/* Radio With gap */ -[type="radio"].with-gap:checked + label:before { - border-radius: 50%; - border: 2px solid #26a69a; } - -[type="radio"].with-gap:checked + label:after { - border-radius: 50%; - border: 2px solid #26a69a; - background-color: #26a69a; - z-index: 0; - -webkit-transform: scale(.5); - -moz-transform: scale(.5); - -ms-transform: scale(.5); - -o-transform: scale(.5); - transform: scale(.5); } - -/* Disabled style */ -[type="radio"]:disabled:not(:checked) + label:before, [type="radio"]:disabled:checked + label:before { - background-color: transparent; - border-color: rgba(0, 0, 0, 0.26); } - -[type="radio"]:disabled + label { - color: rgba(0, 0, 0, 0.26); } - -[type="radio"]:disabled:not(:checked) + label:hover:before { - border-color: rgba(0, 0, 0, 0.26); } - -/*************** - Checkboxes -***************/ -/* CUSTOM CSS CHECKBOXES */ -form p { - margin-bottom: 10px; - text-align: left; } - -form p:last-child { - margin-bottom: 0; } - -/* Remove default checkbox */ -[type="checkbox"]:not(:checked), [type="checkbox"]:checked { - position: absolute; - left: -9999px; } - -[type="checkbox"] { - /* checkbox aspect */ } - [type="checkbox"] + label { - position: relative; - padding-left: 35px; - cursor: pointer; - display: inline-block; - height: 25px; - line-height: 25px; - font-size: 1rem; - -webkit-user-select: none; - /* webkit (safari, chrome) browsers */ - -moz-user-select: none; - /* mozilla browsers */ - -khtml-user-select: none; - /* webkit (konqueror) browsers */ - -ms-user-select: none; - /* IE10+ */ } - [type="checkbox"] + label:before { - content: ''; - position: absolute; - top: 0; - left: 0; - width: 18px; - height: 18px; - z-index: 0; - border: 2px solid #5a5a5a; - border-radius: 1px; - margin-top: 2px; - -webkit-transition: 0.2s; - -moz-transition: 0.2s; - -o-transition: 0.2s; - -ms-transition: 0.2s; - transition: 0.2s; } - [type="checkbox"]:not(:checked):disabled + label:before { - border: none; - background-color: rgba(0, 0, 0, 0.26); } - -[type="checkbox"]:checked + label:before { - top: -4px; - left: -3px; - width: 12px; - height: 22px; - border-top: 2px solid transparent; - border-left: 2px solid transparent; - border-right: 2px solid #26a69a; - border-bottom: 2px solid #26a69a; - -webkit-transform: rotate(40deg); - -moz-transform: rotate(40deg); - -ms-transform: rotate(40deg); - -o-transform: rotate(40deg); - transform: rotate(40deg); - -webkit-backface-visibility: hidden; - -webkit-transform-origin: 100% 100%; - -moz-transform-origin: 100% 100%; - -ms-transform-origin: 100% 100%; - -o-transform-origin: 100% 100%; - transform-origin: 100% 100%; } -[type="checkbox"]:checked:disabled + label:before { - border-right: 2px solid rgba(0, 0, 0, 0.26); - border-bottom: 2px solid rgba(0, 0, 0, 0.26); } - -/* Indeterminate checkbox */ -[type="checkbox"]:indeterminate + label:before { - left: -10px; - top: -11px; - width: 10px; - height: 22px; - border-top: none; - border-left: none; - border-right: 2px solid #26a69a; - border-bottom: none; - -webkit-transform: rotate(90deg); - -moz-transform: rotate(90deg); - -ms-transform: rotate(90deg); - -o-transform: rotate(90deg); - transform: rotate(90deg); - -webkit-backface-visibility: hidden; - -webkit-transform-origin: 100% 100%; - -moz-transform-origin: 100% 100%; - -ms-transform-origin: 100% 100%; - -o-transform-origin: 100% 100%; - transform-origin: 100% 100%; } -[type="checkbox"]:indeterminate:disabled + label:before { - border-right: 2px solid rgba(0, 0, 0, 0.26); - background-color: transparent; } - -[type="checkbox"].filled-in + label:after { - border-radius: 2px; } -[type="checkbox"].filled-in + label:before, [type="checkbox"].filled-in + label:after { - content: ''; - left: 0; - position: absolute; - /* .1s delay is for check animation */ - transition: border .25s, background-color .25s, width .2s .1s, height .2s .1s, top .2s .1s, left .2s .1s; - z-index: 1; } -[type="checkbox"].filled-in:not(:checked) + label:before { - width: 0; - height: 0; - border: 3px solid transparent; - left: 6px; - top: 10px; - -webkit-transform: rotateZ(37deg); - transform: rotateZ(37deg); - -webkit-transform-origin: 20% 40%; - transform-origin: 100% 100%; } -[type="checkbox"].filled-in:not(:checked) + label:after { - height: 20px; - width: 20px; - background-color: transparent; - border: 2px solid #5a5a5a; - top: 0px; - z-index: 0; } -[type="checkbox"].filled-in:checked + label:before { - top: 0; - left: 1px; - width: 8px; - height: 13px; - border-top: 2px solid transparent; - border-left: 2px solid transparent; - border-right: 2px solid #fff; - border-bottom: 2px solid #fff; - -webkit-transform: rotateZ(37deg); - transform: rotateZ(37deg); - -webkit-transform-origin: 100% 100%; - transform-origin: 100% 100%; } -[type="checkbox"].filled-in:checked + label:after { - top: 0px; - width: 20px; - height: 20px; - border: 2px solid #26a69a; - background-color: #26a69a; - z-index: 0; } -[type="checkbox"].filled-in:disabled:not(:checked) + label:before { - background-color: transparent; - border: 2px solid transparent; } -[type="checkbox"].filled-in:disabled:not(:checked) + label:after { - border-color: transparent; - background-color: #BDBDBD; } -[type="checkbox"].filled-in:disabled:checked + label:before { - background-color: transparent; } -[type="checkbox"].filled-in:disabled:checked + label:after { - background-color: #BDBDBD; - border-color: #BDBDBD; } - -/*************** - Switch -***************/ -.switch, .switch * { - -webkit-user-select: none; - -moz-user-select: none; - -khtml-user-select: none; - -ms-user-select: none; } - -.switch label { - cursor: pointer; } - -.switch label input[type=checkbox] { - opacity: 0; - width: 0; - height: 0; } - -.switch label input[type=checkbox]:checked + .lever { - background-color: #84c7c1; } - -.switch label input[type=checkbox]:checked + .lever:after { - background-color: #26a69a; } - -.switch label .lever { - content: ""; - display: inline-block; - position: relative; - width: 40px; - height: 15px; - background-color: #818181; - border-radius: 15px; - margin-right: 10px; - transition: background 0.3s ease; - vertical-align: middle; - margin: 0 16px; } - -.switch label .lever:after { - content: ""; - position: absolute; - display: inline-block; - width: 21px; - height: 21px; - background-color: #F1F1F1; - border-radius: 21px; - box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4); - left: -5px; - top: -3px; - transition: left 0.3s ease, background 0.3s ease, box-shadow 0.1s ease; } - -input[type=checkbox]:checked:not(:disabled) ~ .lever:active:after { - box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(38, 166, 154, 0.1); } - -input[type=checkbox]:not(:disabled) ~ .lever:active:after { - box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.08); } - -.switch label input[type=checkbox]:checked + .lever:after { - left: 24px; } - -.switch input[type=checkbox][disabled] + .lever { - cursor: default; } - -.switch label input[type=checkbox][disabled] + .lever:after, .switch label input[type=checkbox][disabled]:checked + .lever:after { - background-color: #BDBDBD; } - -/*************** - Select Field -***************/ -.select-label { - position: absolute; } - -.select-wrapper { - position: relative; } - .select-wrapper input.select-dropdown { - position: relative; - cursor: pointer; - background-color: transparent; - border: none; - border-bottom: 1px solid #9e9e9e; - outline: none; - height: 3rem; - line-height: 3rem; - width: 100%; - font-size: 1rem; - margin: 0 0 15px 0; - padding: 0; - display: block; } - .select-wrapper .mdi-navigation-arrow-drop-down { - color: initial; - position: absolute; - right: 0; - top: 0; - font-size: 23px; } - .select-wrapper .mdi-navigation-arrow-drop-down.disabled { - color: rgba(0, 0, 0, 0.26); } - .select-wrapper + label { - position: absolute; - top: -14px; - font-size: 0.8rem; } - -select { - display: none; } - -select.browser-default { - display: block; } - -select:disabled { - color: rgba(0, 0, 0, 0.3); } - -.select-wrapper input.select-dropdown:disabled { - color: rgba(0, 0, 0, 0.3); - cursor: default; - -webkit-user-select: none; - /* webkit (safari, chrome) browsers */ - -moz-user-select: none; - /* mozilla browsers */ - -ms-user-select: none; - /* IE10+ */ - border-bottom: 1px solid rgba(0, 0, 0, 0.3); } - -.select-wrapper i { - color: rgba(0, 0, 0, 0.3); } - -.select-dropdown li.disabled { - color: rgba(0, 0, 0, 0.3); - background-color: transparent; } - -/********************* - File Input -**********************/ -.file-field { - position: relative; } - .file-field input.file-path { - margin-left: 100px; - width: calc(100% - 100px); } - .file-field .btn, .file-field .btn-large { - position: absolute; - top: 0; - left: 0; - height: 3rem; - line-height: 3rem; } - .file-field span { - cursor: pointer; } - .file-field input[type=file] { - position: absolute; - top: 0; - right: 0; - left: 0; - bottom: 0; - width: 100%; - margin: 0; - padding: 0; - font-size: 20px; - cursor: pointer; - opacity: 0; - filter: alpha(opacity=0); } - -/*************** - Range -***************/ -.range-field { - position: relative; } - -input[type=range], input[type=range] + .thumb { - cursor: pointer; } - -input[type=range] { - position: relative; - background-color: transparent; - border: none; - outline: none; - width: 100%; - margin: 15px 0px; - padding: 0; } - -input[type=range] + .thumb { - position: absolute; - border: none; - height: 0; - width: 0; - border-radius: 50%; - background-color: #26a69a; - top: 10px; - margin-left: -6px; - -webkit-transform-origin: 50% 50%; - -moz-transform-origin: 50% 50%; - -ms-transform-origin: 50% 50%; - -o-transform-origin: 50% 50%; - transform-origin: 50% 50%; - -webkit-transform: rotate(-45deg); - -moz-transform: rotate(-45deg); - -ms-transform: rotate(-45deg); - -o-transform: rotate(-45deg); - transform: rotate(-45deg); } - input[type=range] + .thumb .value { - display: block; - width: 30px; - text-align: center; - color: #26a69a; - font-size: 0; - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -ms-transform: rotate(45deg); - -o-transform: rotate(45deg); - transform: rotate(45deg); } - input[type=range] + .thumb.active { - border-radius: 50% 50% 50% 0; } - input[type=range] + .thumb.active .value { - color: #fff; - margin-left: -1px; - margin-top: 8px; - font-size: 10px; } - -input[type=range]:focus { - outline: none; } - -input[type=range] { - -webkit-appearance: none; } - -input[type=range]::-webkit-slider-runnable-track { - height: 3px; - background: #c2c0c2; - border: none; } - -input[type=range]::-webkit-slider-thumb { - -webkit-appearance: none; - border: none; - height: 14px; - width: 14px; - border-radius: 50%; - background-color: #26a69a; - transform-origin: 50% 50%; - margin: -5px 0 0 0; - -webkit-transition: 0.3s; - -moz-transition: 0.3s; - -o-transition: 0.3s; - -ms-transition: 0.3s; - transition: 0.3s; } - -input[type=range]:focus::-webkit-slider-runnable-track { - background: #ccc; } - -input[type=range] { - /* fix for FF unable to apply focus style bug */ - border: 1px solid white; - /*required for proper track sizing in FF*/ } - -input[type=range]::-moz-range-track { - height: 3px; - background: #ddd; - border: none; } - -input[type=range]::-moz-range-thumb { - border: none; - height: 14px; - width: 14px; - border-radius: 50%; - background: #26a69a; - margin-top: -5px; } - -/*hide the outline behind the border*/ -input[type=range]:-moz-focusring { - outline: 1px solid white; - outline-offset: -1px; } - -input[type=range]:focus::-moz-range-track { - background: #ccc; } - -input[type=range]::-ms-track { - height: 3px; - /*remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead */ - background: transparent; - /*leave room for the larger thumb to overflow with a transparent border */ - border-color: transparent; - border-width: 6px 0; - /*remove default tick marks*/ - color: transparent; } - -input[type=range]::-ms-fill-lower { - background: #777; } - -input[type=range]::-ms-fill-upper { - background: #ddd; } - -input[type=range]::-ms-thumb { - border: none; - height: 14px; - width: 14px; - border-radius: 50%; - background: #26a69a; } - -input[type=range]:focus::-ms-fill-lower { - background: #888; } - -input[type=range]:focus::-ms-fill-upper { - background: #ccc; } - -/*************************** - Text Inputs + Textarea -****************************/ -select { - background-color: rgba(255, 255, 255, 0.9); - width: 100%; - padding: 5px; - border: 1px solid #f2f2f2; - border-radius: 2px; - height: 3rem; } - -/*************** - Nav List -***************/ -.table-of-contents.fixed { - position: fixed; } -.table-of-contents li { - padding: 2px 0; } -.table-of-contents a { - display: inline-block; - font-weight: 300; - color: #757575; - padding-left: 20px; - height: 1.5rem; - line-height: 1.5rem; - letter-spacing: .4; - display: inline-block; } - .table-of-contents a:hover { - color: #a8a8a8; - padding-left: 19px; - border-left: 1px solid #ea4a4f; } - .table-of-contents a.active { - font-weight: 500; - padding-left: 18px; - border-left: 2px solid #ea4a4f; } - -.side-nav { - position: fixed; - width: 240px; - left: -105%; - top: 0; - margin: 0; - height: 100%; - height: calc(100% + 60px); - height: -moz-calc(100%); - padding-bottom: 60px; - background-color: #FFF; - z-index: 999; - overflow-y: auto; - will-change: left; } - .side-nav.right-aligned { - will-change: right; - right: -105%; - left: auto; } - .side-nav .collapsible { - margin: 0; } - .side-nav li { - float: none; - padding: 0 15px; } - .side-nav li:hover, .side-nav li.active { - background-color: #ddd; } - .side-nav a { - color: #444; - display: block; - font-size: 1rem; - height: 64px; - line-height: 64px; - padding: 0 15px; } - -.drag-target { - height: 100%; - width: 10px; - position: fixed; - top: 0; - z-index: 998; } - -.side-nav.fixed a { - display: block; - padding: 0 15px; - color: #444; } - -.side-nav.fixed { - left: 0; - position: fixed; } - .side-nav.fixed.right-aligned { - right: 0; - left: auto; } - -@media only screen and (max-width : 992px) { - .side-nav.fixed { - left: -105%; } - .side-nav.fixed.right-aligned { - right: -105%; - left: auto; } } - -.side-nav .collapsible-body li.active, .side-nav.fixed .collapsible-body li.active { - background-color: #ee6e73; } - .side-nav .collapsible-body li.active a, .side-nav.fixed .collapsible-body li.active a { - color: #fff; } - -#sidenav-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - height: 120vh; - background-color: rgba(0, 0, 0, 0.5); - z-index: 997; - will-change: opacity; } - -/* - @license - Copyright (c) 2014 The Polymer Project Authors. All rights reserved. - This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - Code distributed by Google as part of the polymer project is also - subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ -/**************************/ -/* STYLES FOR THE SPINNER */ -/**************************/ -/* - * Constants: - * STROKEWIDTH = 3px - * ARCSIZE = 270 degrees (amount of circle the arc takes up) - * ARCTIME = 1333ms (time it takes to expand and contract arc) - * ARCSTARTROT = 216 degrees (how much the start location of the arc - * should rotate each time, 216 gives us a - * 5 pointed star shape (it's 360/5 * 3). - * For a 7 pointed star, we might do - * 360/7 * 3 = 154.286) - * CONTAINERWIDTH = 28px - * SHRINK_TIME = 400ms - */ -.preloader-wrapper { - display: inline-block; - position: relative; - width: 48px; - height: 48px; } - .preloader-wrapper.small { - width: 36px; - height: 36px; } - .preloader-wrapper.big { - width: 64px; - height: 64px; } - .preloader-wrapper.active { - /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */ - -webkit-animation: container-rotate 1568ms linear infinite; - animation: container-rotate 1568ms linear infinite; } - -@-webkit-keyframes container-rotate { - to { - -webkit-transform: rotate(360deg); } } - -@keyframes container-rotate { - to { - transform: rotate(360deg); } } - -.spinner-layer { - position: absolute; - width: 100%; - height: 100%; - opacity: 0; } - -.spinner-blue, .spinner-blue-only { - border-color: #4285f4; } - -.spinner-red, .spinner-red-only { - border-color: #db4437; } - -.spinner-yellow, .spinner-yellow-only { - border-color: #f4b400; } - -.spinner-green, .spinner-green-only { - border-color: #0f9d58; } - -/** - * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee): - * - * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't - * guarantee that the animation will start _exactly_ after that value. So we avoid using - * animation-delay and instead set custom keyframes for each color (as redundant as it - * seems). - * - * We write out each animation in full (instead of separating animation-name, - * animation-duration, etc.) because under the polyfill, Safari does not recognize those - * specific properties properly, treats them as -webkit-animation, and overrides the - * other animation rules. See https://github.com/Polymer/platform/issues/53. - */ -.active .spinner-layer.spinner-blue { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } - -.active .spinner-layer.spinner-red { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } - -.active .spinner-layer.spinner-yellow { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } - -.active .spinner-layer.spinner-green { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } - -.active .spinner-layer.spinner-blue-only, .active .spinner-layer.spinner-red-only, .active .spinner-layer.spinner-yellow-only, .active .spinner-layer.spinner-green-only { - /* durations: 4 * ARCTIME */ - opacity: 1; - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } - -@-webkit-keyframes fill-unfill-rotate { - /* 0.5 * ARCSIZE */ - /* 1 * ARCSIZE */ - /* 1.5 * ARCSIZE */ - /* 2 * ARCSIZE */ - /* 2.5 * ARCSIZE */ - /* 3 * ARCSIZE */ - /* 3.5 * ARCSIZE */ - /* 4 * ARCSIZE */ - 12.5% { - -webkit-transform: rotate(135deg); } - - 25% { - -webkit-transform: rotate(270deg); } - - 37.5% { - -webkit-transform: rotate(405deg); } - - 50% { - -webkit-transform: rotate(540deg); } - - 62.5% { - -webkit-transform: rotate(675deg); } - - 75% { - -webkit-transform: rotate(810deg); } - - 87.5% { - -webkit-transform: rotate(945deg); } - - to { - -webkit-transform: rotate(1080deg); } } - -@keyframes fill-unfill-rotate { - /* 0.5 * ARCSIZE */ - /* 1 * ARCSIZE */ - /* 1.5 * ARCSIZE */ - /* 2 * ARCSIZE */ - /* 2.5 * ARCSIZE */ - /* 3 * ARCSIZE */ - /* 3.5 * ARCSIZE */ - /* 4 * ARCSIZE */ - 12.5% { - transform: rotate(135deg); } - - 25% { - transform: rotate(270deg); } - - 37.5% { - transform: rotate(405deg); } - - 50% { - transform: rotate(540deg); } - - 62.5% { - transform: rotate(675deg); } - - 75% { - transform: rotate(810deg); } - - 87.5% { - transform: rotate(945deg); } - - to { - transform: rotate(1080deg); } } - -@-webkit-keyframes blue-fade-in-out { - from { - opacity: 1; } - - 25% { - opacity: 1; } - - 26% { - opacity: 0; } - - 89% { - opacity: 0; } - - 90% { - opacity: 1; } - - 100% { - opacity: 1; } } - -@keyframes blue-fade-in-out { - from { - opacity: 1; } - - 25% { - opacity: 1; } - - 26% { - opacity: 0; } - - 89% { - opacity: 0; } - - 90% { - opacity: 1; } - - 100% { - opacity: 1; } } - -@-webkit-keyframes red-fade-in-out { - from { - opacity: 0; } - - 15% { - opacity: 0; } - - 25% { - opacity: 1; } - - 50% { - opacity: 1; } - - 51% { - opacity: 0; } } - -@keyframes red-fade-in-out { - from { - opacity: 0; } - - 15% { - opacity: 0; } - - 25% { - opacity: 1; } - - 50% { - opacity: 1; } - - 51% { - opacity: 0; } } - -@-webkit-keyframes yellow-fade-in-out { - from { - opacity: 0; } - - 40% { - opacity: 0; } - - 50% { - opacity: 1; } - - 75% { - opacity: 1; } - - 76% { - opacity: 0; } } - -@keyframes yellow-fade-in-out { - from { - opacity: 0; } - - 40% { - opacity: 0; } - - 50% { - opacity: 1; } - - 75% { - opacity: 1; } - - 76% { - opacity: 0; } } - -@-webkit-keyframes green-fade-in-out { - from { - opacity: 0; } - - 65% { - opacity: 0; } - - 75% { - opacity: 1; } - - 90% { - opacity: 1; } - - 100% { - opacity: 0; } } - -@keyframes green-fade-in-out { - from { - opacity: 0; } - - 65% { - opacity: 0; } - - 75% { - opacity: 1; } - - 90% { - opacity: 1; } - - 100% { - opacity: 0; } } - -/** - * Patch the gap that appear between the two adjacent div.circle-clipper while the - * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11). - */ -.gap-patch { - position: absolute; - top: 0; - left: 45%; - width: 10%; - height: 100%; - overflow: hidden; - border-color: inherit; } - -.gap-patch .circle { - width: 1000%; - left: -450%; } - -.circle-clipper { - display: inline-block; - position: relative; - width: 50%; - height: 100%; - overflow: hidden; - border-color: inherit; } - .circle-clipper .circle { - width: 200%; - height: 100%; - border-width: 3px; - /* STROKEWIDTH */ - border-style: solid; - border-color: inherit; - border-bottom-color: transparent !important; - border-radius: 50%; - -webkit-animation: none; - animation: none; - position: absolute; - top: 0; - right: 0; - bottom: 0; } - .circle-clipper.left .circle { - left: 0; - border-right-color: transparent !important; - -webkit-transform: rotate(129deg); - transform: rotate(129deg); } - .circle-clipper.right .circle { - left: -100%; - border-left-color: transparent !important; - -webkit-transform: rotate(-129deg); - transform: rotate(-129deg); } - -.active .circle-clipper.left .circle { - /* duration: ARCTIME */ - -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } - -.active .circle-clipper.right .circle { - /* duration: ARCTIME */ - -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } - -@-webkit-keyframes left-spin { - from { - -webkit-transform: rotate(130deg); } - - 50% { - -webkit-transform: rotate(-5deg); } - - to { - -webkit-transform: rotate(130deg); } } - -@keyframes left-spin { - from { - transform: rotate(130deg); } - - 50% { - transform: rotate(-5deg); } - - to { - transform: rotate(130deg); } } - -@-webkit-keyframes right-spin { - from { - -webkit-transform: rotate(-130deg); } - - 50% { - -webkit-transform: rotate(5deg); } - - to { - -webkit-transform: rotate(-130deg); } } - -@keyframes right-spin { - from { - transform: rotate(-130deg); } - - 50% { - transform: rotate(5deg); } - - to { - transform: rotate(-130deg); } } - -#spinnerContainer.cooldown { - /* duration: SHRINK_TIME */ - -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1); - animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1); } - -@-webkit-keyframes fade-out { - from { - opacity: 1; } - - to { - opacity: 0; } } - -@keyframes fade-out { - from { - opacity: 1; } - - to { - opacity: 0; } } - -.slider { - position: relative; - height: 440px; - width: 100%; } - .slider.fullscreen { - height: 100%; - width: 100%; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; } - .slider.fullscreen ul.slides { - height: 100%; } - .slider.fullscreen ul.indicators { - z-index: 2; - bottom: 30px; } - .slider .slides { - background-color: #9e9e9e; - margin: 0; - height: 400px; } - .slider .slides li { - opacity: 0; - position: absolute; - top: 0; - left: 0; - z-index: 1; - width: 100%; - height: inherit; - overflow: hidden; } - .slider .slides li img { - height: 100%; - width: 100%; - background-size: cover; - background-position: center; } - .slider .slides li .caption { - color: #fff; - position: absolute; - top: 15%; - left: 15%; - width: 70%; - opacity: 0; } - .slider .slides li .caption p { - color: #e0e0e0; } - .slider .slides li.active { - z-index: 2; } - .slider .indicators { - position: absolute; - text-align: center; - left: 0; - right: 0; - bottom: 0; - margin: 0; } - .slider .indicators .indicator-item { - display: inline-block; - position: relative; - cursor: pointer; - height: 16px; - width: 16px; - margin: 0 12px; - background-color: #e0e0e0; - -webkit-transition: background-color .3s; - -moz-transition: background-color .3s; - -o-transition: background-color .3s; - -ms-transition: background-color .3s; - transition: background-color .3s; - border-radius: 50%; } - .slider .indicators .indicator-item.active { - background-color: #4CAF50; } - -/* ========================================================================== - $BASE-PICKER - ========================================================================== */ -/** - * Note: the root picker element should *NOT* be styled more than what's here. - */ -.picker { - font-size: 16px; - text-align: left; - line-height: 1.2; - color: #000000; - position: absolute; - z-index: 10000; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -/** - * The picker input element. - */ -.picker__input { - cursor: default; } - -/** - * When the picker is opened, the input element is "activated". - */ -.picker__input.picker__input--active { - border-color: #0089ec; } - -/** - * The holder is the only "scrollable" top-level container element. - */ -.picker__holder { - width: 100%; - overflow-y: auto; - -webkit-overflow-scrolling: touch; } - -/*! - * Default mobile-first, responsive styling for pickadate.js - * Demo: http://amsul.github.io/pickadate.js - */ -/** - * Note: the root picker element should *NOT* be styled more than what's here. - */ -/** - * Make the holder and frame fullscreen. - */ -.picker__holder, .picker__frame { - bottom: 0; - left: 0; - right: 0; - top: 100%; } - -/** - * The holder should overlay the entire screen. - */ -.picker__holder { - position: fixed; - -webkit-transition: background 0.15s ease-out, top 0s 0.15s; - -moz-transition: background 0.15s ease-out, top 0s 0.15s; - transition: background 0.15s ease-out, top 0s 0.15s; - -webkit-backface-visibility: hidden; } - -/** - * The frame that bounds the box contents of the picker. - */ -.picker__frame { - position: absolute; - margin: 0 auto; - min-width: 256px; - max-width: 300px; - max-height: 350px; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -moz-opacity: 0; - opacity: 0; - -webkit-transition: all 0.15s ease-out; - -moz-transition: all 0.15s ease-out; - transition: all 0.15s ease-out; } - -@media (min-height: 28.875em) { - .picker__frame { - overflow: visible; - top: auto; - bottom: -100%; - max-height: 80%; } } - -@media (min-height: 40.125em) { - .picker__frame { - margin-bottom: 7.5%; } } - -/** - * The wrapper sets the stage to vertically align the box contents. - */ -.picker__wrap { - display: table; - width: 100%; - height: 100%; } - -@media (min-height: 28.875em) { - .picker__wrap { - display: block; } } - -/** - * The box contains all the picker contents. - */ -.picker__box { - background: #ffffff; - display: table-cell; - vertical-align: middle; } - -@media (min-height: 28.875em) { - .picker__box { - display: block; - border: 1px solid #777777; - border-top-color: #898989; - border-bottom-width: 0; - -webkit-border-radius: 5px 5px 0 0; - -moz-border-radius: 5px 5px 0 0; - border-radius: 5px 5px 0 0; - -webkit-box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); - -moz-box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); - box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); } } - -/** - * When the picker opens... - */ -.picker--opened .picker__holder { - top: 0; - background: transparent; - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)"; - zoom: 1; - background: rgba(0, 0, 0, 0.32); - -webkit-transition: background 0.15s ease-out; - -moz-transition: background 0.15s ease-out; - transition: background 0.15s ease-out; } - -.picker--opened .picker__frame { - top: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; - filter: alpha(opacity=100); - -moz-opacity: 1; - opacity: 1; } - -@media (min-height: 35.875em) { - .picker--opened .picker__frame { - top: 10%; - bottom: 20% auto; } } - -/** - * For `large` screens, transform into an inline picker. - */ -/* ========================================================================== - CUSTOM MATERIALIZE STYLES - ========================================================================== */ -.picker__input.picker__input--active { - border-color: #E3F2FD; } - -.picker__frame { - margin: 0 auto; - max-width: 325px; } - -@media (min-height: 38.875em) { - .picker--opened .picker__frame { - top: 10%; - bottom: auto; } } - -/* ========================================================================== - $BASE-DATE-PICKER - ========================================================================== */ -/** - * The picker box. - */ -.picker__box { - padding: 0 1em; } - -/** - * The header containing the month and year stuff. - */ -.picker__header { - text-align: center; - position: relative; - margin-top: .75em; } - -/** - * The month and year labels. - */ -.picker__month, .picker__year { - display: inline-block; - margin-left: .25em; - margin-right: .25em; } - -/** - * The month and year selectors. - */ -.picker__select--month, .picker__select--year { - height: 2em; - padding: 0; - margin-left: .25em; - margin-right: .25em; } - -.picker__select--month.browser-default { - display: inline; - background-color: #FFFFFF; - width: 40%; } - -.picker__select--year.browser-default { - display: inline; - background-color: #FFFFFF; - width: 25%; } - -.picker__select--month:focus, .picker__select--year:focus { - border-color: rgba(0, 0, 0, 0.05); } - -/** - * The month navigation buttons. - */ -.picker__nav--prev, .picker__nav--next { - position: absolute; - padding: .5em 1.25em; - width: 1em; - height: 1em; - box-sizing: content-box; - top: -0.25em; } - -.picker__nav--prev { - left: -1em; - padding-right: 1.25em; } - -.picker__nav--next { - right: -1em; - padding-left: 1.25em; } - -.picker__nav--disabled, .picker__nav--disabled:hover, .picker__nav--disabled:before, .picker__nav--disabled:before:hover { - cursor: default; - background: none; - border-right-color: #f5f5f5; - border-left-color: #f5f5f5; } - -/** - * The calendar table of dates - */ -.picker__table { - text-align: center; - border-collapse: collapse; - border-spacing: 0; - table-layout: fixed; - font-size: 1rem; - width: 100%; - margin-top: .75em; - margin-bottom: .5em; } - -.picker__table th, .picker__table td { - text-align: center; } - -.picker__table td { - margin: 0; - padding: 0; } - -/** - * The weekday labels - */ -.picker__weekday { - width: 14.285714286%; - font-size: .75em; - padding-bottom: .25em; - color: #999999; - font-weight: 500; - /* Increase the spacing a tad */ } - -@media (min-height: 33.875em) { - .picker__weekday { - padding-bottom: .5em; } } - -/** - * The days on the calendar - */ -.picker__day--today { - position: relative; - color: #595959; - letter-spacing: -.3; - padding: .75rem 0; - font-weight: 400; - border: 1px solid transparent; } - -.picker__day--disabled:before { - border-top-color: #aaaaaa; } - -.picker__day--infocus:hover { - cursor: pointer; - color: #000; - font-weight: 500; } - -.picker__day--outfocus { - display: none; - padding: .75rem 0; - color: #fff; } - -.picker__day--outfocus:hover { - cursor: pointer; - color: #dddddd; - font-weight: 500; } - -.picker__day--highlighted:hover, .picker--focused .picker__day--highlighted { - cursor: pointer; } - -.picker__day--selected, .picker__day--selected:hover, .picker--focused .picker__day--selected { - border-radius: 50%; - -webkit-transform: scale(.75); - -moz-transform: scale(.75); - -ms-transform: scale(.75); - -o-transform: scale(.75); - transform: scale(.75); - background: #0089ec; - color: #ffffff; } - -.picker__day--disabled, .picker__day--disabled:hover, .picker--focused .picker__day--disabled { - background: #f5f5f5; - border-color: #f5f5f5; - color: #dddddd; - cursor: default; } - -.picker__day--highlighted.picker__day--disabled, .picker__day--highlighted.picker__day--disabled:hover { - background: #bbbbbb; } - -/** - * The footer containing the "today", "clear", and "close" buttons. - */ -.picker__footer { - text-align: center; - display: flex; - align-items: center; - justify-content: space-between; } - -.picker__button--today, .picker__button--clear, .picker__button--close { - border: 1px solid #ffffff; - background: #ffffff; - font-size: .8em; - padding: .66em 0; - font-weight: bold; - width: 33%; - display: inline-block; - vertical-align: bottom; } - -.picker__button--today:hover, .picker__button--clear:hover, .picker__button--close:hover { - cursor: pointer; - color: #000000; - background: #b1dcfb; - border-bottom-color: #b1dcfb; } - -.picker__button--today:focus, .picker__button--clear:focus, .picker__button--close:focus { - background: #b1dcfb; - border-color: rgba(0, 0, 0, 0.05); - outline: none; } - -.picker__button--today:before, .picker__button--clear:before, .picker__button--close:before { - position: relative; - display: inline-block; - height: 0; } - -.picker__button--today:before, .picker__button--clear:before { - content: " "; - margin-right: .45em; } - -.picker__button--today:before { - top: -0.05em; - width: 0; - border-top: 0.66em solid #0059bc; - border-left: .66em solid transparent; } - -.picker__button--clear:before { - top: -0.25em; - width: .66em; - border-top: 3px solid #ee2200; } - -.picker__button--close:before { - content: "\D7"; - top: -0.1em; - vertical-align: top; - font-size: 1.1em; - margin-right: .35em; - color: #777777; } - -.picker__button--today[disabled], .picker__button--today[disabled]:hover { - background: #f5f5f5; - border-color: #f5f5f5; - color: #dddddd; - cursor: default; } - -.picker__button--today[disabled]:before { - border-top-color: #aaaaaa; } - -/* ========================================================================== - CUSTOM MATERIALIZE STYLES - ========================================================================== */ -.picker__box { - border-radius: 2px; - overflow: hidden; } - -.picker__date-display { - text-align: center; - background-color: #26a69a; - color: #fff; - padding-bottom: 15px; - font-weight: 300; } - -.picker__nav--prev:hover, .picker__nav--next:hover { - cursor: pointer; - color: #000000; - background: #a1ded8; } - -.picker__weekday-display { - background-color: #1f897f; - padding: 10px; - font-weight: 200; - letter-spacing: .5; - font-size: 1rem; - margin-bottom: 15px; } - -.picker__month-display { - text-transform: uppercase; - font-size: 2rem; } - -.picker__day-display { - font-size: 4.5rem; - font-weight: 400; } - -.picker__year-display { - font-size: 1.8rem; - color: rgba(255, 255, 255, 0.4); } - -.picker__box { - padding: 0; } - -.picker__calendar-container { - padding: 0 1rem; } - .picker__calendar-container thead { - border: none; } - -.picker__table { - margin-top: 0; - margin-bottom: .5em; } - -.picker__day--infocus { - color: #595959; - letter-spacing: -.3; - padding: .75rem 0; - font-weight: 400; - border: 1px solid transparent; } - -.picker__day.picker__day--today { - color: #26a69a; } - -.picker__day.picker__day--today.picker__day--selected { - color: #fff; } - -.picker__weekday { - font-size: .9rem; } - -.picker__day--selected, .picker__day--selected:hover, .picker--focused .picker__day--selected { - border-radius: 50%; - -webkit-transform: scale(.9); - -moz-transform: scale(.9); - -ms-transform: scale(.9); - -o-transform: scale(.9); - transform: scale(.9); - background-color: #26a69a; - color: #ffffff; } - .picker__day--selected.picker__day--outfocus, .picker__day--selected:hover.picker__day--outfocus, .picker--focused .picker__day--selected.picker__day--outfocus { - background-color: #a1ded8; } - -.picker__footer { - text-align: right; - padding: 5px 10px; } - -.picker__close, .picker__today { - font-size: 1.1rem; - padding: 0 1rem; - color: #26a69a; } - -.picker__nav--prev:before, .picker__nav--next:before { - content: " "; - border-top: .5em solid transparent; - border-bottom: .5em solid transparent; - border-right: 0.75em solid #676767; - width: 0; - height: 0; - display: block; - margin: 0 auto; } - -.picker__nav--next:before { - border-right: 0; - border-left: 0.75em solid #676767; } - -button.picker__today:focus, button.picker__clear:focus, button.picker__close:focus { - background-color: #a1ded8; } - -/* ========================================================================== - $BASE-TIME-PICKER - ========================================================================== */ -/** - * The list of times. - */ -.picker__list { - list-style: none; - padding: 0.75em 0 4.2em; - margin: 0; } - -/** - * The times on the clock. - */ -.picker__list-item { - border-bottom: 1px solid #dddddd; - border-top: 1px solid #dddddd; - margin-bottom: -1px; - position: relative; - background: #ffffff; - padding: .75em 1.25em; } - -@media (min-height: 46.75em) { - .picker__list-item { - padding: .5em 1em; } } - -/* Hovered time */ -.picker__list-item:hover { - cursor: pointer; - color: #000000; - background: #b1dcfb; - border-color: #0089ec; - z-index: 10; } - -/* Highlighted and hovered/focused time */ -.picker__list-item--highlighted { - border-color: #0089ec; - z-index: 10; } - -.picker__list-item--highlighted:hover, .picker--focused .picker__list-item--highlighted { - cursor: pointer; - color: #000000; - background: #b1dcfb; } - -/* Selected and hovered/focused time */ -.picker__list-item--selected, .picker__list-item--selected:hover, .picker--focused .picker__list-item--selected { - background: #0089ec; - color: #ffffff; - z-index: 10; } - -/* Disabled time */ -.picker__list-item--disabled, .picker__list-item--disabled:hover, .picker--focused .picker__list-item--disabled { - background: #f5f5f5; - border-color: #f5f5f5; - color: #dddddd; - cursor: default; - border-color: #dddddd; - z-index: auto; } - -/** - * The clear button - */ -.picker--time .picker__button--clear { - display: block; - width: 80%; - margin: 1em auto 0; - padding: 1em 1.25em; - background: none; - border: 0; - font-weight: 500; - font-size: .67em; - text-align: center; - text-transform: uppercase; - color: #666; } - -.picker--time .picker__button--clear:hover, .picker--time .picker__button--clear:focus { - color: #000000; - background: #b1dcfb; - background: #ee2200; - border-color: #ee2200; - cursor: pointer; - color: #ffffff; - outline: none; } - -.picker--time .picker__button--clear:before { - top: -0.25em; - color: #666; - font-size: 1.25em; - font-weight: bold; } - -.picker--time .picker__button--clear:hover:before, .picker--time .picker__button--clear:focus:before { - color: #ffffff; } - -/* ========================================================================== - $DEFAULT-TIME-PICKER - ========================================================================== */ -/** - * The frame the bounds the time picker. - */ -.picker--time .picker__frame { - min-width: 256px; - max-width: 320px; } - -/** - * The picker box. - */ -.picker--time .picker__box { - font-size: 1em; - background: #f2f2f2; - padding: 0; } - -@media (min-height: 40.125em) { - .picker--time .picker__box { - margin-bottom: 5em; } } +.materialize-red.lighten-5 { + background-color: #fdeaeb !important; } + +.materialize-red-text.text-lighten-5 { + color: #fdeaeb !important; } + +.materialize-red.lighten-4 { + background-color: #f8c1c3 !important; } + +.materialize-red-text.text-lighten-4 { + color: #f8c1c3 !important; } + +.materialize-red.lighten-3 { + background-color: #f3989b !important; } + +.materialize-red-text.text-lighten-3 { + color: #f3989b !important; } + +.materialize-red.lighten-2 { + background-color: #ee6e73 !important; } + +.materialize-red-text.text-lighten-2 { + color: #ee6e73 !important; } + +.materialize-red.lighten-1 { + background-color: #ea454b !important; } + +.materialize-red-text.text-lighten-1 { + color: #ea454b !important; } + +.materialize-red { + background-color: #e51c23 !important; } + +.materialize-red-text { + color: #e51c23 !important; } + +.materialize-red.darken-1 { + background-color: #d0181e !important; } + +.materialize-red-text.text-darken-1 { + color: #d0181e !important; } + +.materialize-red.darken-2 { + background-color: #b9151b !important; } + +.materialize-red-text.text-darken-2 { + color: #b9151b !important; } + +.materialize-red.darken-3 { + background-color: #a21318 !important; } + +.materialize-red-text.text-darken-3 { + color: #a21318 !important; } + +.materialize-red.darken-4 { + background-color: #8b1014 !important; } + +.materialize-red-text.text-darken-4 { + color: #8b1014 !important; } + +.red.lighten-5 { + background-color: #FFEBEE !important; } + +.red-text.text-lighten-5 { + color: #FFEBEE !important; } + +.red.lighten-4 { + background-color: #FFCDD2 !important; } + +.red-text.text-lighten-4 { + color: #FFCDD2 !important; } + +.red.lighten-3 { + background-color: #EF9A9A !important; } + +.red-text.text-lighten-3 { + color: #EF9A9A !important; } + +.red.lighten-2 { + background-color: #E57373 !important; } + +.red-text.text-lighten-2 { + color: #E57373 !important; } + +.red.lighten-1 { + background-color: #EF5350 !important; } + +.red-text.text-lighten-1 { + color: #EF5350 !important; } + +.red { + background-color: #F44336 !important; } + +.red-text { + color: #F44336 !important; } + +.red.darken-1 { + background-color: #E53935 !important; } + +.red-text.text-darken-1 { + color: #E53935 !important; } + +.red.darken-2 { + background-color: #D32F2F !important; } + +.red-text.text-darken-2 { + color: #D32F2F !important; } + +.red.darken-3 { + background-color: #C62828 !important; } + +.red-text.text-darken-3 { + color: #C62828 !important; } + +.red.darken-4 { + background-color: #B71C1C !important; } + +.red-text.text-darken-4 { + color: #B71C1C !important; } + +.red.accent-1 { + background-color: #FF8A80 !important; } + +.red-text.text-accent-1 { + color: #FF8A80 !important; } + +.red.accent-2 { + background-color: #FF5252 !important; } + +.red-text.text-accent-2 { + color: #FF5252 !important; } + +.red.accent-3 { + background-color: #FF1744 !important; } + +.red-text.text-accent-3 { + color: #FF1744 !important; } + +.red.accent-4 { + background-color: #D50000 !important; } + +.red-text.text-accent-4 { + color: #D50000 !important; } + +.pink.lighten-5 { + background-color: #fce4ec !important; } + +.pink-text.text-lighten-5 { + color: #fce4ec !important; } + +.pink.lighten-4 { + background-color: #f8bbd0 !important; } + +.pink-text.text-lighten-4 { + color: #f8bbd0 !important; } + +.pink.lighten-3 { + background-color: #f48fb1 !important; } + +.pink-text.text-lighten-3 { + color: #f48fb1 !important; } + +.pink.lighten-2 { + background-color: #f06292 !important; } + +.pink-text.text-lighten-2 { + color: #f06292 !important; } + +.pink.lighten-1 { + background-color: #ec407a !important; } + +.pink-text.text-lighten-1 { + color: #ec407a !important; } + +.pink { + background-color: #e91e63 !important; } + +.pink-text { + color: #e91e63 !important; } + +.pink.darken-1 { + background-color: #d81b60 !important; } + +.pink-text.text-darken-1 { + color: #d81b60 !important; } + +.pink.darken-2 { + background-color: #c2185b !important; } + +.pink-text.text-darken-2 { + color: #c2185b !important; } + +.pink.darken-3 { + background-color: #ad1457 !important; } + +.pink-text.text-darken-3 { + color: #ad1457 !important; } + +.pink.darken-4 { + background-color: #880e4f !important; } + +.pink-text.text-darken-4 { + color: #880e4f !important; } + +.pink.accent-1 { + background-color: #ff80ab !important; } + +.pink-text.text-accent-1 { + color: #ff80ab !important; } + +.pink.accent-2 { + background-color: #ff4081 !important; } + +.pink-text.text-accent-2 { + color: #ff4081 !important; } + +.pink.accent-3 { + background-color: #f50057 !important; } + +.pink-text.text-accent-3 { + color: #f50057 !important; } + +.pink.accent-4 { + background-color: #c51162 !important; } + +.pink-text.text-accent-4 { + color: #c51162 !important; } + +.purple.lighten-5 { + background-color: #f3e5f5 !important; } + +.purple-text.text-lighten-5 { + color: #f3e5f5 !important; } + +.purple.lighten-4 { + background-color: #e1bee7 !important; } + +.purple-text.text-lighten-4 { + color: #e1bee7 !important; } + +.purple.lighten-3 { + background-color: #ce93d8 !important; } + +.purple-text.text-lighten-3 { + color: #ce93d8 !important; } + +.purple.lighten-2 { + background-color: #ba68c8 !important; } + +.purple-text.text-lighten-2 { + color: #ba68c8 !important; } + +.purple.lighten-1 { + background-color: #ab47bc !important; } + +.purple-text.text-lighten-1 { + color: #ab47bc !important; } + +.purple { + background-color: #9c27b0 !important; } + +.purple-text { + color: #9c27b0 !important; } + +.purple.darken-1 { + background-color: #8e24aa !important; } + +.purple-text.text-darken-1 { + color: #8e24aa !important; } + +.purple.darken-2 { + background-color: #7b1fa2 !important; } + +.purple-text.text-darken-2 { + color: #7b1fa2 !important; } + +.purple.darken-3 { + background-color: #6a1b9a !important; } + +.purple-text.text-darken-3 { + color: #6a1b9a !important; } + +.purple.darken-4 { + background-color: #4a148c !important; } + +.purple-text.text-darken-4 { + color: #4a148c !important; } + +.purple.accent-1 { + background-color: #ea80fc !important; } + +.purple-text.text-accent-1 { + color: #ea80fc !important; } + +.purple.accent-2 { + background-color: #e040fb !important; } + +.purple-text.text-accent-2 { + color: #e040fb !important; } + +.purple.accent-3 { + background-color: #d500f9 !important; } + +.purple-text.text-accent-3 { + color: #d500f9 !important; } + +.purple.accent-4 { + background-color: #aa00ff !important; } + +.purple-text.text-accent-4 { + color: #aa00ff !important; } + +.deep-purple.lighten-5 { + background-color: #ede7f6 !important; } + +.deep-purple-text.text-lighten-5 { + color: #ede7f6 !important; } + +.deep-purple.lighten-4 { + background-color: #d1c4e9 !important; } + +.deep-purple-text.text-lighten-4 { + color: #d1c4e9 !important; } + +.deep-purple.lighten-3 { + background-color: #b39ddb !important; } + +.deep-purple-text.text-lighten-3 { + color: #b39ddb !important; } + +.deep-purple.lighten-2 { + background-color: #9575cd !important; } + +.deep-purple-text.text-lighten-2 { + color: #9575cd !important; } + +.deep-purple.lighten-1 { + background-color: #7e57c2 !important; } + +.deep-purple-text.text-lighten-1 { + color: #7e57c2 !important; } + +.deep-purple { + background-color: #673ab7 !important; } + +.deep-purple-text { + color: #673ab7 !important; } + +.deep-purple.darken-1 { + background-color: #5e35b1 !important; } + +.deep-purple-text.text-darken-1 { + color: #5e35b1 !important; } + +.deep-purple.darken-2 { + background-color: #512da8 !important; } + +.deep-purple-text.text-darken-2 { + color: #512da8 !important; } + +.deep-purple.darken-3 { + background-color: #4527a0 !important; } + +.deep-purple-text.text-darken-3 { + color: #4527a0 !important; } + +.deep-purple.darken-4 { + background-color: #311b92 !important; } + +.deep-purple-text.text-darken-4 { + color: #311b92 !important; } + +.deep-purple.accent-1 { + background-color: #b388ff !important; } + +.deep-purple-text.text-accent-1 { + color: #b388ff !important; } + +.deep-purple.accent-2 { + background-color: #7c4dff !important; } + +.deep-purple-text.text-accent-2 { + color: #7c4dff !important; } + +.deep-purple.accent-3 { + background-color: #651fff !important; } + +.deep-purple-text.text-accent-3 { + color: #651fff !important; } + +.deep-purple.accent-4 { + background-color: #6200ea !important; } + +.deep-purple-text.text-accent-4 { + color: #6200ea !important; } + +.indigo.lighten-5 { + background-color: #e8eaf6 !important; } + +.indigo-text.text-lighten-5 { + color: #e8eaf6 !important; } + +.indigo.lighten-4 { + background-color: #c5cae9 !important; } + +.indigo-text.text-lighten-4 { + color: #c5cae9 !important; } + +.indigo.lighten-3 { + background-color: #9fa8da !important; } + +.indigo-text.text-lighten-3 { + color: #9fa8da !important; } + +.indigo.lighten-2 { + background-color: #7986cb !important; } + +.indigo-text.text-lighten-2 { + color: #7986cb !important; } + +.indigo.lighten-1 { + background-color: #5c6bc0 !important; } + +.indigo-text.text-lighten-1 { + color: #5c6bc0 !important; } + +.indigo { + background-color: #3f51b5 !important; } + +.indigo-text { + color: #3f51b5 !important; } + +.indigo.darken-1 { + background-color: #3949ab !important; } + +.indigo-text.text-darken-1 { + color: #3949ab !important; } + +.indigo.darken-2 { + background-color: #303f9f !important; } + +.indigo-text.text-darken-2 { + color: #303f9f !important; } + +.indigo.darken-3 { + background-color: #283593 !important; } + +.indigo-text.text-darken-3 { + color: #283593 !important; } + +.indigo.darken-4 { + background-color: #1a237e !important; } + +.indigo-text.text-darken-4 { + color: #1a237e !important; } + +.indigo.accent-1 { + background-color: #8c9eff !important; } + +.indigo-text.text-accent-1 { + color: #8c9eff !important; } + +.indigo.accent-2 { + background-color: #536dfe !important; } + +.indigo-text.text-accent-2 { + color: #536dfe !important; } + +.indigo.accent-3 { + background-color: #3d5afe !important; } + +.indigo-text.text-accent-3 { + color: #3d5afe !important; } + +.indigo.accent-4 { + background-color: #304ffe !important; } + +.indigo-text.text-accent-4 { + color: #304ffe !important; } + +.blue.lighten-5 { + background-color: #E3F2FD !important; } + +.blue-text.text-lighten-5 { + color: #E3F2FD !important; } + +.blue.lighten-4 { + background-color: #BBDEFB !important; } + +.blue-text.text-lighten-4 { + color: #BBDEFB !important; } + +.blue.lighten-3 { + background-color: #90CAF9 !important; } + +.blue-text.text-lighten-3 { + color: #90CAF9 !important; } + +.blue.lighten-2 { + background-color: #64B5F6 !important; } + +.blue-text.text-lighten-2 { + color: #64B5F6 !important; } + +.blue.lighten-1 { + background-color: #42A5F5 !important; } + +.blue-text.text-lighten-1 { + color: #42A5F5 !important; } + +.blue { + background-color: #2196F3 !important; } + +.blue-text { + color: #2196F3 !important; } + +.blue.darken-1 { + background-color: #1E88E5 !important; } + +.blue-text.text-darken-1 { + color: #1E88E5 !important; } + +.blue.darken-2 { + background-color: #1976D2 !important; } + +.blue-text.text-darken-2 { + color: #1976D2 !important; } + +.blue.darken-3 { + background-color: #1565C0 !important; } + +.blue-text.text-darken-3 { + color: #1565C0 !important; } + +.blue.darken-4 { + background-color: #0D47A1 !important; } + +.blue-text.text-darken-4 { + color: #0D47A1 !important; } + +.blue.accent-1 { + background-color: #82B1FF !important; } + +.blue-text.text-accent-1 { + color: #82B1FF !important; } + +.blue.accent-2 { + background-color: #448AFF !important; } + +.blue-text.text-accent-2 { + color: #448AFF !important; } + +.blue.accent-3 { + background-color: #2979FF !important; } + +.blue-text.text-accent-3 { + color: #2979FF !important; } + +.blue.accent-4 { + background-color: #2962FF !important; } + +.blue-text.text-accent-4 { + color: #2962FF !important; } + +.light-blue.lighten-5 { + background-color: #e1f5fe !important; } + +.light-blue-text.text-lighten-5 { + color: #e1f5fe !important; } + +.light-blue.lighten-4 { + background-color: #b3e5fc !important; } + +.light-blue-text.text-lighten-4 { + color: #b3e5fc !important; } + +.light-blue.lighten-3 { + background-color: #81d4fa !important; } + +.light-blue-text.text-lighten-3 { + color: #81d4fa !important; } + +.light-blue.lighten-2 { + background-color: #4fc3f7 !important; } + +.light-blue-text.text-lighten-2 { + color: #4fc3f7 !important; } + +.light-blue.lighten-1 { + background-color: #29b6f6 !important; } + +.light-blue-text.text-lighten-1 { + color: #29b6f6 !important; } + +.light-blue { + background-color: #03a9f4 !important; } + +.light-blue-text { + color: #03a9f4 !important; } + +.light-blue.darken-1 { + background-color: #039be5 !important; } + +.light-blue-text.text-darken-1 { + color: #039be5 !important; } + +.light-blue.darken-2 { + background-color: #0288d1 !important; } + +.light-blue-text.text-darken-2 { + color: #0288d1 !important; } + +.light-blue.darken-3 { + background-color: #0277bd !important; } + +.light-blue-text.text-darken-3 { + color: #0277bd !important; } + +.light-blue.darken-4 { + background-color: #01579b !important; } + +.light-blue-text.text-darken-4 { + color: #01579b !important; } + +.light-blue.accent-1 { + background-color: #80d8ff !important; } + +.light-blue-text.text-accent-1 { + color: #80d8ff !important; } + +.light-blue.accent-2 { + background-color: #40c4ff !important; } + +.light-blue-text.text-accent-2 { + color: #40c4ff !important; } + +.light-blue.accent-3 { + background-color: #00b0ff !important; } + +.light-blue-text.text-accent-3 { + color: #00b0ff !important; } + +.light-blue.accent-4 { + background-color: #0091ea !important; } + +.light-blue-text.text-accent-4 { + color: #0091ea !important; } + +.cyan.lighten-5 { + background-color: #e0f7fa !important; } + +.cyan-text.text-lighten-5 { + color: #e0f7fa !important; } + +.cyan.lighten-4 { + background-color: #b2ebf2 !important; } + +.cyan-text.text-lighten-4 { + color: #b2ebf2 !important; } + +.cyan.lighten-3 { + background-color: #80deea !important; } + +.cyan-text.text-lighten-3 { + color: #80deea !important; } + +.cyan.lighten-2 { + background-color: #4dd0e1 !important; } + +.cyan-text.text-lighten-2 { + color: #4dd0e1 !important; } + +.cyan.lighten-1 { + background-color: #26c6da !important; } + +.cyan-text.text-lighten-1 { + color: #26c6da !important; } + +.cyan { + background-color: #00bcd4 !important; } + +.cyan-text { + color: #00bcd4 !important; } + +.cyan.darken-1 { + background-color: #00acc1 !important; } + +.cyan-text.text-darken-1 { + color: #00acc1 !important; } + +.cyan.darken-2 { + background-color: #0097a7 !important; } + +.cyan-text.text-darken-2 { + color: #0097a7 !important; } + +.cyan.darken-3 { + background-color: #00838f !important; } + +.cyan-text.text-darken-3 { + color: #00838f !important; } + +.cyan.darken-4 { + background-color: #006064 !important; } + +.cyan-text.text-darken-4 { + color: #006064 !important; } + +.cyan.accent-1 { + background-color: #84ffff !important; } + +.cyan-text.text-accent-1 { + color: #84ffff !important; } + +.cyan.accent-2 { + background-color: #18ffff !important; } + +.cyan-text.text-accent-2 { + color: #18ffff !important; } + +.cyan.accent-3 { + background-color: #00e5ff !important; } + +.cyan-text.text-accent-3 { + color: #00e5ff !important; } + +.cyan.accent-4 { + background-color: #00b8d4 !important; } + +.cyan-text.text-accent-4 { + color: #00b8d4 !important; } + +.teal.lighten-5 { + background-color: #e0f2f1 !important; } + +.teal-text.text-lighten-5 { + color: #e0f2f1 !important; } + +.teal.lighten-4 { + background-color: #b2dfdb !important; } + +.teal-text.text-lighten-4 { + color: #b2dfdb !important; } + +.teal.lighten-3 { + background-color: #80cbc4 !important; } + +.teal-text.text-lighten-3 { + color: #80cbc4 !important; } + +.teal.lighten-2 { + background-color: #4db6ac !important; } + +.teal-text.text-lighten-2 { + color: #4db6ac !important; } + +.teal.lighten-1 { + background-color: #26a69a !important; } + +.teal-text.text-lighten-1 { + color: #26a69a !important; } + +.teal { + background-color: #009688 !important; } + +.teal-text { + color: #009688 !important; } + +.teal.darken-1 { + background-color: #00897b !important; } + +.teal-text.text-darken-1 { + color: #00897b !important; } + +.teal.darken-2 { + background-color: #00796b !important; } + +.teal-text.text-darken-2 { + color: #00796b !important; } + +.teal.darken-3 { + background-color: #00695c !important; } + +.teal-text.text-darken-3 { + color: #00695c !important; } + +.teal.darken-4 { + background-color: #004d40 !important; } + +.teal-text.text-darken-4 { + color: #004d40 !important; } + +.teal.accent-1 { + background-color: #a7ffeb !important; } + +.teal-text.text-accent-1 { + color: #a7ffeb !important; } + +.teal.accent-2 { + background-color: #64ffda !important; } + +.teal-text.text-accent-2 { + color: #64ffda !important; } + +.teal.accent-3 { + background-color: #1de9b6 !important; } + +.teal-text.text-accent-3 { + color: #1de9b6 !important; } + +.teal.accent-4 { + background-color: #00bfa5 !important; } + +.teal-text.text-accent-4 { + color: #00bfa5 !important; } + +.green.lighten-5 { + background-color: #E8F5E9 !important; } + +.green-text.text-lighten-5 { + color: #E8F5E9 !important; } + +.green.lighten-4 { + background-color: #C8E6C9 !important; } + +.green-text.text-lighten-4 { + color: #C8E6C9 !important; } + +.green.lighten-3 { + background-color: #A5D6A7 !important; } + +.green-text.text-lighten-3 { + color: #A5D6A7 !important; } + +.green.lighten-2 { + background-color: #81C784 !important; } + +.green-text.text-lighten-2 { + color: #81C784 !important; } + +.green.lighten-1 { + background-color: #66BB6A !important; } + +.green-text.text-lighten-1 { + color: #66BB6A !important; } + +.green { + background-color: #4CAF50 !important; } + +.green-text { + color: #4CAF50 !important; } + +.green.darken-1 { + background-color: #43A047 !important; } + +.green-text.text-darken-1 { + color: #43A047 !important; } + +.green.darken-2 { + background-color: #388E3C !important; } + +.green-text.text-darken-2 { + color: #388E3C !important; } + +.green.darken-3 { + background-color: #2E7D32 !important; } + +.green-text.text-darken-3 { + color: #2E7D32 !important; } + +.green.darken-4 { + background-color: #1B5E20 !important; } + +.green-text.text-darken-4 { + color: #1B5E20 !important; } + +.green.accent-1 { + background-color: #B9F6CA !important; } + +.green-text.text-accent-1 { + color: #B9F6CA !important; } + +.green.accent-2 { + background-color: #69F0AE !important; } + +.green-text.text-accent-2 { + color: #69F0AE !important; } + +.green.accent-3 { + background-color: #00E676 !important; } + +.green-text.text-accent-3 { + color: #00E676 !important; } + +.green.accent-4 { + background-color: #00C853 !important; } + +.green-text.text-accent-4 { + color: #00C853 !important; } + +.light-green.lighten-5 { + background-color: #f1f8e9 !important; } + +.light-green-text.text-lighten-5 { + color: #f1f8e9 !important; } + +.light-green.lighten-4 { + background-color: #dcedc8 !important; } + +.light-green-text.text-lighten-4 { + color: #dcedc8 !important; } + +.light-green.lighten-3 { + background-color: #c5e1a5 !important; } + +.light-green-text.text-lighten-3 { + color: #c5e1a5 !important; } + +.light-green.lighten-2 { + background-color: #aed581 !important; } + +.light-green-text.text-lighten-2 { + color: #aed581 !important; } + +.light-green.lighten-1 { + background-color: #9ccc65 !important; } + +.light-green-text.text-lighten-1 { + color: #9ccc65 !important; } + +.light-green { + background-color: #8bc34a !important; } + +.light-green-text { + color: #8bc34a !important; } + +.light-green.darken-1 { + background-color: #7cb342 !important; } + +.light-green-text.text-darken-1 { + color: #7cb342 !important; } + +.light-green.darken-2 { + background-color: #689f38 !important; } + +.light-green-text.text-darken-2 { + color: #689f38 !important; } + +.light-green.darken-3 { + background-color: #558b2f !important; } + +.light-green-text.text-darken-3 { + color: #558b2f !important; } + +.light-green.darken-4 { + background-color: #33691e !important; } + +.light-green-text.text-darken-4 { + color: #33691e !important; } + +.light-green.accent-1 { + background-color: #ccff90 !important; } + +.light-green-text.text-accent-1 { + color: #ccff90 !important; } + +.light-green.accent-2 { + background-color: #b2ff59 !important; } + +.light-green-text.text-accent-2 { + color: #b2ff59 !important; } + +.light-green.accent-3 { + background-color: #76ff03 !important; } + +.light-green-text.text-accent-3 { + color: #76ff03 !important; } + +.light-green.accent-4 { + background-color: #64dd17 !important; } + +.light-green-text.text-accent-4 { + color: #64dd17 !important; } + +.lime.lighten-5 { + background-color: #f9fbe7 !important; } + +.lime-text.text-lighten-5 { + color: #f9fbe7 !important; } + +.lime.lighten-4 { + background-color: #f0f4c3 !important; } + +.lime-text.text-lighten-4 { + color: #f0f4c3 !important; } + +.lime.lighten-3 { + background-color: #e6ee9c !important; } + +.lime-text.text-lighten-3 { + color: #e6ee9c !important; } + +.lime.lighten-2 { + background-color: #dce775 !important; } + +.lime-text.text-lighten-2 { + color: #dce775 !important; } + +.lime.lighten-1 { + background-color: #d4e157 !important; } + +.lime-text.text-lighten-1 { + color: #d4e157 !important; } + +.lime { + background-color: #cddc39 !important; } + +.lime-text { + color: #cddc39 !important; } + +.lime.darken-1 { + background-color: #c0ca33 !important; } + +.lime-text.text-darken-1 { + color: #c0ca33 !important; } + +.lime.darken-2 { + background-color: #afb42b !important; } + +.lime-text.text-darken-2 { + color: #afb42b !important; } + +.lime.darken-3 { + background-color: #9e9d24 !important; } + +.lime-text.text-darken-3 { + color: #9e9d24 !important; } + +.lime.darken-4 { + background-color: #827717 !important; } + +.lime-text.text-darken-4 { + color: #827717 !important; } + +.lime.accent-1 { + background-color: #f4ff81 !important; } + +.lime-text.text-accent-1 { + color: #f4ff81 !important; } + +.lime.accent-2 { + background-color: #eeff41 !important; } + +.lime-text.text-accent-2 { + color: #eeff41 !important; } + +.lime.accent-3 { + background-color: #c6ff00 !important; } + +.lime-text.text-accent-3 { + color: #c6ff00 !important; } + +.lime.accent-4 { + background-color: #aeea00 !important; } + +.lime-text.text-accent-4 { + color: #aeea00 !important; } + +.yellow.lighten-5 { + background-color: #fffde7 !important; } + +.yellow-text.text-lighten-5 { + color: #fffde7 !important; } + +.yellow.lighten-4 { + background-color: #fff9c4 !important; } + +.yellow-text.text-lighten-4 { + color: #fff9c4 !important; } + +.yellow.lighten-3 { + background-color: #fff59d !important; } + +.yellow-text.text-lighten-3 { + color: #fff59d !important; } + +.yellow.lighten-2 { + background-color: #fff176 !important; } + +.yellow-text.text-lighten-2 { + color: #fff176 !important; } + +.yellow.lighten-1 { + background-color: #ffee58 !important; } + +.yellow-text.text-lighten-1 { + color: #ffee58 !important; } + +.yellow { + background-color: #ffeb3b !important; } + +.yellow-text { + color: #ffeb3b !important; } + +.yellow.darken-1 { + background-color: #fdd835 !important; } + +.yellow-text.text-darken-1 { + color: #fdd835 !important; } + +.yellow.darken-2 { + background-color: #fbc02d !important; } + +.yellow-text.text-darken-2 { + color: #fbc02d !important; } + +.yellow.darken-3 { + background-color: #f9a825 !important; } + +.yellow-text.text-darken-3 { + color: #f9a825 !important; } + +.yellow.darken-4 { + background-color: #f57f17 !important; } + +.yellow-text.text-darken-4 { + color: #f57f17 !important; } + +.yellow.accent-1 { + background-color: #ffff8d !important; } + +.yellow-text.text-accent-1 { + color: #ffff8d !important; } + +.yellow.accent-2 { + background-color: #ffff00 !important; } + +.yellow-text.text-accent-2 { + color: #ffff00 !important; } + +.yellow.accent-3 { + background-color: #ffea00 !important; } + +.yellow-text.text-accent-3 { + color: #ffea00 !important; } + +.yellow.accent-4 { + background-color: #ffd600 !important; } + +.yellow-text.text-accent-4 { + color: #ffd600 !important; } + +.amber.lighten-5 { + background-color: #fff8e1 !important; } + +.amber-text.text-lighten-5 { + color: #fff8e1 !important; } + +.amber.lighten-4 { + background-color: #ffecb3 !important; } + +.amber-text.text-lighten-4 { + color: #ffecb3 !important; } + +.amber.lighten-3 { + background-color: #ffe082 !important; } + +.amber-text.text-lighten-3 { + color: #ffe082 !important; } + +.amber.lighten-2 { + background-color: #ffd54f !important; } + +.amber-text.text-lighten-2 { + color: #ffd54f !important; } + +.amber.lighten-1 { + background-color: #ffca28 !important; } + +.amber-text.text-lighten-1 { + color: #ffca28 !important; } + +.amber { + background-color: #ffc107 !important; } + +.amber-text { + color: #ffc107 !important; } + +.amber.darken-1 { + background-color: #ffb300 !important; } + +.amber-text.text-darken-1 { + color: #ffb300 !important; } + +.amber.darken-2 { + background-color: #ffa000 !important; } + +.amber-text.text-darken-2 { + color: #ffa000 !important; } + +.amber.darken-3 { + background-color: #ff8f00 !important; } + +.amber-text.text-darken-3 { + color: #ff8f00 !important; } + +.amber.darken-4 { + background-color: #ff6f00 !important; } + +.amber-text.text-darken-4 { + color: #ff6f00 !important; } + +.amber.accent-1 { + background-color: #ffe57f !important; } + +.amber-text.text-accent-1 { + color: #ffe57f !important; } + +.amber.accent-2 { + background-color: #ffd740 !important; } + +.amber-text.text-accent-2 { + color: #ffd740 !important; } + +.amber.accent-3 { + background-color: #ffc400 !important; } + +.amber-text.text-accent-3 { + color: #ffc400 !important; } + +.amber.accent-4 { + background-color: #ffab00 !important; } + +.amber-text.text-accent-4 { + color: #ffab00 !important; } + +.orange.lighten-5 { + background-color: #fff3e0 !important; } + +.orange-text.text-lighten-5 { + color: #fff3e0 !important; } + +.orange.lighten-4 { + background-color: #ffe0b2 !important; } + +.orange-text.text-lighten-4 { + color: #ffe0b2 !important; } + +.orange.lighten-3 { + background-color: #ffcc80 !important; } + +.orange-text.text-lighten-3 { + color: #ffcc80 !important; } + +.orange.lighten-2 { + background-color: #ffb74d !important; } + +.orange-text.text-lighten-2 { + color: #ffb74d !important; } + +.orange.lighten-1 { + background-color: #ffa726 !important; } + +.orange-text.text-lighten-1 { + color: #ffa726 !important; } + +.orange { + background-color: #ff9800 !important; } + +.orange-text { + color: #ff9800 !important; } + +.orange.darken-1 { + background-color: #fb8c00 !important; } + +.orange-text.text-darken-1 { + color: #fb8c00 !important; } + +.orange.darken-2 { + background-color: #f57c00 !important; } + +.orange-text.text-darken-2 { + color: #f57c00 !important; } + +.orange.darken-3 { + background-color: #ef6c00 !important; } + +.orange-text.text-darken-3 { + color: #ef6c00 !important; } + +.orange.darken-4 { + background-color: #e65100 !important; } + +.orange-text.text-darken-4 { + color: #e65100 !important; } + +.orange.accent-1 { + background-color: #ffd180 !important; } + +.orange-text.text-accent-1 { + color: #ffd180 !important; } + +.orange.accent-2 { + background-color: #ffab40 !important; } + +.orange-text.text-accent-2 { + color: #ffab40 !important; } + +.orange.accent-3 { + background-color: #ff9100 !important; } + +.orange-text.text-accent-3 { + color: #ff9100 !important; } + +.orange.accent-4 { + background-color: #ff6d00 !important; } + +.orange-text.text-accent-4 { + color: #ff6d00 !important; } + +.deep-orange.lighten-5 { + background-color: #fbe9e7 !important; } + +.deep-orange-text.text-lighten-5 { + color: #fbe9e7 !important; } + +.deep-orange.lighten-4 { + background-color: #ffccbc !important; } + +.deep-orange-text.text-lighten-4 { + color: #ffccbc !important; } + +.deep-orange.lighten-3 { + background-color: #ffab91 !important; } + +.deep-orange-text.text-lighten-3 { + color: #ffab91 !important; } + +.deep-orange.lighten-2 { + background-color: #ff8a65 !important; } + +.deep-orange-text.text-lighten-2 { + color: #ff8a65 !important; } + +.deep-orange.lighten-1 { + background-color: #ff7043 !important; } + +.deep-orange-text.text-lighten-1 { + color: #ff7043 !important; } + +.deep-orange { + background-color: #ff5722 !important; } + +.deep-orange-text { + color: #ff5722 !important; } + +.deep-orange.darken-1 { + background-color: #f4511e !important; } + +.deep-orange-text.text-darken-1 { + color: #f4511e !important; } + +.deep-orange.darken-2 { + background-color: #e64a19 !important; } + +.deep-orange-text.text-darken-2 { + color: #e64a19 !important; } + +.deep-orange.darken-3 { + background-color: #d84315 !important; } + +.deep-orange-text.text-darken-3 { + color: #d84315 !important; } + +.deep-orange.darken-4 { + background-color: #bf360c !important; } + +.deep-orange-text.text-darken-4 { + color: #bf360c !important; } + +.deep-orange.accent-1 { + background-color: #ff9e80 !important; } + +.deep-orange-text.text-accent-1 { + color: #ff9e80 !important; } + +.deep-orange.accent-2 { + background-color: #ff6e40 !important; } + +.deep-orange-text.text-accent-2 { + color: #ff6e40 !important; } + +.deep-orange.accent-3 { + background-color: #ff3d00 !important; } + +.deep-orange-text.text-accent-3 { + color: #ff3d00 !important; } + +.deep-orange.accent-4 { + background-color: #dd2c00 !important; } + +.deep-orange-text.text-accent-4 { + color: #dd2c00 !important; } + +.brown.lighten-5 { + background-color: #efebe9 !important; } + +.brown-text.text-lighten-5 { + color: #efebe9 !important; } + +.brown.lighten-4 { + background-color: #d7ccc8 !important; } + +.brown-text.text-lighten-4 { + color: #d7ccc8 !important; } + +.brown.lighten-3 { + background-color: #bcaaa4 !important; } + +.brown-text.text-lighten-3 { + color: #bcaaa4 !important; } + +.brown.lighten-2 { + background-color: #a1887f !important; } + +.brown-text.text-lighten-2 { + color: #a1887f !important; } + +.brown.lighten-1 { + background-color: #8d6e63 !important; } + +.brown-text.text-lighten-1 { + color: #8d6e63 !important; } + +.brown { + background-color: #795548 !important; } + +.brown-text { + color: #795548 !important; } + +.brown.darken-1 { + background-color: #6d4c41 !important; } + +.brown-text.text-darken-1 { + color: #6d4c41 !important; } + +.brown.darken-2 { + background-color: #5d4037 !important; } + +.brown-text.text-darken-2 { + color: #5d4037 !important; } + +.brown.darken-3 { + background-color: #4e342e !important; } + +.brown-text.text-darken-3 { + color: #4e342e !important; } + +.brown.darken-4 { + background-color: #3e2723 !important; } + +.brown-text.text-darken-4 { + color: #3e2723 !important; } + +.blue-grey.lighten-5 { + background-color: #eceff1 !important; } + +.blue-grey-text.text-lighten-5 { + color: #eceff1 !important; } + +.blue-grey.lighten-4 { + background-color: #cfd8dc !important; } + +.blue-grey-text.text-lighten-4 { + color: #cfd8dc !important; } + +.blue-grey.lighten-3 { + background-color: #b0bec5 !important; } + +.blue-grey-text.text-lighten-3 { + color: #b0bec5 !important; } + +.blue-grey.lighten-2 { + background-color: #90a4ae !important; } + +.blue-grey-text.text-lighten-2 { + color: #90a4ae !important; } + +.blue-grey.lighten-1 { + background-color: #78909c !important; } + +.blue-grey-text.text-lighten-1 { + color: #78909c !important; } + +.blue-grey { + background-color: #607d8b !important; } + +.blue-grey-text { + color: #607d8b !important; } + +.blue-grey.darken-1 { + background-color: #546e7a !important; } + +.blue-grey-text.text-darken-1 { + color: #546e7a !important; } + +.blue-grey.darken-2 { + background-color: #455a64 !important; } + +.blue-grey-text.text-darken-2 { + color: #455a64 !important; } + +.blue-grey.darken-3 { + background-color: #37474f !important; } + +.blue-grey-text.text-darken-3 { + color: #37474f !important; } + +.blue-grey.darken-4 { + background-color: #263238 !important; } + +.blue-grey-text.text-darken-4 { + color: #263238 !important; } + +.grey.lighten-5 { + background-color: #fafafa !important; } + +.grey-text.text-lighten-5 { + color: #fafafa !important; } + +.grey.lighten-4 { + background-color: #f5f5f5 !important; } + +.grey-text.text-lighten-4 { + color: #f5f5f5 !important; } + +.grey.lighten-3 { + background-color: #eeeeee !important; } + +.grey-text.text-lighten-3 { + color: #eeeeee !important; } + +.grey.lighten-2 { + background-color: #e0e0e0 !important; } + +.grey-text.text-lighten-2 { + color: #e0e0e0 !important; } + +.grey.lighten-1 { + background-color: #bdbdbd !important; } + +.grey-text.text-lighten-1 { + color: #bdbdbd !important; } + +.grey { + background-color: #9e9e9e !important; } + +.grey-text { + color: #9e9e9e !important; } + +.grey.darken-1 { + background-color: #757575 !important; } + +.grey-text.text-darken-1 { + color: #757575 !important; } + +.grey.darken-2 { + background-color: #616161 !important; } + +.grey-text.text-darken-2 { + color: #616161 !important; } + +.grey.darken-3 { + background-color: #424242 !important; } + +.grey-text.text-darken-3 { + color: #424242 !important; } + +.grey.darken-4 { + background-color: #212121 !important; } + +.grey-text.text-darken-4 { + color: #212121 !important; } + +.shades.black { + background-color: #000000 !important; } + +.shades-text.text-black { + color: #000000 !important; } + +.shades.white { + background-color: #FFFFFF !important; } + +.shades-text.text-white { + color: #FFFFFF !important; } + +.shades.transparent { + background-color: transparent !important; } + +.shades-text.text-transparent { + color: transparent !important; } + +.black { + background-color: #000000 !important; } + +.black-text { + color: #000000 !important; } + +.white { + background-color: #FFFFFF !important; } + +.white-text { + color: #FFFFFF !important; } + +.transparent { + background-color: transparent !important; } + +.transparent-text { + color: transparent !important; } + +/*** Colors ***/ +/*** Badges ***/ +/*** Buttons ***/ +/*** Cards ***/ +/*** Collapsible ***/ +/*** Dropdown ***/ +/*** Fonts ***/ +/*** Forms ***/ +/*** Global ***/ +/*** Navbar ***/ +/*** SideNav ***/ +/*** Tabs ***/ +/*** Tables ***/ +/*** Toasts ***/ +/*** Typography ***/ +/*** Collections ***/ +/* Progress Bar */ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ +html { + font-family: sans-serif; + /* 1 */ + -ms-text-size-adjust: 100%; + /* 2 */ + -webkit-text-size-adjust: 100%; + /* 2 */ } + +/** + * Remove default margin. + */ +body { + margin: 0; } + +/* HTML5 display definitions + ========================================================================== */ +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ +article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { + display: block; } + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ +audio, canvas, progress, video { + display: inline-block; + /* 1 */ + vertical-align: baseline; + /* 2 */ } + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ +audio:not([controls]) { + display: none; + height: 0; } + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ +[hidden], template { + display: none; } + +/* Links + ========================================================================== */ +/** + * Remove the gray background color from active links in IE 10. + */ +a { + background-color: transparent; } + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ +a:active, a:hover { + outline: 0; } + +/* Text-level semantics + ========================================================================== */ +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ +abbr[title] { + border-bottom: 1px dotted; } + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ +b, strong { + font-weight: bold; } + +/** + * Address styling not present in Safari and Chrome. + */ +dfn { + font-style: italic; } + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; } + +/** + * Address styling not present in IE 8/9. + */ +mark { + background: #ff0; + color: #000; } + +/** + * Address inconsistent and variable font size in all browsers. + */ +small { + font-size: 80%; } + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ +sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } + +sup { + top: -0.5em; } + +sub { + bottom: -0.25em; } + +/* Embedded content + ========================================================================== */ +/** + * Remove border when inside `a` element in IE 8/9/10. + */ +img { + border: 0; } + +/** + * Correct overflow not hidden in IE 9/10/11. + */ +svg:not(:root) { + overflow: hidden; } + +/* Grouping content + ========================================================================== */ +/** + * Address margin not present in IE 8/9 and Safari. + */ +figure { + margin: 1em 40px; } + +/** + * Address differences between Firefox and other browsers. + */ +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; } + +/** + * Contain overflow in all browsers. + */ +pre { + overflow: auto; } + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ +code, kbd, pre, samp { + font-family: monospace, monospace; + font-size: 1em; } + +/* Forms + ========================================================================== */ +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ +button, input, optgroup, select, textarea { + color: inherit; + /* 1 */ + font: inherit; + /* 2 */ + margin: 0; + /* 3 */ } + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ +button { + overflow: visible; } + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ +button, select { + text-transform: none; } + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ +/* 1 */ +html input[type="button"], button, input[type="reset"], input[type="submit"] { + -webkit-appearance: button; + /* 2 */ + cursor: pointer; + /* 3 */ } + +/** + * Re-set default cursor for disabled elements. + */ +button[disabled], html input[disabled] { + cursor: default; } + +/** + * Remove inner padding and border in Firefox 4+. + */ +button::-moz-focus-inner, input::-moz-focus-inner { + border: 0; + padding: 0; } + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ +input { + line-height: normal; } + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ +input[type="checkbox"], input[type="radio"] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ } + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ +input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { + height: auto; } + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ +input[type="search"] { + -webkit-appearance: textfield; + /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + /* 2 */ + box-sizing: content-box; } + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ +input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } + +/** + * Define consistent border, margin, and padding. + */ +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; } + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ +legend { + border: 0; + /* 1 */ + padding: 0; + /* 2 */ } + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ +textarea { + overflow: auto; } + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ +optgroup { + font-weight: bold; } + +/* Tables + ========================================================================== */ +/** + * Remove most spacing between table cells. + */ +table { + border-collapse: collapse; + border-spacing: 0; } + +td, th { + padding: 0; } + +html { + box-sizing: border-box; } + +*, *:before, *:after { + box-sizing: inherit; } + +ul { + list-style-type: none; } + +a { + color: #039be5; + text-decoration: none; + -webkit-tap-highlight-color: transparent; } + +.valign-wrapper { + display: -webkit-box; + display: -moz-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; } + .valign-wrapper .valign { + display: block; } + +ul { + padding: 0; } + ul li { + list-style-type: none; } + +.clearfix { + clear: both; } + +.z-depth-1, nav, .card-panel, .card, .toast, .btn, .btn-large, .btn-floating, .dropdown-content, .collapsible, .side-nav { + -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); + -moz-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); } + +.z-depth-1-half, .btn:hover, .btn-large:hover, .btn-floating:hover { + -webkit-box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); + box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); } + +.z-depth-2 { + -webkit-box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); + -moz-box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); + box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); } + +.z-depth-3 { + -webkit-box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); + -moz-box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); + box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); } + +.z-depth-4, .modal { + -webkit-box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21); + -moz-box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21); + box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21); } + +.z-depth-5 { + -webkit-box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22); + -moz-box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22); + box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22); } + +.divider { + height: 1px; + overflow: hidden; + background-color: #e0e0e0; } + +blockquote { + margin: 20px 0; + padding-left: 1.5rem; + border-left: 5px solid #EF9A9A; } + +i { + line-height: inherit; } + i.left { + float: left; + margin-right: 15px; } + i.right { + float: right; + margin-left: 15px; } + i.tiny { + font-size: 1rem; } + i.small { + font-size: 2rem; } + i.medium { + font-size: 4rem; } + i.large { + font-size: 6rem; } + +img.responsive-img, video.responsive-video { + max-width: 100%; + height: auto; } + +.pagination li { + font-size: 1.2rem; + float: left; + width: 30px; + height: 30px; + margin: 0 10px; + border-radius: 2px; + text-align: center; } + .pagination li a { + color: #444; } + .pagination li.active a { + color: #fff; } + .pagination li.active { + background-color: #ee6e73; } + .pagination li.disabled a { + color: #999; } + .pagination li i { + font-size: 2rem; + line-height: 1.8rem; } + +.parallax-container { + position: relative; + overflow: hidden; + height: 500px; } + +.parallax { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: -1; } + .parallax img { + display: none; + position: absolute; + left: 50%; + bottom: 0; + min-width: 100%; + min-height: 100%; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + transform: translateX(-50%); } + +.pin-top, .pin-bottom { + position: relative; } + +.pinned { + position: fixed !important; } + +/********************* + Transition Classes +**********************/ +ul.staggered-list li { + opacity: 0; } + +.fade-in { + opacity: 0; + transform-origin: 0 50%; } + +/********************* + Media Query Classes +**********************/ +@media only screen and (max-width : 600px) { + .hide-on-small-only, .hide-on-small-and-down { + display: none !important; } } + +@media only screen and (max-width : 992px) { + .hide-on-med-and-down { + display: none !important; } } + +@media only screen and (min-width : 601px) { + .hide-on-med-and-up { + display: none !important; } } + +@media only screen and (min-width: 600px) and (max-width: 992px) { + .hide-on-med-only { + display: none !important; } } + +@media only screen and (min-width : 993px) { + .hide-on-large-only { + display: none !important; } } + +@media only screen and (min-width : 993px) { + .show-on-large { + display: initial !important; } } + +@media only screen and (min-width: 600px) and (max-width: 992px) { + .show-on-medium { + display: initial !important; } } + +@media only screen and (max-width : 600px) { + .show-on-small { + display: initial !important; } } + +@media only screen and (min-width : 601px) { + .show-on-medium-and-up { + display: initial !important; } } + +@media only screen and (max-width : 992px) { + .show-on-medium-and-down { + display: initial !important; } } + +@media only screen and (max-width : 600px) { + .center-on-small-only { + text-align: center; } } + +footer.page-footer { + margin-top: 20px; + padding-top: 20px; + background-color: #ee6e73; } + footer.page-footer .footer-copyright { + overflow: hidden; + height: 50px; + line-height: 50px; + color: rgba(255, 255, 255, 0.8); + background-color: rgba(51, 51, 51, 0.08); } + +table, th, td { + border: none; } + +table { + width: 100%; + display: table; } + table.bordered tr { + border-bottom: 1px solid #d0d0d0; } + table.striped tbody tr:nth-child(odd) { + background-color: #f2f2f2; } + table.hoverable tbody tr { + -webkit-transition: background-color .25s ease; + -moz-transition: background-color .25s ease; + -o-transition: background-color .25s ease; + -ms-transition: background-color .25s ease; + transition: background-color .25s ease; } + table.hoverable tbody tr:hover { + background-color: #f2f2f2; } + table.centered thead tr th, table.centered tbody tr td { + text-align: center; } + +thead { + border-bottom: 1px solid #d0d0d0; } + +td, th { + padding: 15px 5px; + display: table-cell; + text-align: left; + vertical-align: middle; + border-radius: 2px; } + +@media only screen and (max-width : 992px) { + table.responsive-table { + width: 100%; + border-collapse: collapse; + border-spacing: 0; + display: block; + position: relative; + /* sort out borders */ } + table.responsive-table th, table.responsive-table td { + margin: 0; + vertical-align: top; } + table.responsive-table th { + text-align: left; } + table.responsive-table thead { + display: block; + float: left; } + table.responsive-table thead tr { + display: block; + padding: 0 10px 0 0; } + table.responsive-table thead tr th::before { + content: "\00a0"; } + table.responsive-table tbody { + display: block; + width: auto; + position: relative; + overflow-x: auto; + white-space: nowrap; } + table.responsive-table tbody tr { + display: inline-block; + vertical-align: top; } + table.responsive-table th { + display: block; + text-align: right; } + table.responsive-table td { + display: block; + min-height: 1.25em; + text-align: left; } + table.responsive-table tr { + padding: 0 10px; } + table.responsive-table thead { + border: 0; + border-right: 1px solid #d0d0d0; } + table.responsive-table.bordered th { + border-bottom: 0; + border-left: 0; } + table.responsive-table.bordered td { + border-left: 0; + border-right: 0; + border-bottom: 0; } + table.responsive-table.bordered tr { + border: 0; } + table.responsive-table.bordered tbody tr { + border-right: 1px solid #d0d0d0; } } + +.collection { + margin: 0.5rem 0 1rem 0; + border: 1px solid #e0e0e0; + border-radius: 2px; + overflow: hidden; + position: relative; } + .collection .collection-item { + background-color: #fff; + line-height: 1.5rem; + padding: 10px 20px; + margin: 0; + border-bottom: 1px solid #e0e0e0; } + .collection .collection-item.avatar { + height: 84px; + padding-left: 72px; + position: relative; } + .collection .collection-item.avatar .circle { + position: absolute; + width: 42px; + height: 42px; + overflow: hidden; + left: 15px; + display: inline-block; + vertical-align: middle; } + .collection .collection-item.avatar i.circle { + font-size: 18px; + line-height: 42px; + color: #fff; + background-color: #999; + text-align: center; } + .collection .collection-item.avatar .title { + font-size: 16px; } + .collection .collection-item.avatar p { + margin: 0; } + .collection .collection-item.avatar .secondary-content { + position: absolute; + top: 16px; + right: 16px; } + .collection .collection-item:last-child { + border-bottom: none; } + .collection .collection-item.active { + background-color: #26a69a; + color: #eafaf9; } + .collection a.collection-item { + display: block; + -webkit-transition: 0.25s; + -moz-transition: 0.25s; + -o-transition: 0.25s; + -ms-transition: 0.25s; + transition: 0.25s; + color: #26a69a; } + .collection a.collection-item:not(.active):hover { + background-color: #ddd; } + .collection.with-header .collection-header { + background-color: #fff; + border-bottom: 1px solid #e0e0e0; + padding: 10px 20px; } + .collection.with-header .collection-item { + padding-left: 30px; } + +.secondary-content { + float: right; + color: #26a69a; } + +span.badge { + min-width: 3rem; + padding: 0 6px; + text-align: center; + font-size: 1rem; + line-height: inherit; + color: #757575; + position: absolute; + right: 15px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } + span.badge.new { + font-weight: 300; + font-size: 0.8rem; + color: #fff; + background-color: #26a69a; + border-radius: 2px; } + span.badge.new:after { + content: " new"; } + +.video-container { + position: relative; + padding-bottom: 56.25%; + padding-top: 30px; + height: 0; + overflow: hidden; } + .video-container.no-controls { + padding-top: 0; } + .video-container iframe, .video-container object, .video-container embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; } + +.progress { + position: relative; + height: 4px; + display: block; + width: 100%; + background-color: #acece6; + border-radius: 2px; + margin: 0.5rem 0 1rem 0; + overflow: hidden; } + .progress .determinate { + position: absolute; + background-color: inherit; + top: 0; + bottom: 0; + background-color: #26a69a; + -webkit-transition: width .3s linear; + -moz-transition: width .3s linear; + -o-transition: width .3s linear; + -ms-transition: width .3s linear; + transition: width .3s linear; } + .progress .indeterminate { + background-color: #26a69a; } + .progress .indeterminate:before { + content: ''; + position: absolute; + background-color: inherit; + top: 0; + left: 0; + bottom: 0; + will-change: left, right; + -webkit-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; + -moz-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; + -ms-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; + -o-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; + animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; } + .progress .indeterminate:after { + content: ''; + position: absolute; + background-color: inherit; + top: 0; + left: 0; + bottom: 0; + will-change: left, right; + -webkit-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; + -moz-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; + -ms-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; + -o-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; + animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; + -webkit-animation-delay: 1.15s; + -moz-animation-delay: 1.15s; + -ms-animation-delay: 1.15s; + -o-animation-delay: 1.15s; + animation-delay: 1.15s; } + +@-webkit-keyframes indeterminate { + 0% { + left: -35%; + right: 100%; } + + 60% { + left: 100%; + right: -90%; } + + 100% { + left: 100%; + right: -90%; } } + +@-moz-keyframes indeterminate { + 0% { + left: -35%; + right: 100%; } + + 60% { + left: 100%; + right: -90%; } + + 100% { + left: 100%; + right: -90%; } } + +@keyframes indeterminate { + 0% { + left: -35%; + right: 100%; } + + 60% { + left: 100%; + right: -90%; } + + 100% { + left: 100%; + right: -90%; } } + +@-webkit-keyframes indeterminate-short { + 0% { + left: -200%; + right: 100%; } + + 60% { + left: 107%; + right: -8%; } + + 100% { + left: 107%; + right: -8%; } } + +@-moz-keyframes indeterminate-short { + 0% { + left: -200%; + right: 100%; } + + 60% { + left: 107%; + right: -8%; } + + 100% { + left: 107%; + right: -8%; } } + +@keyframes indeterminate-short { + 0% { + left: -200%; + right: 100%; } + + 60% { + left: 107%; + right: -8%; } + + 100% { + left: 107%; + right: -8%; } } + +/******************* + Utility Classes +*******************/ +.hide { + display: none !important; } + +.left-align { + text-align: left; } + +.right-align { + text-align: right; } + +.center, .center-align { + text-align: center; } + +.left { + float: left !important; } + +.right { + float: right !important; } + +.no-select, input[type=range], input[type=range] + .thumb { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.circle { + border-radius: 50%; } + +.center-block { + display: block; + margin-left: auto; + margin-right: auto; } + +.truncate { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + +.no-padding { + padding: 0 !important; } + +@font-face { + font-family: "Material-Design-Icons"; + src: url("../font/material-design-icons/Material-Design-Icons.eot?#iefix") format("embedded-opentype"), url("../font/material-design-icons/Material-Design-Icons.woff2") format("woff2"), url("../font/material-design-icons/Material-Design-Icons.woff") format("woff"), url("../font/material-design-icons/Material-Design-Icons.ttf") format("truetype"), url("../font/material-design-icons/Material-Design-Icons.svg#Material-Design-Icons") format("svg"); + font-weight: normal; + font-style: normal; } + +[class^="mdi-"], [class*=" mdi-"] { + font-family: "Material-Design-Icons"; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + text-rendering: auto; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } + +.mdi-action-3d-rotation:before { + content: "\e600"; } + +.mdi-action-accessibility:before { + content: "\e601"; } + +.mdi-action-account-balance:before { + content: "\e602"; } + +.mdi-action-account-balance-wallet:before { + content: "\e603"; } + +.mdi-action-account-box:before { + content: "\e604"; } + +.mdi-action-account-child:before { + content: "\e605"; } + +.mdi-action-account-circle:before { + content: "\e606"; } + +.mdi-action-add-shopping-cart:before { + content: "\e607"; } + +.mdi-action-alarm:before { + content: "\e608"; } + +.mdi-action-alarm-add:before { + content: "\e609"; } + +.mdi-action-alarm-off:before { + content: "\e60a"; } + +.mdi-action-alarm-on:before { + content: "\e60b"; } + +.mdi-action-android:before { + content: "\e60c"; } + +.mdi-action-announcement:before { + content: "\e60d"; } + +.mdi-action-aspect-ratio:before { + content: "\e60e"; } + +.mdi-action-assessment:before { + content: "\e60f"; } + +.mdi-action-assignment:before { + content: "\e610"; } + +.mdi-action-assignment-ind:before { + content: "\e611"; } + +.mdi-action-assignment-late:before { + content: "\e612"; } + +.mdi-action-assignment-return:before { + content: "\e613"; } + +.mdi-action-assignment-returned:before { + content: "\e614"; } + +.mdi-action-assignment-turned-in:before { + content: "\e615"; } + +.mdi-action-autorenew:before { + content: "\e616"; } + +.mdi-action-backup:before { + content: "\e617"; } + +.mdi-action-book:before { + content: "\e618"; } + +.mdi-action-bookmark:before { + content: "\e619"; } + +.mdi-action-bookmark-outline:before { + content: "\e61a"; } + +.mdi-action-bug-report:before { + content: "\e61b"; } + +.mdi-action-cached:before { + content: "\e61c"; } + +.mdi-action-class:before { + content: "\e61d"; } + +.mdi-action-credit-card:before { + content: "\e61e"; } + +.mdi-action-dashboard:before { + content: "\e61f"; } + +.mdi-action-delete:before { + content: "\e620"; } + +.mdi-action-description:before { + content: "\e621"; } + +.mdi-action-dns:before { + content: "\e622"; } + +.mdi-action-done:before { + content: "\e623"; } + +.mdi-action-done-all:before { + content: "\e624"; } + +.mdi-action-event:before { + content: "\e625"; } + +.mdi-action-exit-to-app:before { + content: "\e626"; } + +.mdi-action-explore:before { + content: "\e627"; } + +.mdi-action-extension:before { + content: "\e628"; } + +.mdi-action-face-unlock:before { + content: "\e629"; } + +.mdi-action-favorite:before { + content: "\e62a"; } + +.mdi-action-favorite-outline:before { + content: "\e62b"; } + +.mdi-action-find-in-page:before { + content: "\e62c"; } + +.mdi-action-find-replace:before { + content: "\e62d"; } + +.mdi-action-flip-to-back:before { + content: "\e62e"; } + +.mdi-action-flip-to-front:before { + content: "\e62f"; } + +.mdi-action-get-app:before { + content: "\e630"; } + +.mdi-action-grade:before { + content: "\e631"; } + +.mdi-action-group-work:before { + content: "\e632"; } + +.mdi-action-help:before { + content: "\e633"; } + +.mdi-action-highlight-remove:before { + content: "\e634"; } + +.mdi-action-history:before { + content: "\e635"; } + +.mdi-action-home:before { + content: "\e636"; } + +.mdi-action-https:before { + content: "\e637"; } + +.mdi-action-info:before { + content: "\e638"; } + +.mdi-action-info-outline:before { + content: "\e639"; } + +.mdi-action-input:before { + content: "\e63a"; } + +.mdi-action-invert-colors:before { + content: "\e63b"; } + +.mdi-action-label:before { + content: "\e63c"; } + +.mdi-action-label-outline:before { + content: "\e63d"; } + +.mdi-action-language:before { + content: "\e63e"; } + +.mdi-action-launch:before { + content: "\e63f"; } + +.mdi-action-list:before { + content: "\e640"; } + +.mdi-action-lock:before { + content: "\e641"; } + +.mdi-action-lock-open:before { + content: "\e642"; } + +.mdi-action-lock-outline:before { + content: "\e643"; } + +.mdi-action-loyalty:before { + content: "\e644"; } + +.mdi-action-markunread-mailbox:before { + content: "\e645"; } + +.mdi-action-note-add:before { + content: "\e646"; } + +.mdi-action-open-in-browser:before { + content: "\e647"; } + +.mdi-action-open-in-new:before { + content: "\e648"; } + +.mdi-action-open-with:before { + content: "\e649"; } + +.mdi-action-pageview:before { + content: "\e64a"; } + +.mdi-action-payment:before { + content: "\e64b"; } + +.mdi-action-perm-camera-mic:before { + content: "\e64c"; } + +.mdi-action-perm-contact-cal:before { + content: "\e64d"; } + +.mdi-action-perm-data-setting:before { + content: "\e64e"; } + +.mdi-action-perm-device-info:before { + content: "\e64f"; } + +.mdi-action-perm-identity:before { + content: "\e650"; } + +.mdi-action-perm-media:before { + content: "\e651"; } + +.mdi-action-perm-phone-msg:before { + content: "\e652"; } + +.mdi-action-perm-scan-wifi:before { + content: "\e653"; } + +.mdi-action-picture-in-picture:before { + content: "\e654"; } + +.mdi-action-polymer:before { + content: "\e655"; } + +.mdi-action-print:before { + content: "\e656"; } + +.mdi-action-query-builder:before { + content: "\e657"; } + +.mdi-action-question-answer:before { + content: "\e658"; } + +.mdi-action-receipt:before { + content: "\e659"; } + +.mdi-action-redeem:before { + content: "\e65a"; } + +.mdi-action-report-problem:before { + content: "\e65b"; } + +.mdi-action-restore:before { + content: "\e65c"; } + +.mdi-action-room:before { + content: "\e65d"; } + +.mdi-action-schedule:before { + content: "\e65e"; } + +.mdi-action-search:before { + content: "\e65f"; } + +.mdi-action-settings:before { + content: "\e660"; } + +.mdi-action-settings-applications:before { + content: "\e661"; } + +.mdi-action-settings-backup-restore:before { + content: "\e662"; } + +.mdi-action-settings-bluetooth:before { + content: "\e663"; } + +.mdi-action-settings-cell:before { + content: "\e664"; } + +.mdi-action-settings-display:before { + content: "\e665"; } + +.mdi-action-settings-ethernet:before { + content: "\e666"; } + +.mdi-action-settings-input-antenna:before { + content: "\e667"; } + +.mdi-action-settings-input-component:before { + content: "\e668"; } + +.mdi-action-settings-input-composite:before { + content: "\e669"; } + +.mdi-action-settings-input-hdmi:before { + content: "\e66a"; } + +.mdi-action-settings-input-svideo:before { + content: "\e66b"; } + +.mdi-action-settings-overscan:before { + content: "\e66c"; } + +.mdi-action-settings-phone:before { + content: "\e66d"; } + +.mdi-action-settings-power:before { + content: "\e66e"; } + +.mdi-action-settings-remote:before { + content: "\e66f"; } + +.mdi-action-settings-voice:before { + content: "\e670"; } + +.mdi-action-shop:before { + content: "\e671"; } + +.mdi-action-shopping-basket:before { + content: "\e672"; } + +.mdi-action-shopping-cart:before { + content: "\e673"; } + +.mdi-action-shop-two:before { + content: "\e674"; } + +.mdi-action-speaker-notes:before { + content: "\e675"; } + +.mdi-action-spellcheck:before { + content: "\e676"; } + +.mdi-action-star-rate:before { + content: "\e677"; } + +.mdi-action-stars:before { + content: "\e678"; } + +.mdi-action-store:before { + content: "\e679"; } + +.mdi-action-subject:before { + content: "\e67a"; } + +.mdi-action-swap-horiz:before { + content: "\e67b"; } + +.mdi-action-swap-vert:before { + content: "\e67c"; } + +.mdi-action-swap-vert-circle:before { + content: "\e67d"; } + +.mdi-action-system-update-tv:before { + content: "\e67e"; } + +.mdi-action-tab:before { + content: "\e67f"; } + +.mdi-action-tab-unselected:before { + content: "\e680"; } + +.mdi-action-theaters:before { + content: "\e681"; } + +.mdi-action-thumb-down:before { + content: "\e682"; } + +.mdi-action-thumbs-up-down:before { + content: "\e683"; } + +.mdi-action-thumb-up:before { + content: "\e684"; } + +.mdi-action-toc:before { + content: "\e685"; } + +.mdi-action-today:before { + content: "\e686"; } + +.mdi-action-track-changes:before { + content: "\e687"; } + +.mdi-action-translate:before { + content: "\e688"; } + +.mdi-action-trending-down:before { + content: "\e689"; } + +.mdi-action-trending-neutral:before { + content: "\e68a"; } + +.mdi-action-trending-up:before { + content: "\e68b"; } + +.mdi-action-turned-in:before { + content: "\e68c"; } + +.mdi-action-turned-in-not:before { + content: "\e68d"; } + +.mdi-action-verified-user:before { + content: "\e68e"; } + +.mdi-action-view-agenda:before { + content: "\e68f"; } + +.mdi-action-view-array:before { + content: "\e690"; } + +.mdi-action-view-carousel:before { + content: "\e691"; } + +.mdi-action-view-column:before { + content: "\e692"; } + +.mdi-action-view-day:before { + content: "\e693"; } + +.mdi-action-view-headline:before { + content: "\e694"; } + +.mdi-action-view-list:before { + content: "\e695"; } + +.mdi-action-view-module:before { + content: "\e696"; } + +.mdi-action-view-quilt:before { + content: "\e697"; } + +.mdi-action-view-stream:before { + content: "\e698"; } + +.mdi-action-view-week:before { + content: "\e699"; } + +.mdi-action-visibility:before { + content: "\e69a"; } + +.mdi-action-visibility-off:before { + content: "\e69b"; } + +.mdi-action-wallet-giftcard:before { + content: "\e69c"; } + +.mdi-action-wallet-membership:before { + content: "\e69d"; } + +.mdi-action-wallet-travel:before { + content: "\e69e"; } + +.mdi-action-work:before { + content: "\e69f"; } + +.mdi-alert-error:before { + content: "\e6a0"; } + +.mdi-alert-warning:before { + content: "\e6a1"; } + +.mdi-av-album:before { + content: "\e6a2"; } + +.mdi-av-timer:before { + content: "\e6a3"; } + +.mdi-av-closed-caption:before { + content: "\e6a4"; } + +.mdi-av-equalizer:before { + content: "\e6a5"; } + +.mdi-av-explicit:before { + content: "\e6a6"; } + +.mdi-av-fast-forward:before { + content: "\e6a7"; } + +.mdi-av-fast-rewind:before { + content: "\e6a8"; } + +.mdi-av-games:before { + content: "\e6a9"; } + +.mdi-av-hearing:before { + content: "\e6aa"; } + +.mdi-av-high-quality:before { + content: "\e6ab"; } + +.mdi-av-loop:before { + content: "\e6ac"; } + +.mdi-av-mic:before { + content: "\e6ad"; } + +.mdi-av-mic-none:before { + content: "\e6ae"; } + +.mdi-av-mic-off:before { + content: "\e6af"; } + +.mdi-av-movie:before { + content: "\e6b0"; } + +.mdi-av-my-library-add:before { + content: "\e6b1"; } + +.mdi-av-my-library-books:before { + content: "\e6b2"; } + +.mdi-av-my-library-music:before { + content: "\e6b3"; } + +.mdi-av-new-releases:before { + content: "\e6b4"; } + +.mdi-av-not-interested:before { + content: "\e6b5"; } + +.mdi-av-pause:before { + content: "\e6b6"; } + +.mdi-av-pause-circle-fill:before { + content: "\e6b7"; } + +.mdi-av-pause-circle-outline:before { + content: "\e6b8"; } + +.mdi-av-play-arrow:before { + content: "\e6b9"; } + +.mdi-av-play-circle-fill:before { + content: "\e6ba"; } + +.mdi-av-play-circle-outline:before { + content: "\e6bb"; } + +.mdi-av-playlist-add:before { + content: "\e6bc"; } + +.mdi-av-play-shopping-bag:before { + content: "\e6bd"; } + +.mdi-av-queue:before { + content: "\e6be"; } + +.mdi-av-queue-music:before { + content: "\e6bf"; } + +.mdi-av-radio:before { + content: "\e6c0"; } + +.mdi-av-recent-actors:before { + content: "\e6c1"; } + +.mdi-av-repeat:before { + content: "\e6c2"; } + +.mdi-av-repeat-one:before { + content: "\e6c3"; } + +.mdi-av-replay:before { + content: "\e6c4"; } + +.mdi-av-shuffle:before { + content: "\e6c5"; } + +.mdi-av-skip-next:before { + content: "\e6c6"; } + +.mdi-av-skip-previous:before { + content: "\e6c7"; } + +.mdi-av-snooze:before { + content: "\e6c8"; } + +.mdi-av-stop:before { + content: "\e6c9"; } + +.mdi-av-subtitles:before { + content: "\e6ca"; } + +.mdi-av-surround-sound:before { + content: "\e6cb"; } + +.mdi-av-videocam:before { + content: "\e6cc"; } + +.mdi-av-videocam-off:before { + content: "\e6cd"; } + +.mdi-av-video-collection:before { + content: "\e6ce"; } + +.mdi-av-volume-down:before { + content: "\e6cf"; } + +.mdi-av-volume-mute:before { + content: "\e6d0"; } + +.mdi-av-volume-off:before { + content: "\e6d1"; } + +.mdi-av-volume-up:before { + content: "\e6d2"; } + +.mdi-av-web:before { + content: "\e6d3"; } + +.mdi-communication-business:before { + content: "\e6d4"; } + +.mdi-communication-call:before { + content: "\e6d5"; } + +.mdi-communication-call-end:before { + content: "\e6d6"; } + +.mdi-communication-call-made:before { + content: "\e6d7"; } + +.mdi-communication-call-merge:before { + content: "\e6d8"; } + +.mdi-communication-call-missed:before { + content: "\e6d9"; } + +.mdi-communication-call-received:before { + content: "\e6da"; } + +.mdi-communication-call-split:before { + content: "\e6db"; } + +.mdi-communication-chat:before { + content: "\e6dc"; } + +.mdi-communication-clear-all:before { + content: "\e6dd"; } + +.mdi-communication-comment:before { + content: "\e6de"; } + +.mdi-communication-contacts:before { + content: "\e6df"; } + +.mdi-communication-dialer-sip:before { + content: "\e6e0"; } + +.mdi-communication-dialpad:before { + content: "\e6e1"; } + +.mdi-communication-dnd-on:before { + content: "\e6e2"; } + +.mdi-communication-email:before { + content: "\e6e3"; } + +.mdi-communication-forum:before { + content: "\e6e4"; } + +.mdi-communication-import-export:before { + content: "\e6e5"; } + +.mdi-communication-invert-colors-off:before { + content: "\e6e6"; } + +.mdi-communication-invert-colors-on:before { + content: "\e6e7"; } + +.mdi-communication-live-help:before { + content: "\e6e8"; } + +.mdi-communication-location-off:before { + content: "\e6e9"; } + +.mdi-communication-location-on:before { + content: "\e6ea"; } + +.mdi-communication-message:before { + content: "\e6eb"; } + +.mdi-communication-messenger:before { + content: "\e6ec"; } + +.mdi-communication-no-sim:before { + content: "\e6ed"; } + +.mdi-communication-phone:before { + content: "\e6ee"; } + +.mdi-communication-portable-wifi-off:before { + content: "\e6ef"; } + +.mdi-communication-quick-contacts-dialer:before { + content: "\e6f0"; } + +.mdi-communication-quick-contacts-mail:before { + content: "\e6f1"; } + +.mdi-communication-ring-volume:before { + content: "\e6f2"; } + +.mdi-communication-stay-current-landscape:before { + content: "\e6f3"; } + +.mdi-communication-stay-current-portrait:before { + content: "\e6f4"; } + +.mdi-communication-stay-primary-landscape:before { + content: "\e6f5"; } + +.mdi-communication-stay-primary-portrait:before { + content: "\e6f6"; } + +.mdi-communication-swap-calls:before { + content: "\e6f7"; } + +.mdi-communication-textsms:before { + content: "\e6f8"; } + +.mdi-communication-voicemail:before { + content: "\e6f9"; } + +.mdi-communication-vpn-key:before { + content: "\e6fa"; } + +.mdi-content-add:before { + content: "\e6fb"; } + +.mdi-content-add-box:before { + content: "\e6fc"; } + +.mdi-content-add-circle:before { + content: "\e6fd"; } + +.mdi-content-add-circle-outline:before { + content: "\e6fe"; } + +.mdi-content-archive:before { + content: "\e6ff"; } + +.mdi-content-backspace:before { + content: "\e700"; } + +.mdi-content-block:before { + content: "\e701"; } + +.mdi-content-clear:before { + content: "\e702"; } + +.mdi-content-content-copy:before { + content: "\e703"; } + +.mdi-content-content-cut:before { + content: "\e704"; } + +.mdi-content-content-paste:before { + content: "\e705"; } + +.mdi-content-create:before { + content: "\e706"; } + +.mdi-content-drafts:before { + content: "\e707"; } + +.mdi-content-filter-list:before { + content: "\e708"; } + +.mdi-content-flag:before { + content: "\e709"; } + +.mdi-content-forward:before { + content: "\e70a"; } + +.mdi-content-gesture:before { + content: "\e70b"; } + +.mdi-content-inbox:before { + content: "\e70c"; } + +.mdi-content-link:before { + content: "\e70d"; } + +.mdi-content-mail:before { + content: "\e70e"; } + +.mdi-content-markunread:before { + content: "\e70f"; } + +.mdi-content-redo:before { + content: "\e710"; } + +.mdi-content-remove:before { + content: "\e711"; } + +.mdi-content-remove-circle:before { + content: "\e712"; } + +.mdi-content-remove-circle-outline:before { + content: "\e713"; } + +.mdi-content-reply:before { + content: "\e714"; } + +.mdi-content-reply-all:before { + content: "\e715"; } + +.mdi-content-report:before { + content: "\e716"; } + +.mdi-content-save:before { + content: "\e717"; } + +.mdi-content-select-all:before { + content: "\e718"; } + +.mdi-content-send:before { + content: "\e719"; } + +.mdi-content-sort:before { + content: "\e71a"; } + +.mdi-content-text-format:before { + content: "\e71b"; } + +.mdi-content-undo:before { + content: "\e71c"; } + +.mdi-device-access-alarm:before { + content: "\e71d"; } + +.mdi-device-access-alarms:before { + content: "\e71e"; } + +.mdi-device-access-time:before { + content: "\e71f"; } + +.mdi-device-add-alarm:before { + content: "\e720"; } + +.mdi-device-airplanemode-off:before { + content: "\e721"; } + +.mdi-device-airplanemode-on:before { + content: "\e722"; } + +.mdi-device-battery-20:before { + content: "\e723"; } + +.mdi-device-battery-30:before { + content: "\e724"; } + +.mdi-device-battery-50:before { + content: "\e725"; } + +.mdi-device-battery-60:before { + content: "\e726"; } + +.mdi-device-battery-80:before { + content: "\e727"; } + +.mdi-device-battery-90:before { + content: "\e728"; } + +.mdi-device-battery-alert:before { + content: "\e729"; } + +.mdi-device-battery-charging-20:before { + content: "\e72a"; } + +.mdi-device-battery-charging-30:before { + content: "\e72b"; } + +.mdi-device-battery-charging-50:before { + content: "\e72c"; } + +.mdi-device-battery-charging-60:before { + content: "\e72d"; } + +.mdi-device-battery-charging-80:before { + content: "\e72e"; } + +.mdi-device-battery-charging-90:before { + content: "\e72f"; } + +.mdi-device-battery-charging-full:before { + content: "\e730"; } + +.mdi-device-battery-full:before { + content: "\e731"; } + +.mdi-device-battery-std:before { + content: "\e732"; } + +.mdi-device-battery-unknown:before { + content: "\e733"; } + +.mdi-device-bluetooth:before { + content: "\e734"; } + +.mdi-device-bluetooth-connected:before { + content: "\e735"; } + +.mdi-device-bluetooth-disabled:before { + content: "\e736"; } + +.mdi-device-bluetooth-searching:before { + content: "\e737"; } + +.mdi-device-brightness-auto:before { + content: "\e738"; } + +.mdi-device-brightness-high:before { + content: "\e739"; } + +.mdi-device-brightness-low:before { + content: "\e73a"; } + +.mdi-device-brightness-medium:before { + content: "\e73b"; } + +.mdi-device-data-usage:before { + content: "\e73c"; } + +.mdi-device-developer-mode:before { + content: "\e73d"; } + +.mdi-device-devices:before { + content: "\e73e"; } + +.mdi-device-dvr:before { + content: "\e73f"; } + +.mdi-device-gps-fixed:before { + content: "\e740"; } + +.mdi-device-gps-not-fixed:before { + content: "\e741"; } + +.mdi-device-gps-off:before { + content: "\e742"; } + +.mdi-device-location-disabled:before { + content: "\e743"; } + +.mdi-device-location-searching:before { + content: "\e744"; } + +.mdi-device-multitrack-audio:before { + content: "\e745"; } + +.mdi-device-network-cell:before { + content: "\e746"; } + +.mdi-device-network-wifi:before { + content: "\e747"; } + +.mdi-device-nfc:before { + content: "\e748"; } + +.mdi-device-now-wallpaper:before { + content: "\e749"; } + +.mdi-device-now-widgets:before { + content: "\e74a"; } + +.mdi-device-screen-lock-landscape:before { + content: "\e74b"; } + +.mdi-device-screen-lock-portrait:before { + content: "\e74c"; } + +.mdi-device-screen-lock-rotation:before { + content: "\e74d"; } + +.mdi-device-screen-rotation:before { + content: "\e74e"; } + +.mdi-device-sd-storage:before { + content: "\e74f"; } + +.mdi-device-settings-system-daydream:before { + content: "\e750"; } + +.mdi-device-signal-cellular-0-bar:before { + content: "\e751"; } + +.mdi-device-signal-cellular-1-bar:before { + content: "\e752"; } + +.mdi-device-signal-cellular-2-bar:before { + content: "\e753"; } + +.mdi-device-signal-cellular-3-bar:before { + content: "\e754"; } + +.mdi-device-signal-cellular-4-bar:before { + content: "\e755"; } + +.mdi-device-signal-cellular-connected-no-internet-0-bar:before { + content: "\e756"; } + +.mdi-device-signal-cellular-connected-no-internet-1-bar:before { + content: "\e757"; } + +.mdi-device-signal-cellular-connected-no-internet-2-bar:before { + content: "\e758"; } + +.mdi-device-signal-cellular-connected-no-internet-3-bar:before { + content: "\e759"; } + +.mdi-device-signal-cellular-connected-no-internet-4-bar:before { + content: "\e75a"; } + +.mdi-device-signal-cellular-no-sim:before { + content: "\e75b"; } + +.mdi-device-signal-cellular-null:before { + content: "\e75c"; } + +.mdi-device-signal-cellular-off:before { + content: "\e75d"; } + +.mdi-device-signal-wifi-0-bar:before { + content: "\e75e"; } + +.mdi-device-signal-wifi-1-bar:before { + content: "\e75f"; } + +.mdi-device-signal-wifi-2-bar:before { + content: "\e760"; } + +.mdi-device-signal-wifi-3-bar:before { + content: "\e761"; } + +.mdi-device-signal-wifi-4-bar:before { + content: "\e762"; } + +.mdi-device-signal-wifi-off:before { + content: "\e763"; } + +.mdi-device-storage:before { + content: "\e764"; } + +.mdi-device-usb:before { + content: "\e765"; } + +.mdi-device-wifi-lock:before { + content: "\e766"; } + +.mdi-device-wifi-tethering:before { + content: "\e767"; } + +.mdi-editor-attach-file:before { + content: "\e768"; } + +.mdi-editor-attach-money:before { + content: "\e769"; } + +.mdi-editor-border-all:before { + content: "\e76a"; } + +.mdi-editor-border-bottom:before { + content: "\e76b"; } + +.mdi-editor-border-clear:before { + content: "\e76c"; } + +.mdi-editor-border-color:before { + content: "\e76d"; } + +.mdi-editor-border-horizontal:before { + content: "\e76e"; } + +.mdi-editor-border-inner:before { + content: "\e76f"; } + +.mdi-editor-border-left:before { + content: "\e770"; } + +.mdi-editor-border-outer:before { + content: "\e771"; } + +.mdi-editor-border-right:before { + content: "\e772"; } + +.mdi-editor-border-style:before { + content: "\e773"; } + +.mdi-editor-border-top:before { + content: "\e774"; } + +.mdi-editor-border-vertical:before { + content: "\e775"; } + +.mdi-editor-format-align-center:before { + content: "\e776"; } + +.mdi-editor-format-align-justify:before { + content: "\e777"; } + +.mdi-editor-format-align-left:before { + content: "\e778"; } + +.mdi-editor-format-align-right:before { + content: "\e779"; } + +.mdi-editor-format-bold:before { + content: "\e77a"; } + +.mdi-editor-format-clear:before { + content: "\e77b"; } + +.mdi-editor-format-color-fill:before { + content: "\e77c"; } + +.mdi-editor-format-color-reset:before { + content: "\e77d"; } + +.mdi-editor-format-color-text:before { + content: "\e77e"; } + +.mdi-editor-format-indent-decrease:before { + content: "\e77f"; } + +.mdi-editor-format-indent-increase:before { + content: "\e780"; } + +.mdi-editor-format-italic:before { + content: "\e781"; } + +.mdi-editor-format-line-spacing:before { + content: "\e782"; } + +.mdi-editor-format-list-bulleted:before { + content: "\e783"; } + +.mdi-editor-format-list-numbered:before { + content: "\e784"; } + +.mdi-editor-format-paint:before { + content: "\e785"; } + +.mdi-editor-format-quote:before { + content: "\e786"; } + +.mdi-editor-format-size:before { + content: "\e787"; } + +.mdi-editor-format-strikethrough:before { + content: "\e788"; } + +.mdi-editor-functions:before { + content: "\e789"; } + +.mdi-editor-format-textdirection-l-to-r:before { + content: "\e78a"; } + +.mdi-editor-format-underline:before { + content: "\e78b"; } + +.mdi-editor-format-textdirection-r-to-l:before { + content: "\e78c"; } + +.mdi-editor-insert-chart:before { + content: "\e78d"; } + +.mdi-editor-insert-comment:before { + content: "\e78e"; } + +.mdi-editor-insert-drive-file:before { + content: "\e78f"; } + +.mdi-editor-insert-emoticon:before { + content: "\e790"; } + +.mdi-editor-insert-invitation:before { + content: "\e791"; } + +.mdi-editor-insert-link:before { + content: "\e792"; } + +.mdi-editor-insert-photo:before { + content: "\e793"; } + +.mdi-editor-merge-type:before { + content: "\e794"; } + +.mdi-editor-mode-comment:before { + content: "\e795"; } + +.mdi-editor-mode-edit:before { + content: "\e796"; } + +.mdi-editor-publish:before { + content: "\e797"; } + +.mdi-editor-vertical-align-bottom:before { + content: "\e798"; } + +.mdi-editor-vertical-align-center:before { + content: "\e799"; } + +.mdi-editor-vertical-align-top:before { + content: "\e79a"; } + +.mdi-editor-wrap-text:before { + content: "\e79b"; } + +.mdi-file-attachment:before { + content: "\e79c"; } + +.mdi-file-cloud:before { + content: "\e79d"; } + +.mdi-file-cloud-circle:before { + content: "\e79e"; } + +.mdi-file-cloud-done:before { + content: "\e79f"; } + +.mdi-file-cloud-download:before { + content: "\e7a0"; } + +.mdi-file-cloud-off:before { + content: "\e7a1"; } + +.mdi-file-cloud-queue:before { + content: "\e7a2"; } + +.mdi-file-cloud-upload:before { + content: "\e7a3"; } + +.mdi-file-file-download:before { + content: "\e7a4"; } + +.mdi-file-file-upload:before { + content: "\e7a5"; } + +.mdi-file-folder:before { + content: "\e7a6"; } + +.mdi-file-folder-open:before { + content: "\e7a7"; } + +.mdi-file-folder-shared:before { + content: "\e7a8"; } + +.mdi-hardware-cast:before { + content: "\e7a9"; } + +.mdi-hardware-cast-connected:before { + content: "\e7aa"; } + +.mdi-hardware-computer:before { + content: "\e7ab"; } + +.mdi-hardware-desktop-mac:before { + content: "\e7ac"; } + +.mdi-hardware-desktop-windows:before { + content: "\e7ad"; } + +.mdi-hardware-dock:before { + content: "\e7ae"; } + +.mdi-hardware-gamepad:before { + content: "\e7af"; } + +.mdi-hardware-headset:before { + content: "\e7b0"; } + +.mdi-hardware-headset-mic:before { + content: "\e7b1"; } + +.mdi-hardware-keyboard:before { + content: "\e7b2"; } + +.mdi-hardware-keyboard-alt:before { + content: "\e7b3"; } + +.mdi-hardware-keyboard-arrow-down:before { + content: "\e7b4"; } + +.mdi-hardware-keyboard-arrow-left:before { + content: "\e7b5"; } + +.mdi-hardware-keyboard-arrow-right:before { + content: "\e7b6"; } + +.mdi-hardware-keyboard-arrow-up:before { + content: "\e7b7"; } + +.mdi-hardware-keyboard-backspace:before { + content: "\e7b8"; } + +.mdi-hardware-keyboard-capslock:before { + content: "\e7b9"; } + +.mdi-hardware-keyboard-control:before { + content: "\e7ba"; } + +.mdi-hardware-keyboard-hide:before { + content: "\e7bb"; } + +.mdi-hardware-keyboard-return:before { + content: "\e7bc"; } + +.mdi-hardware-keyboard-tab:before { + content: "\e7bd"; } + +.mdi-hardware-keyboard-voice:before { + content: "\e7be"; } + +.mdi-hardware-laptop:before { + content: "\e7bf"; } + +.mdi-hardware-laptop-chromebook:before { + content: "\e7c0"; } + +.mdi-hardware-laptop-mac:before { + content: "\e7c1"; } + +.mdi-hardware-laptop-windows:before { + content: "\e7c2"; } + +.mdi-hardware-memory:before { + content: "\e7c3"; } + +.mdi-hardware-mouse:before { + content: "\e7c4"; } + +.mdi-hardware-phone-android:before { + content: "\e7c5"; } + +.mdi-hardware-phone-iphone:before { + content: "\e7c6"; } + +.mdi-hardware-phonelink:before { + content: "\e7c7"; } + +.mdi-hardware-phonelink-off:before { + content: "\e7c8"; } + +.mdi-hardware-security:before { + content: "\e7c9"; } + +.mdi-hardware-sim-card:before { + content: "\e7ca"; } + +.mdi-hardware-smartphone:before { + content: "\e7cb"; } + +.mdi-hardware-speaker:before { + content: "\e7cc"; } + +.mdi-hardware-tablet:before { + content: "\e7cd"; } + +.mdi-hardware-tablet-android:before { + content: "\e7ce"; } + +.mdi-hardware-tablet-mac:before { + content: "\e7cf"; } + +.mdi-hardware-tv:before { + content: "\e7d0"; } + +.mdi-hardware-watch:before { + content: "\e7d1"; } + +.mdi-image-add-to-photos:before { + content: "\e7d2"; } + +.mdi-image-adjust:before { + content: "\e7d3"; } + +.mdi-image-assistant-photo:before { + content: "\e7d4"; } + +.mdi-image-audiotrack:before { + content: "\e7d5"; } + +.mdi-image-blur-circular:before { + content: "\e7d6"; } + +.mdi-image-blur-linear:before { + content: "\e7d7"; } + +.mdi-image-blur-off:before { + content: "\e7d8"; } + +.mdi-image-blur-on:before { + content: "\e7d9"; } + +.mdi-image-brightness-1:before { + content: "\e7da"; } + +.mdi-image-brightness-2:before { + content: "\e7db"; } + +.mdi-image-brightness-3:before { + content: "\e7dc"; } + +.mdi-image-brightness-4:before { + content: "\e7dd"; } + +.mdi-image-brightness-5:before { + content: "\e7de"; } + +.mdi-image-brightness-6:before { + content: "\e7df"; } + +.mdi-image-brightness-7:before { + content: "\e7e0"; } + +.mdi-image-brush:before { + content: "\e7e1"; } + +.mdi-image-camera:before { + content: "\e7e2"; } + +.mdi-image-camera-alt:before { + content: "\e7e3"; } + +.mdi-image-camera-front:before { + content: "\e7e4"; } + +.mdi-image-camera-rear:before { + content: "\e7e5"; } + +.mdi-image-camera-roll:before { + content: "\e7e6"; } + +.mdi-image-center-focus-strong:before { + content: "\e7e7"; } + +.mdi-image-center-focus-weak:before { + content: "\e7e8"; } + +.mdi-image-collections:before { + content: "\e7e9"; } + +.mdi-image-colorize:before { + content: "\e7ea"; } + +.mdi-image-color-lens:before { + content: "\e7eb"; } + +.mdi-image-compare:before { + content: "\e7ec"; } + +.mdi-image-control-point:before { + content: "\e7ed"; } + +.mdi-image-control-point-duplicate:before { + content: "\e7ee"; } + +.mdi-image-crop:before { + content: "\e7ef"; } + +.mdi-image-crop-3-2:before { + content: "\e7f0"; } + +.mdi-image-crop-5-4:before { + content: "\e7f1"; } + +.mdi-image-crop-7-5:before { + content: "\e7f2"; } + +.mdi-image-crop-16-9:before { + content: "\e7f3"; } + +.mdi-image-crop-din:before { + content: "\e7f4"; } + +.mdi-image-crop-free:before { + content: "\e7f5"; } + +.mdi-image-crop-landscape:before { + content: "\e7f6"; } + +.mdi-image-crop-original:before { + content: "\e7f7"; } + +.mdi-image-crop-portrait:before { + content: "\e7f8"; } + +.mdi-image-crop-square:before { + content: "\e7f9"; } + +.mdi-image-dehaze:before { + content: "\e7fa"; } + +.mdi-image-details:before { + content: "\e7fb"; } + +.mdi-image-edit:before { + content: "\e7fc"; } + +.mdi-image-exposure:before { + content: "\e7fd"; } + +.mdi-image-exposure-minus-1:before { + content: "\e7fe"; } + +.mdi-image-exposure-minus-2:before { + content: "\e7ff"; } + +.mdi-image-exposure-plus-1:before { + content: "\e800"; } + +.mdi-image-exposure-plus-2:before { + content: "\e801"; } + +.mdi-image-exposure-zero:before { + content: "\e802"; } + +.mdi-image-filter:before { + content: "\e803"; } + +.mdi-image-filter-1:before { + content: "\e804"; } + +.mdi-image-filter-2:before { + content: "\e805"; } + +.mdi-image-filter-3:before { + content: "\e806"; } + +.mdi-image-filter-4:before { + content: "\e807"; } + +.mdi-image-filter-5:before { + content: "\e808"; } + +.mdi-image-filter-6:before { + content: "\e809"; } + +.mdi-image-filter-7:before { + content: "\e80a"; } + +.mdi-image-filter-8:before { + content: "\e80b"; } + +.mdi-image-filter-9:before { + content: "\e80c"; } + +.mdi-image-filter-9-plus:before { + content: "\e80d"; } + +.mdi-image-filter-b-and-w:before { + content: "\e80e"; } + +.mdi-image-filter-center-focus:before { + content: "\e80f"; } + +.mdi-image-filter-drama:before { + content: "\e810"; } + +.mdi-image-filter-frames:before { + content: "\e811"; } + +.mdi-image-filter-hdr:before { + content: "\e812"; } + +.mdi-image-filter-none:before { + content: "\e813"; } + +.mdi-image-filter-tilt-shift:before { + content: "\e814"; } + +.mdi-image-filter-vintage:before { + content: "\e815"; } + +.mdi-image-flare:before { + content: "\e816"; } + +.mdi-image-flash-auto:before { + content: "\e817"; } + +.mdi-image-flash-off:before { + content: "\e818"; } + +.mdi-image-flash-on:before { + content: "\e819"; } + +.mdi-image-flip:before { + content: "\e81a"; } + +.mdi-image-gradient:before { + content: "\e81b"; } + +.mdi-image-grain:before { + content: "\e81c"; } + +.mdi-image-grid-off:before { + content: "\e81d"; } + +.mdi-image-grid-on:before { + content: "\e81e"; } + +.mdi-image-hdr-off:before { + content: "\e81f"; } + +.mdi-image-hdr-on:before { + content: "\e820"; } + +.mdi-image-hdr-strong:before { + content: "\e821"; } + +.mdi-image-hdr-weak:before { + content: "\e822"; } + +.mdi-image-healing:before { + content: "\e823"; } + +.mdi-image-image:before { + content: "\e824"; } + +.mdi-image-image-aspect-ratio:before { + content: "\e825"; } + +.mdi-image-iso:before { + content: "\e826"; } + +.mdi-image-landscape:before { + content: "\e827"; } + +.mdi-image-leak-add:before { + content: "\e828"; } + +.mdi-image-leak-remove:before { + content: "\e829"; } + +.mdi-image-lens:before { + content: "\e82a"; } + +.mdi-image-looks:before { + content: "\e82b"; } + +.mdi-image-looks-3:before { + content: "\e82c"; } + +.mdi-image-looks-4:before { + content: "\e82d"; } + +.mdi-image-looks-5:before { + content: "\e82e"; } + +.mdi-image-looks-6:before { + content: "\e82f"; } + +.mdi-image-looks-one:before { + content: "\e830"; } + +.mdi-image-looks-two:before { + content: "\e831"; } + +.mdi-image-loupe:before { + content: "\e832"; } + +.mdi-image-movie-creation:before { + content: "\e833"; } + +.mdi-image-nature:before { + content: "\e834"; } + +.mdi-image-nature-people:before { + content: "\e835"; } + +.mdi-image-navigate-before:before { + content: "\e836"; } + +.mdi-image-navigate-next:before { + content: "\e837"; } + +.mdi-image-palette:before { + content: "\e838"; } + +.mdi-image-panorama:before { + content: "\e839"; } + +.mdi-image-panorama-fisheye:before { + content: "\e83a"; } + +.mdi-image-panorama-horizontal:before { + content: "\e83b"; } + +.mdi-image-panorama-vertical:before { + content: "\e83c"; } + +.mdi-image-panorama-wide-angle:before { + content: "\e83d"; } + +.mdi-image-photo:before { + content: "\e83e"; } + +.mdi-image-photo-album:before { + content: "\e83f"; } + +.mdi-image-photo-camera:before { + content: "\e840"; } + +.mdi-image-photo-library:before { + content: "\e841"; } + +.mdi-image-portrait:before { + content: "\e842"; } + +.mdi-image-remove-red-eye:before { + content: "\e843"; } + +.mdi-image-rotate-left:before { + content: "\e844"; } + +.mdi-image-rotate-right:before { + content: "\e845"; } + +.mdi-image-slideshow:before { + content: "\e846"; } + +.mdi-image-straighten:before { + content: "\e847"; } + +.mdi-image-style:before { + content: "\e848"; } + +.mdi-image-switch-camera:before { + content: "\e849"; } + +.mdi-image-switch-video:before { + content: "\e84a"; } + +.mdi-image-tag-faces:before { + content: "\e84b"; } + +.mdi-image-texture:before { + content: "\e84c"; } + +.mdi-image-timelapse:before { + content: "\e84d"; } + +.mdi-image-timer:before { + content: "\e84e"; } + +.mdi-image-timer-3:before { + content: "\e84f"; } + +.mdi-image-timer-10:before { + content: "\e850"; } + +.mdi-image-timer-auto:before { + content: "\e851"; } + +.mdi-image-timer-off:before { + content: "\e852"; } + +.mdi-image-tonality:before { + content: "\e853"; } + +.mdi-image-transform:before { + content: "\e854"; } + +.mdi-image-tune:before { + content: "\e855"; } + +.mdi-image-wb-auto:before { + content: "\e856"; } + +.mdi-image-wb-cloudy:before { + content: "\e857"; } + +.mdi-image-wb-incandescent:before { + content: "\e858"; } + +.mdi-image-wb-irradescent:before { + content: "\e859"; } + +.mdi-image-wb-sunny:before { + content: "\e85a"; } + +.mdi-maps-beenhere:before { + content: "\e85b"; } + +.mdi-maps-directions:before { + content: "\e85c"; } + +.mdi-maps-directions-bike:before { + content: "\e85d"; } + +.mdi-maps-directions-bus:before { + content: "\e85e"; } + +.mdi-maps-directions-car:before { + content: "\e85f"; } + +.mdi-maps-directions-ferry:before { + content: "\e860"; } + +.mdi-maps-directions-subway:before { + content: "\e861"; } + +.mdi-maps-directions-train:before { + content: "\e862"; } + +.mdi-maps-directions-transit:before { + content: "\e863"; } + +.mdi-maps-directions-walk:before { + content: "\e864"; } + +.mdi-maps-flight:before { + content: "\e865"; } + +.mdi-maps-hotel:before { + content: "\e866"; } + +.mdi-maps-layers:before { + content: "\e867"; } + +.mdi-maps-layers-clear:before { + content: "\e868"; } + +.mdi-maps-local-airport:before { + content: "\e869"; } + +.mdi-maps-local-atm:before { + content: "\e86a"; } + +.mdi-maps-local-attraction:before { + content: "\e86b"; } + +.mdi-maps-local-bar:before { + content: "\e86c"; } + +.mdi-maps-local-cafe:before { + content: "\e86d"; } + +.mdi-maps-local-car-wash:before { + content: "\e86e"; } + +.mdi-maps-local-convenience-store:before { + content: "\e86f"; } + +.mdi-maps-local-drink:before { + content: "\e870"; } + +.mdi-maps-local-florist:before { + content: "\e871"; } + +.mdi-maps-local-gas-station:before { + content: "\e872"; } + +.mdi-maps-local-grocery-store:before { + content: "\e873"; } + +.mdi-maps-local-hospital:before { + content: "\e874"; } + +.mdi-maps-local-hotel:before { + content: "\e875"; } + +.mdi-maps-local-laundry-service:before { + content: "\e876"; } + +.mdi-maps-local-library:before { + content: "\e877"; } + +.mdi-maps-local-mall:before { + content: "\e878"; } + +.mdi-maps-local-movies:before { + content: "\e879"; } + +.mdi-maps-local-offer:before { + content: "\e87a"; } + +.mdi-maps-local-parking:before { + content: "\e87b"; } + +.mdi-maps-local-pharmacy:before { + content: "\e87c"; } + +.mdi-maps-local-phone:before { + content: "\e87d"; } + +.mdi-maps-local-pizza:before { + content: "\e87e"; } + +.mdi-maps-local-play:before { + content: "\e87f"; } + +.mdi-maps-local-post-office:before { + content: "\e880"; } + +.mdi-maps-local-print-shop:before { + content: "\e881"; } + +.mdi-maps-local-restaurant:before { + content: "\e882"; } + +.mdi-maps-local-see:before { + content: "\e883"; } + +.mdi-maps-local-shipping:before { + content: "\e884"; } + +.mdi-maps-local-taxi:before { + content: "\e885"; } + +.mdi-maps-location-history:before { + content: "\e886"; } + +.mdi-maps-map:before { + content: "\e887"; } + +.mdi-maps-my-location:before { + content: "\e888"; } + +.mdi-maps-navigation:before { + content: "\e889"; } + +.mdi-maps-pin-drop:before { + content: "\e88a"; } + +.mdi-maps-place:before { + content: "\e88b"; } + +.mdi-maps-rate-review:before { + content: "\e88c"; } + +.mdi-maps-restaurant-menu:before { + content: "\e88d"; } + +.mdi-maps-satellite:before { + content: "\e88e"; } + +.mdi-maps-store-mall-directory:before { + content: "\e88f"; } + +.mdi-maps-terrain:before { + content: "\e890"; } + +.mdi-maps-traffic:before { + content: "\e891"; } + +.mdi-navigation-apps:before { + content: "\e892"; } + +.mdi-navigation-arrow-back:before { + content: "\e893"; } + +.mdi-navigation-arrow-drop-down:before { + content: "\e894"; } + +.mdi-navigation-arrow-drop-down-circle:before { + content: "\e895"; } + +.mdi-navigation-arrow-drop-up:before { + content: "\e896"; } + +.mdi-navigation-arrow-forward:before { + content: "\e897"; } + +.mdi-navigation-cancel:before { + content: "\e898"; } + +.mdi-navigation-check:before { + content: "\e899"; } + +.mdi-navigation-chevron-left:before { + content: "\e89a"; } + +.mdi-navigation-chevron-right:before { + content: "\e89b"; } + +.mdi-navigation-close:before { + content: "\e89c"; } + +.mdi-navigation-expand-less:before { + content: "\e89d"; } + +.mdi-navigation-expand-more:before { + content: "\e89e"; } + +.mdi-navigation-fullscreen:before { + content: "\e89f"; } + +.mdi-navigation-fullscreen-exit:before { + content: "\e8a0"; } + +.mdi-navigation-menu:before { + content: "\e8a1"; } + +.mdi-navigation-more-horiz:before { + content: "\e8a2"; } + +.mdi-navigation-more-vert:before { + content: "\e8a3"; } + +.mdi-navigation-refresh:before { + content: "\e8a4"; } + +.mdi-navigation-unfold-less:before { + content: "\e8a5"; } + +.mdi-navigation-unfold-more:before { + content: "\e8a6"; } + +.mdi-notification-adb:before { + content: "\e8a7"; } + +.mdi-notification-bluetooth-audio:before { + content: "\e8a8"; } + +.mdi-notification-disc-full:before { + content: "\e8a9"; } + +.mdi-notification-dnd-forwardslash:before { + content: "\e8aa"; } + +.mdi-notification-do-not-disturb:before { + content: "\e8ab"; } + +.mdi-notification-drive-eta:before { + content: "\e8ac"; } + +.mdi-notification-event-available:before { + content: "\e8ad"; } + +.mdi-notification-event-busy:before { + content: "\e8ae"; } + +.mdi-notification-event-note:before { + content: "\e8af"; } + +.mdi-notification-folder-special:before { + content: "\e8b0"; } + +.mdi-notification-mms:before { + content: "\e8b1"; } + +.mdi-notification-more:before { + content: "\e8b2"; } + +.mdi-notification-network-locked:before { + content: "\e8b3"; } + +.mdi-notification-phone-bluetooth-speaker:before { + content: "\e8b4"; } + +.mdi-notification-phone-forwarded:before { + content: "\e8b5"; } + +.mdi-notification-phone-in-talk:before { + content: "\e8b6"; } + +.mdi-notification-phone-locked:before { + content: "\e8b7"; } + +.mdi-notification-phone-missed:before { + content: "\e8b8"; } + +.mdi-notification-phone-paused:before { + content: "\e8b9"; } + +.mdi-notification-play-download:before { + content: "\e8ba"; } + +.mdi-notification-play-install:before { + content: "\e8bb"; } + +.mdi-notification-sd-card:before { + content: "\e8bc"; } + +.mdi-notification-sim-card-alert:before { + content: "\e8bd"; } + +.mdi-notification-sms:before { + content: "\e8be"; } + +.mdi-notification-sms-failed:before { + content: "\e8bf"; } + +.mdi-notification-sync:before { + content: "\e8c0"; } + +.mdi-notification-sync-disabled:before { + content: "\e8c1"; } + +.mdi-notification-sync-problem:before { + content: "\e8c2"; } + +.mdi-notification-system-update:before { + content: "\e8c3"; } + +.mdi-notification-tap-and-play:before { + content: "\e8c4"; } + +.mdi-notification-time-to-leave:before { + content: "\e8c5"; } + +.mdi-notification-vibration:before { + content: "\e8c6"; } + +.mdi-notification-voice-chat:before { + content: "\e8c7"; } + +.mdi-notification-vpn-lock:before { + content: "\e8c8"; } + +.mdi-social-cake:before { + content: "\e8c9"; } + +.mdi-social-domain:before { + content: "\e8ca"; } + +.mdi-social-group:before { + content: "\e8cb"; } + +.mdi-social-group-add:before { + content: "\e8cc"; } + +.mdi-social-location-city:before { + content: "\e8cd"; } + +.mdi-social-mood:before { + content: "\e8ce"; } + +.mdi-social-notifications:before { + content: "\e8cf"; } + +.mdi-social-notifications-none:before { + content: "\e8d0"; } + +.mdi-social-notifications-off:before { + content: "\e8d1"; } + +.mdi-social-notifications-on:before { + content: "\e8d2"; } + +.mdi-social-notifications-paused:before { + content: "\e8d3"; } + +.mdi-social-pages:before { + content: "\e8d4"; } + +.mdi-social-party-mode:before { + content: "\e8d5"; } + +.mdi-social-people:before { + content: "\e8d6"; } + +.mdi-social-people-outline:before { + content: "\e8d7"; } + +.mdi-social-person:before { + content: "\e8d8"; } + +.mdi-social-person-add:before { + content: "\e8d9"; } + +.mdi-social-person-outline:before { + content: "\e8da"; } + +.mdi-social-plus-one:before { + content: "\e8db"; } + +.mdi-social-poll:before { + content: "\e8dc"; } + +.mdi-social-public:before { + content: "\e8dd"; } + +.mdi-social-school:before { + content: "\e8de"; } + +.mdi-social-share:before { + content: "\e8df"; } + +.mdi-social-whatshot:before { + content: "\e8e0"; } + +.mdi-toggle-check-box:before { + content: "\e8e1"; } + +.mdi-toggle-check-box-outline-blank:before { + content: "\e8e2"; } + +.mdi-toggle-radio-button-off:before { + content: "\e8e3"; } + +.mdi-toggle-radio-button-on:before { + content: "\e8e4"; } + +.container { + padding: 0 1.5rem; + margin: 0 auto; + max-width: 1280px; + width: 90%; } + +@media only screen and (min-width : 601px) { + .container { + width: 85%; } } + +@media only screen and (min-width : 993px) { + .container { + width: 70%; } } + +.container .row { + margin-left: -0.75rem; + margin-right: -0.75rem; } + +.section { + padding-top: 1rem; + padding-bottom: 1rem; } + .section.no-pad { + padding: 0; } + .section.no-pad-bot { + padding-bottom: 0; } + .section.no-pad-top { + padding-top: 0; } + +.row { + margin-left: auto; + margin-right: auto; + margin-bottom: 20px; } + .row:after { + content: ""; + display: table; + clear: both; } + .row .col { + float: left; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0 0.75rem; } + .row .col.s1 { + width: 8.33333%; + margin-left: 0; } + .row .col.s2 { + width: 16.66667%; + margin-left: 0; } + .row .col.s3 { + width: 25%; + margin-left: 0; } + .row .col.s4 { + width: 33.33333%; + margin-left: 0; } + .row .col.s5 { + width: 41.66667%; + margin-left: 0; } + .row .col.s6 { + width: 50%; + margin-left: 0; } + .row .col.s7 { + width: 58.33333%; + margin-left: 0; } + .row .col.s8 { + width: 66.66667%; + margin-left: 0; } + .row .col.s9 { + width: 75%; + margin-left: 0; } + .row .col.s10 { + width: 83.33333%; + margin-left: 0; } + .row .col.s11 { + width: 91.66667%; + margin-left: 0; } + .row .col.s12 { + width: 100%; + margin-left: 0; } + .row .col.offset-s1 { + margin-left: 8.33333%; } + .row .col.offset-s2 { + margin-left: 16.66667%; } + .row .col.offset-s3 { + margin-left: 25%; } + .row .col.offset-s4 { + margin-left: 33.33333%; } + .row .col.offset-s5 { + margin-left: 41.66667%; } + .row .col.offset-s6 { + margin-left: 50%; } + .row .col.offset-s7 { + margin-left: 58.33333%; } + .row .col.offset-s8 { + margin-left: 66.66667%; } + .row .col.offset-s9 { + margin-left: 75%; } + .row .col.offset-s10 { + margin-left: 83.33333%; } + .row .col.offset-s11 { + margin-left: 91.66667%; } + .row .col.offset-s12 { + margin-left: 100%; } + @media only screen and (min-width : 601px) { + .row .col.m1 { + width: 8.33333%; + margin-left: 0; } + .row .col.m2 { + width: 16.66667%; + margin-left: 0; } + .row .col.m3 { + width: 25%; + margin-left: 0; } + .row .col.m4 { + width: 33.33333%; + margin-left: 0; } + .row .col.m5 { + width: 41.66667%; + margin-left: 0; } + .row .col.m6 { + width: 50%; + margin-left: 0; } + .row .col.m7 { + width: 58.33333%; + margin-left: 0; } + .row .col.m8 { + width: 66.66667%; + margin-left: 0; } + .row .col.m9 { + width: 75%; + margin-left: 0; } + .row .col.m10 { + width: 83.33333%; + margin-left: 0; } + .row .col.m11 { + width: 91.66667%; + margin-left: 0; } + .row .col.m12 { + width: 100%; + margin-left: 0; } + .row .col.offset-m1 { + margin-left: 8.33333%; } + .row .col.offset-m2 { + margin-left: 16.66667%; } + .row .col.offset-m3 { + margin-left: 25%; } + .row .col.offset-m4 { + margin-left: 33.33333%; } + .row .col.offset-m5 { + margin-left: 41.66667%; } + .row .col.offset-m6 { + margin-left: 50%; } + .row .col.offset-m7 { + margin-left: 58.33333%; } + .row .col.offset-m8 { + margin-left: 66.66667%; } + .row .col.offset-m9 { + margin-left: 75%; } + .row .col.offset-m10 { + margin-left: 83.33333%; } + .row .col.offset-m11 { + margin-left: 91.66667%; } + .row .col.offset-m12 { + margin-left: 100%; } } + @media only screen and (min-width : 993px) { + .row .col.l1 { + width: 8.33333%; + margin-left: 0; } + .row .col.l2 { + width: 16.66667%; + margin-left: 0; } + .row .col.l3 { + width: 25%; + margin-left: 0; } + .row .col.l4 { + width: 33.33333%; + margin-left: 0; } + .row .col.l5 { + width: 41.66667%; + margin-left: 0; } + .row .col.l6 { + width: 50%; + margin-left: 0; } + .row .col.l7 { + width: 58.33333%; + margin-left: 0; } + .row .col.l8 { + width: 66.66667%; + margin-left: 0; } + .row .col.l9 { + width: 75%; + margin-left: 0; } + .row .col.l10 { + width: 83.33333%; + margin-left: 0; } + .row .col.l11 { + width: 91.66667%; + margin-left: 0; } + .row .col.l12 { + width: 100%; + margin-left: 0; } + .row .col.offset-l1 { + margin-left: 8.33333%; } + .row .col.offset-l2 { + margin-left: 16.66667%; } + .row .col.offset-l3 { + margin-left: 25%; } + .row .col.offset-l4 { + margin-left: 33.33333%; } + .row .col.offset-l5 { + margin-left: 41.66667%; } + .row .col.offset-l6 { + margin-left: 50%; } + .row .col.offset-l7 { + margin-left: 58.33333%; } + .row .col.offset-l8 { + margin-left: 66.66667%; } + .row .col.offset-l9 { + margin-left: 75%; } + .row .col.offset-l10 { + margin-left: 83.33333%; } + .row .col.offset-l11 { + margin-left: 91.66667%; } + .row .col.offset-l12 { + margin-left: 100%; } } + +nav { + color: #fff; + background-color: #ee6e73; + width: 100%; + height: 56px; + line-height: 56px; } + nav a { + color: #fff; } + nav .nav-wrapper { + position: relative; + height: 100%; } + nav .nav-wrapper i { + display: block; + font-size: 2rem; } + @media only screen and (min-width : 993px) { + nav a.button-collapse { + display: none; } } + nav .button-collapse { + float: left; + position: relative; + z-index: 1; + height: 56px; } + nav .button-collapse i { + font-size: 2.7rem; + height: 56px; + line-height: 56px; } + nav .brand-logo { + position: absolute; + color: #fff; + display: inline-block; + font-size: 2.1rem; + padding: 0; } + nav .brand-logo.center { + left: 50%; + -webkit-transform: translateX(-50%); + -moz-transform: translateX(-50%); + -ms-transform: translateX(-50%); + -o-transform: translateX(-50%); + transform: translateX(-50%); } + @media only screen and (max-width : 992px) { + nav .brand-logo { + left: 50%; + -webkit-transform: translateX(-50%); + -moz-transform: translateX(-50%); + -ms-transform: translateX(-50%); + -o-transform: translateX(-50%); + transform: translateX(-50%); } } + nav .brand-logo.right { + right: 0.5rem; + padding: 0; } + nav ul { + margin: 0; } + nav ul li { + -webkit-transition: background-color .3s; + -moz-transition: background-color .3s; + -o-transition: background-color .3s; + -ms-transition: background-color .3s; + transition: background-color .3s; + float: left; + padding: 0; } + nav ul li:hover, nav ul li.active { + background-color: rgba(0, 0, 0, 0.1); } + nav ul a { + font-size: 1rem; + color: #fff; + display: block; + padding: 0 15px; } + nav ul.left { + float: left; } + nav .input-field { + margin: 0; } + nav .input-field input { + height: 100%; + font-size: 1.2rem; + border: none; + padding-left: 2rem; } + nav .input-field input:focus, nav .input-field input[type=text]:valid, nav .input-field input[type=password]:valid, nav .input-field input[type=email]:valid, nav .input-field input[type=url]:valid, nav .input-field input[type=date]:valid { + border: none; + box-shadow: none; } + nav .input-field label { + top: 0; + left: 0; } + nav .input-field label i { + color: rgba(255, 255, 255, 0.7); + -webkit-transition: color .3s; + -moz-transition: color .3s; + -o-transition: color .3s; + -ms-transition: color .3s; + transition: color .3s; } + nav .input-field label.active i { + color: #fff; } + nav .input-field label.active { + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -ms-transform: translateY(0); + -o-transform: translateY(0); + transform: translateY(0); } + +.navbar-fixed { + position: relative; + height: 56px; + z-index: 998; } + .navbar-fixed nav { + position: fixed; } + +@media only screen and (min-width : 601px) { + nav, nav .nav-wrapper i, nav a.button-collapse, nav a.button-collapse i { + height: 64px; + line-height: 64px; } + .navbar-fixed { + height: 64px; } } + +@font-face { + font-family: "Roboto"; + src: url("../font/roboto/Roboto-Thin.woff2") format("woff2"), url("../font/roboto/Roboto-Thin.woff") format("woff"), url("../font/roboto/Roboto-Thin.ttf") format("truetype"); + font-weight: 200; } + +@font-face { + font-family: "Roboto"; + src: url("../font/roboto/Roboto-Light.woff2") format("woff2"), url("../font/roboto/Roboto-Light.woff") format("woff"), url("../font/roboto/Roboto-Light.ttf") format("truetype"); + font-weight: 300; } + +@font-face { + font-family: "Roboto"; + src: url("../font/roboto/Roboto-Regular.woff2") format("woff2"), url("../font/roboto/Roboto-Regular.woff") format("woff"), url("../font/roboto/Roboto-Regular.ttf") format("truetype"); + font-weight: 400; } + +@font-face { + font-family: "Roboto"; + src: url("../font/roboto/Roboto-Medium.woff2") format("woff2"), url("../font/roboto/Roboto-Medium.woff") format("woff"), url("../font/roboto/Roboto-Medium.ttf") format("truetype"); + font-weight: 500; } + +@font-face { + font-family: "Roboto"; + src: url("../font/roboto/Roboto-Bold.woff2") format("woff2"), url("../font/roboto/Roboto-Bold.woff") format("woff"), url("../font/roboto/Roboto-Bold.ttf") format("truetype"); + font-weight: 700; } + +a { + text-decoration: none; } + +html { + line-height: 1.5; + font-family: "Roboto", sans-serif; + font-weight: normal; + color: rgba(0, 0, 0, 0.87); } + @media only screen and (min-width: 0) { + html { + font-size: 14px; } } + @media only screen and (min-width: 992px) { + html { + font-size: 14.5px; } } + @media only screen and (min-width: 1200px) { + html { + font-size: 15px; } } + +h1, h2, h3, h4, h5, h6 { + font-weight: 400; } + +h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { + font-weight: inherit; } + +h1 { + font-size: 4.2rem; + line-height: 4.62rem; + margin: 2.1rem 0 1.68rem 0; } + +h2 { + font-size: 3.56rem; + line-height: 3.916rem; + margin: 1.78rem 0 1.424rem 0; } + +h3 { + font-size: 2.92rem; + line-height: 3.212rem; + margin: 1.46rem 0 1.168rem 0; } + +h4 { + font-size: 2.28rem; + line-height: 2.508rem; + margin: 1.14rem 0 0.912rem 0; } + +h5 { + font-size: 1.64rem; + line-height: 1.804rem; + margin: 0.82rem 0 0.656rem 0; } + +h6 { + font-size: 1rem; + line-height: 1.1rem; + margin: 0.5rem 0 0.4rem 0; } + +em { + font-style: italic; } + +strong { + font-weight: 500; } + +small { + font-size: 75%; } + +.light, footer.page-footer .footer-copyright { + font-weight: 300; } + +.thin { + font-weight: 200; } + +.flow-text { + font-weight: 300; } + @media only screen and (min-width: 360px) { + .flow-text { + font-size: 1.2rem; } } + @media only screen and (min-width: 0px) { + .flow-text { + line-height: .8rem; } } + @media only screen and (min-width: 390px) { + .flow-text { + font-size: 1.224rem; } } + @media only screen and (min-width: 30px) { + .flow-text { + line-height: .904rem; } } + @media only screen and (min-width: 420px) { + .flow-text { + font-size: 1.248rem; } } + @media only screen and (min-width: 60px) { + .flow-text { + line-height: 1.008rem; } } + @media only screen and (min-width: 450px) { + .flow-text { + font-size: 1.272rem; } } + @media only screen and (min-width: 90px) { + .flow-text { + line-height: 1.112rem; } } + @media only screen and (min-width: 480px) { + .flow-text { + font-size: 1.296rem; } } + @media only screen and (min-width: 120px) { + .flow-text { + line-height: 1.216rem; } } + @media only screen and (min-width: 510px) { + .flow-text { + font-size: 1.32rem; } } + @media only screen and (min-width: 150px) { + .flow-text { + line-height: 1.32rem; } } + @media only screen and (min-width: 540px) { + .flow-text { + font-size: 1.344rem; } } + @media only screen and (min-width: 180px) { + .flow-text { + line-height: 1.424rem; } } + @media only screen and (min-width: 570px) { + .flow-text { + font-size: 1.368rem; } } + @media only screen and (min-width: 210px) { + .flow-text { + line-height: 1.528rem; } } + @media only screen and (min-width: 600px) { + .flow-text { + font-size: 1.392rem; } } + @media only screen and (min-width: 240px) { + .flow-text { + line-height: 1.632rem; } } + @media only screen and (min-width: 630px) { + .flow-text { + font-size: 1.416rem; } } + @media only screen and (min-width: 270px) { + .flow-text { + line-height: 1.736rem; } } + @media only screen and (min-width: 660px) { + .flow-text { + font-size: 1.44rem; } } + @media only screen and (min-width: 300px) { + .flow-text { + line-height: 1.84rem; } } + @media only screen and (min-width: 690px) { + .flow-text { + font-size: 1.464rem; } } + @media only screen and (min-width: 330px) { + .flow-text { + line-height: 1.944rem; } } + @media only screen and (min-width: 720px) { + .flow-text { + font-size: 1.488rem; } } + @media only screen and (min-width: 360px) { + .flow-text { + line-height: 2.048rem; } } + @media only screen and (min-width: 750px) { + .flow-text { + font-size: 1.512rem; } } + @media only screen and (min-width: 390px) { + .flow-text { + line-height: 2.152rem; } } + @media only screen and (min-width: 780px) { + .flow-text { + font-size: 1.536rem; } } + @media only screen and (min-width: 420px) { + .flow-text { + line-height: 2.256rem; } } + @media only screen and (min-width: 810px) { + .flow-text { + font-size: 1.56rem; } } + @media only screen and (min-width: 450px) { + .flow-text { + line-height: 2.36rem; } } + @media only screen and (min-width: 840px) { + .flow-text { + font-size: 1.584rem; } } + @media only screen and (min-width: 480px) { + .flow-text { + line-height: 2.464rem; } } + @media only screen and (min-width: 870px) { + .flow-text { + font-size: 1.608rem; } } + @media only screen and (min-width: 510px) { + .flow-text { + line-height: 2.568rem; } } + @media only screen and (min-width: 900px) { + .flow-text { + font-size: 1.632rem; } } + @media only screen and (min-width: 540px) { + .flow-text { + line-height: 2.672rem; } } + @media only screen and (min-width: 930px) { + .flow-text { + font-size: 1.656rem; } } + @media only screen and (min-width: 570px) { + .flow-text { + line-height: 2.776rem; } } + @media only screen and (min-width: 960px) { + .flow-text { + font-size: 1.68rem; } } + @media only screen and (min-width: 600px) { + .flow-text { + line-height: 2.88rem; } } + +.card-panel { + padding: 20px; + margin: 0.5rem 0 1rem 0; + border-radius: 2px; + background-color: #fff; } + +.card { + position: relative; + overflow: hidden; + margin: 0.5rem 0 1rem 0; + background-color: #fff; + border-radius: 2px; } + .card .card-title { + color: #fff; + font-size: 24px; + font-weight: 300; } + .card .card-title.activator { + cursor: pointer; } + .card.small, .card.medium, .card.large { + position: relative; } + .card.small .card-image, .card.medium .card-image, .card.large .card-image { + overflow: hidden; } + .card.small .card-content, .card.medium .card-content, .card.large .card-content { + overflow: hidden; } + .card.small .card-action, .card.medium .card-action, .card.large .card-action { + position: absolute; + bottom: 0; + left: 0; + right: 0; } + .card.small { + height: 300px; } + .card.small .card-image { + height: 150px; } + .card.small .card-content { + height: 150px; } + .card.medium { + height: 400px; } + .card.medium .card-image { + height: 250px; } + .card.medium .card-content { + height: 150px; } + .card.large { + height: 500px; } + .card.large .card-image { + height: 330px; } + .card.large .card-content { + height: 170px; } + .card .card-image { + position: relative; } + .card .card-image img { + border-radius: 2px 2px 0 0; + position: relative; + left: 0; + right: 0; + top: 0; + bottom: 0; + width: 100%; } + .card .card-image .card-title { + position: absolute; + bottom: 0; + left: 0; + padding: 20px; } + .card .card-content { + padding: 20px; + border-radius: 0 0 2px 2px; } + .card .card-content p { + margin: 0; + color: inherit; } + .card .card-content .card-title { + line-height: 48px; } + .card .card-action { + border-top: 1px solid rgba(160, 160, 160, 0.2); + padding: 20px; } + .card .card-action a { + color: #ffab40; + margin-right: 20px; + -webkit-transition: color .3s ease; + -moz-transition: color .3s ease; + -o-transition: color .3s ease; + -ms-transition: color .3s ease; + transition: color .3s ease; + text-transform: uppercase; } + .card .card-action a:hover { + color: #ffd8a6; } + .card .card-reveal { + padding: 20px; + position: absolute; + background-color: #FFF; + width: 100%; + overflow-y: auto; + top: 100%; + height: 100%; + z-index: 1; + display: none; } + .card .card-reveal .card-title { + cursor: pointer; + display: block; } + +#toast-container { + display: block; + position: fixed; + z-index: 1001; } + @media only screen and (max-width : 600px) { + #toast-container { + min-width: 100%; + bottom: 0%; } } + @media only screen and (min-width : 601px) and (max-width : 992px) { + #toast-container { + min-width: 30%; + left: 5%; + bottom: 7%; } } + @media only screen and (min-width : 993px) { + #toast-container { + min-width: 8%; + top: 10%; + right: 7%; } } + +.toast { + border-radius: 2px; + top: 0; + width: auto; + clear: both; + margin-top: 10px; + position: relative; + max-width: 100%; + height: 48px; + line-height: 48px; + background-color: #323232; + padding: 0 25px; + font-size: 1.1rem; + font-weight: 300; + color: #fff; + display: -webkit-box; + display: -moz-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-flex-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-justify-content: space-between; + justify-content: space-between; } + .toast .btn, .toast .btn-large, .toast .btn-flat { + margin: 0; + margin-left: 3rem; } + .toast.rounded { + border-radius: 24px; } + @media only screen and (max-width : 600px) { + .toast { + width: 100%; + border-radius: 0; } } + @media only screen and (min-width : 601px) and (max-width : 992px) { + .toast { + float: left; } } + @media only screen and (min-width : 993px) { + .toast { + float: right; } } + +.tabs { + position: relative; + height: 48px; + background-color: #fff; + margin: 0 auto; + width: 100%; + white-space: nowrap; } + .tabs .tab { + display: block; + float: left; + text-align: center; + line-height: 48px; + height: 48px; + padding: 0 20px; + margin: 0; + text-transform: uppercase; + letter-spacing: .8px; + width: 15%; } + .tabs .tab a { + color: #ee6e73; + display: block; + width: 100%; + height: 100%; + -webkit-transition: color .28s ease; + -moz-transition: color .28s ease; + -o-transition: color .28s ease; + -ms-transition: color .28s ease; + transition: color .28s ease; } + .tabs .tab a:hover { + color: #f9c9cb; } + .tabs .indicator { + position: absolute; + bottom: 0; + height: 2px; + background-color: #f6b2b5; + will-change: left, right; } + +.tabs .tab { + padding: 0; } + +.material-tooltip { + padding: 10px 8px; + font-size: 1rem; + z-index: 1000; + background-color: transparent; + border-radius: 2px; + color: #fff; + min-height: 36px; + line-height: 1rem; + opacity: 0; + display: none; + position: absolute; + text-align: center; + overflow: hidden; + left: 0; + top: 0; + will-change: top, left; } + +.backdrop { + position: absolute; + opacity: 0; + display: none; + height: 7px; + width: 14px; + border-radius: 0 0 14px 14px; + background-color: #323232; + z-index: -1; + -webkit-transform-origin: 50% 10%; + -moz-transform-origin: 50% 10%; + -ms-transform-origin: 50% 10%; + -o-transform-origin: 50% 10%; + transform-origin: 50% 10%; + will-change: transform, opacity; } + +.btn, .btn-large, .btn-flat { + border: none; + border-radius: 2px; + display: inline-block; + height: 36px; + line-height: 36px; + outline: 0; + padding: 0 2rem; + text-transform: uppercase; + vertical-align: middle; + -webkit-tap-highlight-color: transparent; } + +.btn.disabled, .disabled.btn-large, .btn-floating.disabled, .btn-large.disabled, .btn:disabled, .btn-large:disabled, .btn-large:disabled, .btn-floating:disabled { + background-color: #DFDFDF; + box-shadow: none; + color: #9F9F9F; + cursor: default; } + .btn.disabled *, .disabled.btn-large *, .btn-floating.disabled *, .btn-large.disabled *, .btn:disabled *, .btn-large:disabled *, .btn-large:disabled *, .btn-floating:disabled * { + pointer-events: none; } + .btn.disabled:hover, .disabled.btn-large:hover, .btn-floating.disabled:hover, .btn-large.disabled:hover, .btn:disabled:hover, .btn-large:disabled:hover, .btn-large:disabled:hover, .btn-floating:disabled:hover { + background-color: #DFDFDF; + color: #9F9F9F; } + +.btn i, .btn-large i, .btn-floating i, .btn-large i, .btn-flat i { + font-size: 1.3rem; + line-height: inherit; } + +.btn, .btn-large { + text-decoration: none; + color: #FFF; + background-color: #26a69a; + text-align: center; + letter-spacing: .5px; + -webkit-transition: .2s ease-out; + -moz-transition: .2s ease-out; + -o-transition: .2s ease-out; + -ms-transition: .2s ease-out; + transition: .2s ease-out; + cursor: pointer; } + .btn:hover, .btn-large:hover { + background-color: #2bbbad; } + +.btn-floating { + display: inline-block; + color: #FFF; + position: relative; + overflow: hidden; + z-index: 1; + width: 37px; + height: 37px; + line-height: 37px; + padding: 0; + background-color: #26a69a; + border-radius: 50%; + transition: .3s; + cursor: pointer; + vertical-align: middle; } + .btn-floating i { + width: inherit; + display: inline-block; + text-align: center; + color: #FFF; + font-size: 1.6rem; + line-height: 37px; } + .btn-floating:before { + border-radius: 0; } + .btn-floating.btn-large { + width: 55.5px; + height: 55.5px; } + .btn-floating.btn-large i { + line-height: 55.5px; } + +button.btn-floating { + border: none; } + +.fixed-action-btn { + position: fixed; + right: 23px; + bottom: 23px; + padding-top: 15px; + margin-bottom: 0; + z-index: 998; } + .fixed-action-btn ul { + left: 0; + right: 0; + text-align: center; + position: absolute; + bottom: 64px; } + .fixed-action-btn ul li { + margin-bottom: 15px; } + .fixed-action-btn ul a.btn-floating { + opacity: 0; } + +.btn-flat { + box-shadow: none; + background-color: transparent; + color: #343434; + cursor: pointer; } + .btn-flat.disabled { + color: #b3b3b3; + cursor: default; } + +.btn-large { + height: 54px; + line-height: 56px; } + .btn-large i { + font-size: 1.6rem; } + +.dropdown-content { + background-color: #FFFFFF; + margin: 0; + display: none; + min-width: 100px; + max-height: 650px; + overflow-y: auto; + opacity: 0; + position: absolute; + white-space: nowrap; + z-index: 1; + will-change: width, height; } + .dropdown-content li { + clear: both; + color: rgba(0, 0, 0, 0.87); + cursor: pointer; + line-height: 1.5rem; + width: 100%; + text-align: left; + text-transform: none; } + .dropdown-content li:hover, .dropdown-content li.active { + background-color: #eee; } + .dropdown-content li > a, .dropdown-content li > span { + font-size: 1.2rem; + color: #26a69a; + display: block; + padding: 1rem 1rem; } + +/*! + * Waves v0.6.0 + * http://fian.my.id/Waves + * + * Copyright 2014 Alfiana E. Sibuea and other contributors + * Released under the MIT license + * https://github.com/fians/Waves/blob/master/LICENSE + */ +.waves-effect { + position: relative; + cursor: pointer; + display: inline-block; + overflow: hidden; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-tap-highlight-color: transparent; + vertical-align: middle; + z-index: 1; + will-change: opacity, transform; + -webkit-transition: all .3s ease-out; + -moz-transition: all .3s ease-out; + -o-transition: all .3s ease-out; + -ms-transition: all .3s ease-out; + transition: all .3s ease-out; } + .waves-effect .waves-ripple { + position: absolute; + border-radius: 50%; + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + opacity: 0; + background: rgba(0, 0, 0, 0.2); + -webkit-transition: all 0.7s ease-out; + -moz-transition: all 0.7s ease-out; + -o-transition: all 0.7s ease-out; + -ms-transition: all 0.7s ease-out; + transition: all 0.7s ease-out; + -webkit-transition-property: -webkit-transform, opacity; + -moz-transition-property: -moz-transform, opacity; + -o-transition-property: -o-transform, opacity; + transition-property: transform, opacity; + -webkit-transform: scale(0); + -moz-transform: scale(0); + -ms-transform: scale(0); + -o-transform: scale(0); + transform: scale(0); + pointer-events: none; } + .waves-effect.waves-light .waves-ripple { + background-color: rgba(255, 255, 255, 0.45); } + .waves-effect.waves-red .waves-ripple { + background-color: rgba(244, 67, 54, 0.7); } + .waves-effect.waves-yellow .waves-ripple { + background-color: rgba(255, 235, 59, 0.7); } + .waves-effect.waves-orange .waves-ripple { + background-color: rgba(255, 152, 0, 0.7); } + .waves-effect.waves-purple .waves-ripple { + background-color: rgba(156, 39, 176, 0.7); } + .waves-effect.waves-green .waves-ripple { + background-color: rgba(76, 175, 80, 0.7); } + .waves-effect.waves-teal .waves-ripple { + background-color: rgba(0, 150, 136, 0.7); } + +.waves-notransition { + -webkit-transition: none !important; + -moz-transition: none !important; + -o-transition: none !important; + -ms-transition: none !important; + transition: none !important; } + +.waves-circle { + -webkit-transform: translateZ(0); + -moz-transform: translateZ(0); + -ms-transform: translateZ(0); + -o-transform: translateZ(0); + transform: translateZ(0); + -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%); } + +.waves-input-wrapper { + border-radius: 0.2em; + vertical-align: bottom; } + .waves-input-wrapper .waves-button-input { + position: relative; + top: 0; + left: 0; + z-index: 1; } + +.waves-circle { + text-align: center; + width: 2.5em; + height: 2.5em; + line-height: 2.5em; + border-radius: 50%; + -webkit-mask-image: none; } + +.waves-block { + display: block; } + +/* Firefox Bug: link not triggered */ +a.waves-effect .waves-ripple { + z-index: -1; } + +.modal { + display: none; + position: fixed; + left: 0; + right: 0; + background-color: #fafafa; + padding: 0; + max-height: 70%; + width: 55%; + margin: auto; + overflow-y: auto; + z-index: 1000; + border-radius: 2px; + -webkit-transform: translate(0); + -moz-transform: translate(0); + -ms-transform: translate(0); + -o-transform: translate(0); + transform: translate(0); + will-change: top, opacity; } + @media only screen and (max-width : 992px) { + .modal { + width: 80%; } } + .modal h1, .modal h2, .modal h3, .modal h4 { + margin-top: 0; } + .modal .modal-content { + padding: 24px; } + .modal .modal-footer { + border-radius: 0 0 2px 2px; + background-color: #fafafa; + padding: 4px 6px; + height: 56px; + width: 100%; } + .modal .modal-footer .btn, .modal .modal-footer .btn-large, .modal .modal-footer .btn-flat { + float: right; + margin: 6px 0; } + +#lean-overlay { + position: fixed; + z-index: 999; + top: 0; + left: 0; + bottom: 0; + right: 0; + height: 115%; + width: 100%; + background: #000; + display: none; + will-change: opacity; } + +.modal.modal-fixed-footer { + padding: 0; + height: 70%; } + .modal.modal-fixed-footer .modal-content { + position: fixed; + max-height: 100%; + padding-bottom: 64px; + width: 100%; + overflow-y: auto; } + .modal.modal-fixed-footer .modal-footer { + border-top: 1px solid rgba(0, 0, 0, 0.1); + position: fixed; + bottom: 0; } + +.modal.bottom-sheet { + top: auto; + bottom: -100%; + margin: 0; + width: 100%; + max-height: 45%; + border-radius: 0; + will-change: bottom, opacity; } + +.collapsible { + border-top: 1px solid #ddd; + border-right: 1px solid #ddd; + border-left: 1px solid #ddd; + margin: 0.5rem 0 1rem 0; } + +.collapsible-header { + display: block; + cursor: pointer; + height: 3rem; + line-height: 3rem; + padding: 0 1rem; + background-color: #fff; + border-bottom: 1px solid #ddd; } + .collapsible-header i { + width: 2rem; + font-size: 1.6rem; + line-height: 3rem; + display: block; + float: left; + text-align: center; + margin-right: 1rem; } + +.collapsible-body { + overflow: hidden; + display: none; + border-bottom: 1px solid #ddd; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } + .collapsible-body p { + margin: 0; + padding: 2rem; } + +.side-nav .collapsible { + border: none; + box-shadow: none; } + .side-nav .collapsible li { + padding: 0; } +.side-nav .collapsible-header { + background-color: transparent; + border: none; + line-height: inherit; + height: inherit; + margin: 0 1rem; } + .side-nav .collapsible-header i { + line-height: inherit; } +.side-nav .collapsible-body { + border: 0; + background-color: #FFF; } + .side-nav .collapsible-body li a { + margin: 0 1rem 0 2rem; } + +.collapsible.popout { + border: none; + box-shadow: none; } + .collapsible.popout > li { + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); + transform: scaleX(.92) translate3d(0, 0, 0); + transition: margin .35s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform .35s cubic-bezier(0.25, 0.46, 0.45, 0.94); } + .collapsible.popout > li:hover { + will-change: margin, transform; } + .collapsible.popout > li.active { + box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); + margin: 16px 0; + transform: scaleX(1) translate3d(0, 0, 0); } + +.materialboxed { + cursor: zoom-in; + position: relative; + -webkit-transition: opacity .4s; + -moz-transition: opacity .4s; + -o-transition: opacity .4s; + -ms-transition: opacity .4s; + transition: opacity .4s; } + .materialboxed:hover { + will-change: left, top, width, height; } + .materialboxed:hover:not(.active) { + opacity: .8; } + +.materialboxed.active { + cursor: zoom-out; } + +#materialbox-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #292929; + z-index: 999; + will-change: opacity; } + +.materialbox-caption { + position: fixed; + display: none; + color: #fff; + line-height: 50px; + bottom: 0; + width: 100%; + text-align: center; + padding: 0% 15%; + height: 50px; + z-index: 1000; + -webkit-font-smoothing: antialiased; } + +/* Remove Focus Boxes */ +select:focus { + outline: 1px solid #c9f3ef; } + +button:focus { + outline: none; + background-color: #2ab7a9; } + +label { + font-size: 0.8rem; + color: #9e9e9e; } + +/*************************** + Text Inputs + Textarea +****************************/ +::-webkit-input-placeholder { + color: #d1d1d1; } + +:-moz-placeholder { + /* Firefox 18- */ + color: #d1d1d1; } + +::-moz-placeholder { + /* Firefox 19+ */ + color: #d1d1d1; } + +:-ms-input-placeholder { + color: #d1d1d1; } + +input[type=text], input[type=password], input[type=email], input[type=url], input[type=time], input[type=date], input[type=datetime-local], input[type=tel], input[type=number], input[type=search], textarea.materialize-textarea { + background-color: transparent; + border: none; + border-bottom: 1px solid #9e9e9e; + border-radius: 0; + outline: none; + height: 3rem; + width: 100%; + font-size: 1rem; + margin: 0 0 15px 0; + padding: 0; + box-shadow: none; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + transition: all .3s; } + input[type=text]:disabled, input[type=text][readonly="readonly"], input[type=password]:disabled, input[type=password][readonly="readonly"], input[type=email]:disabled, input[type=email][readonly="readonly"], input[type=url]:disabled, input[type=url][readonly="readonly"], input[type=time]:disabled, input[type=time][readonly="readonly"], input[type=date]:disabled, input[type=date][readonly="readonly"], input[type=datetime-local]:disabled, input[type=datetime-local][readonly="readonly"], input[type=tel]:disabled, input[type=tel][readonly="readonly"], input[type=number]:disabled, input[type=number][readonly="readonly"], input[type=search]:disabled, input[type=search][readonly="readonly"], textarea.materialize-textarea:disabled, textarea.materialize-textarea[readonly="readonly"] { + color: rgba(0, 0, 0, 0.26); + border-bottom: 1px dotted rgba(0, 0, 0, 0.26); } + input[type=text]:disabled + label, input[type=text][readonly="readonly"] + label, input[type=password]:disabled + label, input[type=password][readonly="readonly"] + label, input[type=email]:disabled + label, input[type=email][readonly="readonly"] + label, input[type=url]:disabled + label, input[type=url][readonly="readonly"] + label, input[type=time]:disabled + label, input[type=time][readonly="readonly"] + label, input[type=date]:disabled + label, input[type=date][readonly="readonly"] + label, input[type=datetime-local]:disabled + label, input[type=datetime-local][readonly="readonly"] + label, input[type=tel]:disabled + label, input[type=tel][readonly="readonly"] + label, input[type=number]:disabled + label, input[type=number][readonly="readonly"] + label, input[type=search]:disabled + label, input[type=search][readonly="readonly"] + label, textarea.materialize-textarea:disabled + label, textarea.materialize-textarea[readonly="readonly"] + label { + color: rgba(0, 0, 0, 0.26); } + input[type=text]:focus:not([readonly]), input[type=password]:focus:not([readonly]), input[type=email]:focus:not([readonly]), input[type=url]:focus:not([readonly]), input[type=time]:focus:not([readonly]), input[type=date]:focus:not([readonly]), input[type=datetime-local]:focus:not([readonly]), input[type=tel]:focus:not([readonly]), input[type=number]:focus:not([readonly]), input[type=search]:focus:not([readonly]), textarea.materialize-textarea:focus:not([readonly]) { + border-bottom: 1px solid #26a69a; + box-shadow: 0 1px 0 0 #26a69a; } + input[type=text]:focus:not([readonly]) + label, input[type=password]:focus:not([readonly]) + label, input[type=email]:focus:not([readonly]) + label, input[type=url]:focus:not([readonly]) + label, input[type=time]:focus:not([readonly]) + label, input[type=date]:focus:not([readonly]) + label, input[type=datetime-local]:focus:not([readonly]) + label, input[type=tel]:focus:not([readonly]) + label, input[type=number]:focus:not([readonly]) + label, input[type=search]:focus:not([readonly]) + label, textarea.materialize-textarea:focus:not([readonly]) + label { + color: #26a69a; } + input[type=text].valid, input[type=text]:focus.valid, input[type=password].valid, input[type=password]:focus.valid, input[type=email].valid, input[type=email]:focus.valid, input[type=url].valid, input[type=url]:focus.valid, input[type=time].valid, input[type=time]:focus.valid, input[type=date].valid, input[type=date]:focus.valid, input[type=datetime-local].valid, input[type=datetime-local]:focus.valid, input[type=tel].valid, input[type=tel]:focus.valid, input[type=number].valid, input[type=number]:focus.valid, input[type=search].valid, input[type=search]:focus.valid, textarea.materialize-textarea.valid, textarea.materialize-textarea:focus.valid { + border-bottom: 1px solid #4CAF50; + box-shadow: 0 1px 0 0 #4CAF50; } + input[type=text].invalid, input[type=text]:focus.invalid, input[type=password].invalid, input[type=password]:focus.invalid, input[type=email].invalid, input[type=email]:focus.invalid, input[type=url].invalid, input[type=url]:focus.invalid, input[type=time].invalid, input[type=time]:focus.invalid, input[type=date].invalid, input[type=date]:focus.invalid, input[type=datetime-local].invalid, input[type=datetime-local]:focus.invalid, input[type=tel].invalid, input[type=tel]:focus.invalid, input[type=number].invalid, input[type=number]:focus.invalid, input[type=search].invalid, input[type=search]:focus.invalid, textarea.materialize-textarea.invalid, textarea.materialize-textarea:focus.invalid { + border-bottom: 1px solid #F44336; + box-shadow: 0 1px 0 0 #F44336; } + +.input-field { + position: relative; + margin-top: 1rem; } + .input-field label { + color: #9e9e9e; + position: absolute; + top: 0.8rem; + left: 0.75rem; + font-size: 1rem; + cursor: text; + -webkit-transition: .2s ease-out; + -moz-transition: .2s ease-out; + -o-transition: .2s ease-out; + -ms-transition: .2s ease-out; + transition: .2s ease-out; } + .input-field label.active { + font-size: 0.8rem; + -webkit-transform: translateY(-140%); + -moz-transform: translateY(-140%); + -ms-transform: translateY(-140%); + -o-transform: translateY(-140%); + transform: translateY(-140%); } + .input-field .prefix { + position: absolute; + width: 3rem; + font-size: 2rem; + -webkit-transition: color .2s; + -moz-transition: color .2s; + -o-transition: color .2s; + -ms-transition: color .2s; + transition: color .2s; } + .input-field .prefix.active { + color: #26a69a; } + .input-field .prefix ~ input, .input-field .prefix ~ textarea { + margin-left: 3rem; + width: 92%; + width: calc(100% - 3rem); } + .input-field .prefix ~ textarea { + padding-top: .8rem; } + .input-field .prefix ~ label { + margin-left: 3rem; } + @media only screen and (max-width : 992px) { + .input-field .prefix ~ input { + width: 86%; + width: calc(100% - 3rem); } } + @media only screen and (max-width : 600px) { + .input-field .prefix ~ input { + width: 80%; + width: calc(100% - 3rem); } } + +.input-field input[type=search] { + display: block; + line-height: inherit; + padding-left: 4rem; + width: calc(100% - 4rem); } + .input-field input[type=search]:focus { + background-color: #FFF; + border: 0; + box-shadow: none; + color: #444; } + .input-field input[type=search]:focus + label i, .input-field input[type=search]:focus ~ .mdi-navigation-close { + color: #444; } + .input-field input[type=search] + label { + left: 1rem; } + .input-field input[type=search] ~ .mdi-navigation-close { + position: absolute; + top: 0; + right: 1rem; + color: transparent; + cursor: pointer; + font-size: 2rem; + transition: .3s color; } + +textarea { + width: 100%; + height: 3rem; + background-color: transparent; } + textarea.materialize-textarea { + overflow-y: hidden; + /* prevents scroll bar flash */ + padding: 1.6rem 0; + /* prevents text jump on Enter keypress */ + resize: none; + min-height: 3rem; } + +.hiddendiv { + display: none; + white-space: pre-wrap; + word-wrap: break-word; + overflow-wrap: break-word; + /* future version of deprecated 'word-wrap' */ + padding-top: 1.2rem; + /* prevents text jump on Enter keypress */ } + +/*************** + Radio Buttons +***************/ +/* Remove default Radio Buttons */ +[type="radio"]:not(:checked), [type="radio"]:checked { + position: absolute; + left: -9999px; + visibility: hidden; } + +[type="radio"]:not(:checked) + label, [type="radio"]:checked + label { + position: relative; + padding-left: 35px; + cursor: pointer; + display: inline-block; + height: 25px; + line-height: 25px; + font-size: 1rem; + -webkit-transition: .28s ease; + -moz-transition: .28s ease; + -o-transition: .28s ease; + -ms-transition: .28s ease; + transition: .28s ease; + -webkit-user-select: none; + /* webkit (safari, chrome) browsers */ + -moz-user-select: none; + /* mozilla browsers */ + -khtml-user-select: none; + /* webkit (konqueror) browsers */ + -ms-user-select: none; + /* IE10+ */ } + +[type="radio"] + label:before, [type="radio"] + label:after { + content: ''; + position: absolute; + left: 0; + top: 0; + margin: 4px; + width: 16px; + height: 16px; + z-index: 0; + -webkit-transition: .28s ease; + -moz-transition: .28s ease; + -o-transition: .28s ease; + -ms-transition: .28s ease; + transition: .28s ease; } + +/* Unchecked styles */ +[type="radio"]:not(:checked) + label:before { + border-radius: 50%; + border: 2px solid #5a5a5a; } + +[type="radio"]:not(:checked) + label:after { + border-radius: 50%; + border: 2px solid #5a5a5a; + z-index: -1; + -webkit-transform: scale(0); + -moz-transform: scale(0); + -ms-transform: scale(0); + -o-transform: scale(0); + transform: scale(0); } + +/* Checked styles */ +[type="radio"]:checked + label:before { + border-radius: 50%; + border: 2px solid transparent; } + +[type="radio"]:checked + label:after { + border-radius: 50%; + border: 2px solid #26a69a; + background-color: #26a69a; + z-index: 0; + -webkit-transform: scale(1.02); + -moz-transform: scale(1.02); + -ms-transform: scale(1.02); + -o-transform: scale(1.02); + transform: scale(1.02); } + +/* Radio With gap */ +[type="radio"].with-gap:checked + label:before { + border-radius: 50%; + border: 2px solid #26a69a; } + +[type="radio"].with-gap:checked + label:after { + border-radius: 50%; + border: 2px solid #26a69a; + background-color: #26a69a; + z-index: 0; + -webkit-transform: scale(.5); + -moz-transform: scale(.5); + -ms-transform: scale(.5); + -o-transform: scale(.5); + transform: scale(.5); } + +/* Disabled style */ +[type="radio"]:disabled:not(:checked) + label:before, [type="radio"]:disabled:checked + label:before { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.26); } + +[type="radio"]:disabled + label { + color: rgba(0, 0, 0, 0.26); } + +[type="radio"]:disabled:not(:checked) + label:hover:before { + border-color: rgba(0, 0, 0, 0.26); } + +/*************** + Checkboxes +***************/ +/* CUSTOM CSS CHECKBOXES */ +form p { + margin-bottom: 10px; + text-align: left; } + +form p:last-child { + margin-bottom: 0; } + +/* Remove default checkbox */ +[type="checkbox"]:not(:checked), [type="checkbox"]:checked { + position: absolute; + left: -9999px; } + +[type="checkbox"] { + /* checkbox aspect */ } + [type="checkbox"] + label { + position: relative; + padding-left: 35px; + cursor: pointer; + display: inline-block; + height: 25px; + line-height: 25px; + font-size: 1rem; + -webkit-user-select: none; + /* webkit (safari, chrome) browsers */ + -moz-user-select: none; + /* mozilla browsers */ + -khtml-user-select: none; + /* webkit (konqueror) browsers */ + -ms-user-select: none; + /* IE10+ */ } + [type="checkbox"] + label:before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 18px; + height: 18px; + z-index: 0; + border: 2px solid #5a5a5a; + border-radius: 1px; + margin-top: 2px; + -webkit-transition: 0.2s; + -moz-transition: 0.2s; + -o-transition: 0.2s; + -ms-transition: 0.2s; + transition: 0.2s; } + [type="checkbox"]:not(:checked):disabled + label:before { + border: none; + background-color: rgba(0, 0, 0, 0.26); } + +[type="checkbox"]:checked + label:before { + top: -4px; + left: -3px; + width: 12px; + height: 22px; + border-top: 2px solid transparent; + border-left: 2px solid transparent; + border-right: 2px solid #26a69a; + border-bottom: 2px solid #26a69a; + -webkit-transform: rotate(40deg); + -moz-transform: rotate(40deg); + -ms-transform: rotate(40deg); + -o-transform: rotate(40deg); + transform: rotate(40deg); + -webkit-backface-visibility: hidden; + -webkit-transform-origin: 100% 100%; + -moz-transform-origin: 100% 100%; + -ms-transform-origin: 100% 100%; + -o-transform-origin: 100% 100%; + transform-origin: 100% 100%; } +[type="checkbox"]:checked:disabled + label:before { + border-right: 2px solid rgba(0, 0, 0, 0.26); + border-bottom: 2px solid rgba(0, 0, 0, 0.26); } + +/* Indeterminate checkbox */ +[type="checkbox"]:indeterminate + label:before { + left: -10px; + top: -11px; + width: 10px; + height: 22px; + border-top: none; + border-left: none; + border-right: 2px solid #26a69a; + border-bottom: none; + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); + -webkit-backface-visibility: hidden; + -webkit-transform-origin: 100% 100%; + -moz-transform-origin: 100% 100%; + -ms-transform-origin: 100% 100%; + -o-transform-origin: 100% 100%; + transform-origin: 100% 100%; } +[type="checkbox"]:indeterminate:disabled + label:before { + border-right: 2px solid rgba(0, 0, 0, 0.26); + background-color: transparent; } + +[type="checkbox"].filled-in + label:after { + border-radius: 2px; } +[type="checkbox"].filled-in + label:before, [type="checkbox"].filled-in + label:after { + content: ''; + left: 0; + position: absolute; + /* .1s delay is for check animation */ + transition: border .25s, background-color .25s, width .2s .1s, height .2s .1s, top .2s .1s, left .2s .1s; + z-index: 1; } +[type="checkbox"].filled-in:not(:checked) + label:before { + width: 0; + height: 0; + border: 3px solid transparent; + left: 6px; + top: 10px; + -webkit-transform: rotateZ(37deg); + transform: rotateZ(37deg); + -webkit-transform-origin: 20% 40%; + transform-origin: 100% 100%; } +[type="checkbox"].filled-in:not(:checked) + label:after { + height: 20px; + width: 20px; + background-color: transparent; + border: 2px solid #5a5a5a; + top: 0px; + z-index: 0; } +[type="checkbox"].filled-in:checked + label:before { + top: 0; + left: 1px; + width: 8px; + height: 13px; + border-top: 2px solid transparent; + border-left: 2px solid transparent; + border-right: 2px solid #fff; + border-bottom: 2px solid #fff; + -webkit-transform: rotateZ(37deg); + transform: rotateZ(37deg); + -webkit-transform-origin: 100% 100%; + transform-origin: 100% 100%; } +[type="checkbox"].filled-in:checked + label:after { + top: 0px; + width: 20px; + height: 20px; + border: 2px solid #26a69a; + background-color: #26a69a; + z-index: 0; } +[type="checkbox"].filled-in:disabled:not(:checked) + label:before { + background-color: transparent; + border: 2px solid transparent; } +[type="checkbox"].filled-in:disabled:not(:checked) + label:after { + border-color: transparent; + background-color: #BDBDBD; } +[type="checkbox"].filled-in:disabled:checked + label:before { + background-color: transparent; } +[type="checkbox"].filled-in:disabled:checked + label:after { + background-color: #BDBDBD; + border-color: #BDBDBD; } + +/*************** + Switch +***************/ +.switch, .switch * { + -webkit-user-select: none; + -moz-user-select: none; + -khtml-user-select: none; + -ms-user-select: none; } + +.switch label { + cursor: pointer; } + +.switch label input[type=checkbox] { + opacity: 0; + width: 0; + height: 0; } + +.switch label input[type=checkbox]:checked + .lever { + background-color: #84c7c1; } + +.switch label input[type=checkbox]:checked + .lever:after { + background-color: #26a69a; } + +.switch label .lever { + content: ""; + display: inline-block; + position: relative; + width: 40px; + height: 15px; + background-color: #818181; + border-radius: 15px; + margin-right: 10px; + transition: background 0.3s ease; + vertical-align: middle; + margin: 0 16px; } + +.switch label .lever:after { + content: ""; + position: absolute; + display: inline-block; + width: 21px; + height: 21px; + background-color: #F1F1F1; + border-radius: 21px; + box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4); + left: -5px; + top: -3px; + transition: left 0.3s ease, background 0.3s ease, box-shadow 0.1s ease; } + +input[type=checkbox]:checked:not(:disabled) ~ .lever:active:after { + box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(38, 166, 154, 0.1); } + +input[type=checkbox]:not(:disabled) ~ .lever:active:after { + box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.08); } + +.switch label input[type=checkbox]:checked + .lever:after { + left: 24px; } + +.switch input[type=checkbox][disabled] + .lever { + cursor: default; } + +.switch label input[type=checkbox][disabled] + .lever:after, .switch label input[type=checkbox][disabled]:checked + .lever:after { + background-color: #BDBDBD; } + +/*************** + Select Field +***************/ +.select-label { + position: absolute; } + +.select-wrapper { + position: relative; } + .select-wrapper input.select-dropdown { + position: relative; + cursor: pointer; + background-color: transparent; + border: none; + border-bottom: 1px solid #9e9e9e; + outline: none; + height: 3rem; + line-height: 3rem; + width: 100%; + font-size: 1rem; + margin: 0 0 15px 0; + padding: 0; + display: block; } + .select-wrapper .mdi-navigation-arrow-drop-down { + color: initial; + position: absolute; + right: 0; + top: 0; + font-size: 23px; } + .select-wrapper .mdi-navigation-arrow-drop-down.disabled { + color: rgba(0, 0, 0, 0.26); } + .select-wrapper + label { + position: absolute; + top: -14px; + font-size: 0.8rem; } + +select { + display: none; } + +select.browser-default { + display: block; } + +select:disabled { + color: rgba(0, 0, 0, 0.3); } + +.select-wrapper input.select-dropdown:disabled { + color: rgba(0, 0, 0, 0.3); + cursor: default; + -webkit-user-select: none; + /* webkit (safari, chrome) browsers */ + -moz-user-select: none; + /* mozilla browsers */ + -ms-user-select: none; + /* IE10+ */ + border-bottom: 1px solid rgba(0, 0, 0, 0.3); } + +.select-wrapper i { + color: rgba(0, 0, 0, 0.3); } + +.select-dropdown li.disabled { + color: rgba(0, 0, 0, 0.3); + background-color: transparent; } + +/********************* + File Input +**********************/ +.file-field { + position: relative; } + .file-field input.file-path { + margin-left: 100px; + width: calc(100% - 100px); } + .file-field .btn, .file-field .btn-large { + position: absolute; + top: 0; + left: 0; + height: 3rem; + line-height: 3rem; } + .file-field span { + cursor: pointer; } + .file-field input[type=file] { + position: absolute; + top: 0; + right: 0; + left: 0; + bottom: 0; + width: 100%; + margin: 0; + padding: 0; + font-size: 20px; + cursor: pointer; + opacity: 0; + filter: alpha(opacity=0); } + +/*************** + Range +***************/ +.range-field { + position: relative; } + +input[type=range], input[type=range] + .thumb { + cursor: pointer; } + +input[type=range] { + position: relative; + background-color: transparent; + border: none; + outline: none; + width: 100%; + margin: 15px 0px; + padding: 0; } + +input[type=range] + .thumb { + position: absolute; + border: none; + height: 0; + width: 0; + border-radius: 50%; + background-color: #26a69a; + top: 10px; + margin-left: -6px; + -webkit-transform-origin: 50% 50%; + -moz-transform-origin: 50% 50%; + -ms-transform-origin: 50% 50%; + -o-transform-origin: 50% 50%; + transform-origin: 50% 50%; + -webkit-transform: rotate(-45deg); + -moz-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + -o-transform: rotate(-45deg); + transform: rotate(-45deg); } + input[type=range] + .thumb .value { + display: block; + width: 30px; + text-align: center; + color: #26a69a; + font-size: 0; + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); } + input[type=range] + .thumb.active { + border-radius: 50% 50% 50% 0; } + input[type=range] + .thumb.active .value { + color: #fff; + margin-left: -1px; + margin-top: 8px; + font-size: 10px; } + +input[type=range]:focus { + outline: none; } + +input[type=range] { + -webkit-appearance: none; } + +input[type=range]::-webkit-slider-runnable-track { + height: 3px; + background: #c2c0c2; + border: none; } + +input[type=range]::-webkit-slider-thumb { + -webkit-appearance: none; + border: none; + height: 14px; + width: 14px; + border-radius: 50%; + background-color: #26a69a; + transform-origin: 50% 50%; + margin: -5px 0 0 0; + -webkit-transition: 0.3s; + -moz-transition: 0.3s; + -o-transition: 0.3s; + -ms-transition: 0.3s; + transition: 0.3s; } + +input[type=range]:focus::-webkit-slider-runnable-track { + background: #ccc; } + +input[type=range] { + /* fix for FF unable to apply focus style bug */ + border: 1px solid white; + /*required for proper track sizing in FF*/ } + +input[type=range]::-moz-range-track { + height: 3px; + background: #ddd; + border: none; } + +input[type=range]::-moz-range-thumb { + border: none; + height: 14px; + width: 14px; + border-radius: 50%; + background: #26a69a; + margin-top: -5px; } + +/*hide the outline behind the border*/ +input[type=range]:-moz-focusring { + outline: 1px solid white; + outline-offset: -1px; } + +input[type=range]:focus::-moz-range-track { + background: #ccc; } + +input[type=range]::-ms-track { + height: 3px; + /*remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead */ + background: transparent; + /*leave room for the larger thumb to overflow with a transparent border */ + border-color: transparent; + border-width: 6px 0; + /*remove default tick marks*/ + color: transparent; } + +input[type=range]::-ms-fill-lower { + background: #777; } + +input[type=range]::-ms-fill-upper { + background: #ddd; } + +input[type=range]::-ms-thumb { + border: none; + height: 14px; + width: 14px; + border-radius: 50%; + background: #26a69a; } + +input[type=range]:focus::-ms-fill-lower { + background: #888; } + +input[type=range]:focus::-ms-fill-upper { + background: #ccc; } + +/*************************** + Text Inputs + Textarea +****************************/ +select { + background-color: rgba(255, 255, 255, 0.9); + width: 100%; + padding: 5px; + border: 1px solid #f2f2f2; + border-radius: 2px; + height: 3rem; } + +/*************** + Nav List +***************/ +.table-of-contents.fixed { + position: fixed; } +.table-of-contents li { + padding: 2px 0; } +.table-of-contents a { + display: inline-block; + font-weight: 300; + color: #757575; + padding-left: 20px; + height: 1.5rem; + line-height: 1.5rem; + letter-spacing: .4; + display: inline-block; } + .table-of-contents a:hover { + color: #a8a8a8; + padding-left: 19px; + border-left: 1px solid #ea4a4f; } + .table-of-contents a.active { + font-weight: 500; + padding-left: 18px; + border-left: 2px solid #ea4a4f; } + +.side-nav { + position: fixed; + width: 240px; + left: -105%; + top: 0; + margin: 0; + height: 100%; + height: calc(100% + 60px); + height: -moz-calc(100%); + padding-bottom: 60px; + background-color: #FFF; + z-index: 999; + overflow-y: auto; + will-change: left; } + .side-nav.right-aligned { + will-change: right; + right: -105%; + left: auto; } + .side-nav .collapsible { + margin: 0; } + .side-nav li { + float: none; + padding: 0 15px; } + .side-nav li:hover, .side-nav li.active { + background-color: #ddd; } + .side-nav a { + color: #444; + display: block; + font-size: 1rem; + height: 64px; + line-height: 64px; + padding: 0 15px; } + +.drag-target { + height: 100%; + width: 10px; + position: fixed; + top: 0; + z-index: 998; } + +.side-nav.fixed a { + display: block; + padding: 0 15px; + color: #444; } + +.side-nav.fixed { + left: 0; + position: fixed; } + .side-nav.fixed.right-aligned { + right: 0; + left: auto; } + +@media only screen and (max-width : 992px) { + .side-nav.fixed { + left: -105%; } + .side-nav.fixed.right-aligned { + right: -105%; + left: auto; } } + +.side-nav .collapsible-body li.active, .side-nav.fixed .collapsible-body li.active { + background-color: #ee6e73; } + .side-nav .collapsible-body li.active a, .side-nav.fixed .collapsible-body li.active a { + color: #fff; } + +#sidenav-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + height: 120vh; + background-color: rgba(0, 0, 0, 0.5); + z-index: 997; + will-change: opacity; } + +/* + @license + Copyright (c) 2014 The Polymer Project Authors. All rights reserved. + This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt + The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt + The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt + Code distributed by Google as part of the polymer project is also + subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt + */ +/**************************/ +/* STYLES FOR THE SPINNER */ +/**************************/ +/* + * Constants: + * STROKEWIDTH = 3px + * ARCSIZE = 270 degrees (amount of circle the arc takes up) + * ARCTIME = 1333ms (time it takes to expand and contract arc) + * ARCSTARTROT = 216 degrees (how much the start location of the arc + * should rotate each time, 216 gives us a + * 5 pointed star shape (it's 360/5 * 3). + * For a 7 pointed star, we might do + * 360/7 * 3 = 154.286) + * CONTAINERWIDTH = 28px + * SHRINK_TIME = 400ms + */ +.preloader-wrapper { + display: inline-block; + position: relative; + width: 48px; + height: 48px; } + .preloader-wrapper.small { + width: 36px; + height: 36px; } + .preloader-wrapper.big { + width: 64px; + height: 64px; } + .preloader-wrapper.active { + /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */ + -webkit-animation: container-rotate 1568ms linear infinite; + animation: container-rotate 1568ms linear infinite; } + +@-webkit-keyframes container-rotate { + to { + -webkit-transform: rotate(360deg); } } + +@keyframes container-rotate { + to { + transform: rotate(360deg); } } + +.spinner-layer { + position: absolute; + width: 100%; + height: 100%; + opacity: 0; } + +.spinner-blue, .spinner-blue-only { + border-color: #4285f4; } + +.spinner-red, .spinner-red-only { + border-color: #db4437; } + +.spinner-yellow, .spinner-yellow-only { + border-color: #f4b400; } + +.spinner-green, .spinner-green-only { + border-color: #0f9d58; } + +/** + * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee): + * + * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't + * guarantee that the animation will start _exactly_ after that value. So we avoid using + * animation-delay and instead set custom keyframes for each color (as redundant as it + * seems). + * + * We write out each animation in full (instead of separating animation-name, + * animation-duration, etc.) because under the polyfill, Safari does not recognize those + * specific properties properly, treats them as -webkit-animation, and overrides the + * other animation rules. See https://github.com/Polymer/platform/issues/53. + */ +.active .spinner-layer.spinner-blue { + /* durations: 4 * ARCTIME */ + -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } + +.active .spinner-layer.spinner-red { + /* durations: 4 * ARCTIME */ + -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } + +.active .spinner-layer.spinner-yellow { + /* durations: 4 * ARCTIME */ + -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } + +.active .spinner-layer.spinner-green { + /* durations: 4 * ARCTIME */ + -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } + +.active .spinner-layer.spinner-blue-only, .active .spinner-layer.spinner-red-only, .active .spinner-layer.spinner-yellow-only, .active .spinner-layer.spinner-green-only { + /* durations: 4 * ARCTIME */ + opacity: 1; + -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } + +@-webkit-keyframes fill-unfill-rotate { + /* 0.5 * ARCSIZE */ + /* 1 * ARCSIZE */ + /* 1.5 * ARCSIZE */ + /* 2 * ARCSIZE */ + /* 2.5 * ARCSIZE */ + /* 3 * ARCSIZE */ + /* 3.5 * ARCSIZE */ + /* 4 * ARCSIZE */ + 12.5% { + -webkit-transform: rotate(135deg); } + + 25% { + -webkit-transform: rotate(270deg); } + + 37.5% { + -webkit-transform: rotate(405deg); } + + 50% { + -webkit-transform: rotate(540deg); } + + 62.5% { + -webkit-transform: rotate(675deg); } + + 75% { + -webkit-transform: rotate(810deg); } + + 87.5% { + -webkit-transform: rotate(945deg); } + + to { + -webkit-transform: rotate(1080deg); } } + +@keyframes fill-unfill-rotate { + /* 0.5 * ARCSIZE */ + /* 1 * ARCSIZE */ + /* 1.5 * ARCSIZE */ + /* 2 * ARCSIZE */ + /* 2.5 * ARCSIZE */ + /* 3 * ARCSIZE */ + /* 3.5 * ARCSIZE */ + /* 4 * ARCSIZE */ + 12.5% { + transform: rotate(135deg); } + + 25% { + transform: rotate(270deg); } + + 37.5% { + transform: rotate(405deg); } + + 50% { + transform: rotate(540deg); } + + 62.5% { + transform: rotate(675deg); } + + 75% { + transform: rotate(810deg); } + + 87.5% { + transform: rotate(945deg); } + + to { + transform: rotate(1080deg); } } + +@-webkit-keyframes blue-fade-in-out { + from { + opacity: 1; } + + 25% { + opacity: 1; } + + 26% { + opacity: 0; } + + 89% { + opacity: 0; } + + 90% { + opacity: 1; } + + 100% { + opacity: 1; } } + +@keyframes blue-fade-in-out { + from { + opacity: 1; } + + 25% { + opacity: 1; } + + 26% { + opacity: 0; } + + 89% { + opacity: 0; } + + 90% { + opacity: 1; } + + 100% { + opacity: 1; } } + +@-webkit-keyframes red-fade-in-out { + from { + opacity: 0; } + + 15% { + opacity: 0; } + + 25% { + opacity: 1; } + + 50% { + opacity: 1; } + + 51% { + opacity: 0; } } + +@keyframes red-fade-in-out { + from { + opacity: 0; } + + 15% { + opacity: 0; } + + 25% { + opacity: 1; } + + 50% { + opacity: 1; } + + 51% { + opacity: 0; } } + +@-webkit-keyframes yellow-fade-in-out { + from { + opacity: 0; } + + 40% { + opacity: 0; } + + 50% { + opacity: 1; } + + 75% { + opacity: 1; } + + 76% { + opacity: 0; } } + +@keyframes yellow-fade-in-out { + from { + opacity: 0; } + + 40% { + opacity: 0; } + + 50% { + opacity: 1; } + + 75% { + opacity: 1; } + + 76% { + opacity: 0; } } + +@-webkit-keyframes green-fade-in-out { + from { + opacity: 0; } + + 65% { + opacity: 0; } + + 75% { + opacity: 1; } + + 90% { + opacity: 1; } + + 100% { + opacity: 0; } } + +@keyframes green-fade-in-out { + from { + opacity: 0; } + + 65% { + opacity: 0; } + + 75% { + opacity: 1; } + + 90% { + opacity: 1; } + + 100% { + opacity: 0; } } + +/** + * Patch the gap that appear between the two adjacent div.circle-clipper while the + * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11). + */ +.gap-patch { + position: absolute; + top: 0; + left: 45%; + width: 10%; + height: 100%; + overflow: hidden; + border-color: inherit; } + +.gap-patch .circle { + width: 1000%; + left: -450%; } + +.circle-clipper { + display: inline-block; + position: relative; + width: 50%; + height: 100%; + overflow: hidden; + border-color: inherit; } + .circle-clipper .circle { + width: 200%; + height: 100%; + border-width: 3px; + /* STROKEWIDTH */ + border-style: solid; + border-color: inherit; + border-bottom-color: transparent !important; + border-radius: 50%; + -webkit-animation: none; + animation: none; + position: absolute; + top: 0; + right: 0; + bottom: 0; } + .circle-clipper.left .circle { + left: 0; + border-right-color: transparent !important; + -webkit-transform: rotate(129deg); + transform: rotate(129deg); } + .circle-clipper.right .circle { + left: -100%; + border-left-color: transparent !important; + -webkit-transform: rotate(-129deg); + transform: rotate(-129deg); } + +.active .circle-clipper.left .circle { + /* duration: ARCTIME */ + -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } + +.active .circle-clipper.right .circle { + /* duration: ARCTIME */ + -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } + +@-webkit-keyframes left-spin { + from { + -webkit-transform: rotate(130deg); } + + 50% { + -webkit-transform: rotate(-5deg); } + + to { + -webkit-transform: rotate(130deg); } } + +@keyframes left-spin { + from { + transform: rotate(130deg); } + + 50% { + transform: rotate(-5deg); } + + to { + transform: rotate(130deg); } } + +@-webkit-keyframes right-spin { + from { + -webkit-transform: rotate(-130deg); } + + 50% { + -webkit-transform: rotate(5deg); } + + to { + -webkit-transform: rotate(-130deg); } } + +@keyframes right-spin { + from { + transform: rotate(-130deg); } + + 50% { + transform: rotate(5deg); } + + to { + transform: rotate(-130deg); } } + +#spinnerContainer.cooldown { + /* duration: SHRINK_TIME */ + -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1); + animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1); } + +@-webkit-keyframes fade-out { + from { + opacity: 1; } + + to { + opacity: 0; } } + +@keyframes fade-out { + from { + opacity: 1; } + + to { + opacity: 0; } } + +.slider { + position: relative; + height: 440px; + width: 100%; } + .slider.fullscreen { + height: 100%; + width: 100%; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; } + .slider.fullscreen ul.slides { + height: 100%; } + .slider.fullscreen ul.indicators { + z-index: 2; + bottom: 30px; } + .slider .slides { + background-color: #9e9e9e; + margin: 0; + height: 400px; } + .slider .slides li { + opacity: 0; + position: absolute; + top: 0; + left: 0; + z-index: 1; + width: 100%; + height: inherit; + overflow: hidden; } + .slider .slides li img { + height: 100%; + width: 100%; + background-size: cover; + background-position: center; } + .slider .slides li .caption { + color: #fff; + position: absolute; + top: 15%; + left: 15%; + width: 70%; + opacity: 0; } + .slider .slides li .caption p { + color: #e0e0e0; } + .slider .slides li.active { + z-index: 2; } + .slider .indicators { + position: absolute; + text-align: center; + left: 0; + right: 0; + bottom: 0; + margin: 0; } + .slider .indicators .indicator-item { + display: inline-block; + position: relative; + cursor: pointer; + height: 16px; + width: 16px; + margin: 0 12px; + background-color: #e0e0e0; + -webkit-transition: background-color .3s; + -moz-transition: background-color .3s; + -o-transition: background-color .3s; + -ms-transition: background-color .3s; + transition: background-color .3s; + border-radius: 50%; } + .slider .indicators .indicator-item.active { + background-color: #4CAF50; } + +/* ========================================================================== + $BASE-PICKER + ========================================================================== */ +/** + * Note: the root picker element should *NOT* be styled more than what's here. + */ +.picker { + font-size: 16px; + text-align: left; + line-height: 1.2; + color: #000000; + position: absolute; + z-index: 10000; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +/** + * The picker input element. + */ +.picker__input { + cursor: default; } + +/** + * When the picker is opened, the input element is "activated". + */ +.picker__input.picker__input--active { + border-color: #0089ec; } + +/** + * The holder is the only "scrollable" top-level container element. + */ +.picker__holder { + width: 100%; + overflow-y: auto; + -webkit-overflow-scrolling: touch; } + +/*! + * Default mobile-first, responsive styling for pickadate.js + * Demo: http://amsul.github.io/pickadate.js + */ +/** + * Note: the root picker element should *NOT* be styled more than what's here. + */ +/** + * Make the holder and frame fullscreen. + */ +.picker__holder, .picker__frame { + bottom: 0; + left: 0; + right: 0; + top: 100%; } + +/** + * The holder should overlay the entire screen. + */ +.picker__holder { + position: fixed; + -webkit-transition: background 0.15s ease-out, top 0s 0.15s; + -moz-transition: background 0.15s ease-out, top 0s 0.15s; + transition: background 0.15s ease-out, top 0s 0.15s; + -webkit-backface-visibility: hidden; } + +/** + * The frame that bounds the box contents of the picker. + */ +.picker__frame { + position: absolute; + margin: 0 auto; + min-width: 256px; + max-width: 300px; + max-height: 350px; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -moz-opacity: 0; + opacity: 0; + -webkit-transition: all 0.15s ease-out; + -moz-transition: all 0.15s ease-out; + transition: all 0.15s ease-out; } + +@media (min-height: 28.875em) { + .picker__frame { + overflow: visible; + top: auto; + bottom: -100%; + max-height: 80%; } } + +@media (min-height: 40.125em) { + .picker__frame { + margin-bottom: 7.5%; } } + +/** + * The wrapper sets the stage to vertically align the box contents. + */ +.picker__wrap { + display: table; + width: 100%; + height: 100%; } + +@media (min-height: 28.875em) { + .picker__wrap { + display: block; } } + +/** + * The box contains all the picker contents. + */ +.picker__box { + background: #ffffff; + display: table-cell; + vertical-align: middle; } + +@media (min-height: 28.875em) { + .picker__box { + display: block; + border: 1px solid #777777; + border-top-color: #898989; + border-bottom-width: 0; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; + -webkit-box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); + -moz-box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); + box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); } } + +/** + * When the picker opens... + */ +.picker--opened .picker__holder { + top: 0; + background: transparent; + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)"; + zoom: 1; + background: rgba(0, 0, 0, 0.32); + -webkit-transition: background 0.15s ease-out; + -moz-transition: background 0.15s ease-out; + transition: background 0.15s ease-out; } + +.picker--opened .picker__frame { + top: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; + filter: alpha(opacity=100); + -moz-opacity: 1; + opacity: 1; } + +@media (min-height: 35.875em) { + .picker--opened .picker__frame { + top: 10%; + bottom: 20% auto; } } + +/** + * For `large` screens, transform into an inline picker. + */ +/* ========================================================================== + CUSTOM MATERIALIZE STYLES + ========================================================================== */ +.picker__input.picker__input--active { + border-color: #E3F2FD; } + +.picker__frame { + margin: 0 auto; + max-width: 325px; } + +@media (min-height: 38.875em) { + .picker--opened .picker__frame { + top: 10%; + bottom: auto; } } + +/* ========================================================================== + $BASE-DATE-PICKER + ========================================================================== */ +/** + * The picker box. + */ +.picker__box { + padding: 0 1em; } + +/** + * The header containing the month and year stuff. + */ +.picker__header { + text-align: center; + position: relative; + margin-top: .75em; } + +/** + * The month and year labels. + */ +.picker__month, .picker__year { + display: inline-block; + margin-left: .25em; + margin-right: .25em; } + +/** + * The month and year selectors. + */ +.picker__select--month, .picker__select--year { + height: 2em; + padding: 0; + margin-left: .25em; + margin-right: .25em; } + +.picker__select--month.browser-default { + display: inline; + background-color: #FFFFFF; + width: 40%; } + +.picker__select--year.browser-default { + display: inline; + background-color: #FFFFFF; + width: 25%; } + +.picker__select--month:focus, .picker__select--year:focus { + border-color: rgba(0, 0, 0, 0.05); } + +/** + * The month navigation buttons. + */ +.picker__nav--prev, .picker__nav--next { + position: absolute; + padding: .5em 1.25em; + width: 1em; + height: 1em; + box-sizing: content-box; + top: -0.25em; } + +.picker__nav--prev { + left: -1em; + padding-right: 1.25em; } + +.picker__nav--next { + right: -1em; + padding-left: 1.25em; } + +.picker__nav--disabled, .picker__nav--disabled:hover, .picker__nav--disabled:before, .picker__nav--disabled:before:hover { + cursor: default; + background: none; + border-right-color: #f5f5f5; + border-left-color: #f5f5f5; } + +/** + * The calendar table of dates + */ +.picker__table { + text-align: center; + border-collapse: collapse; + border-spacing: 0; + table-layout: fixed; + font-size: 1rem; + width: 100%; + margin-top: .75em; + margin-bottom: .5em; } + +.picker__table th, .picker__table td { + text-align: center; } + +.picker__table td { + margin: 0; + padding: 0; } + +/** + * The weekday labels + */ +.picker__weekday { + width: 14.285714286%; + font-size: .75em; + padding-bottom: .25em; + color: #999999; + font-weight: 500; + /* Increase the spacing a tad */ } + +@media (min-height: 33.875em) { + .picker__weekday { + padding-bottom: .5em; } } + +/** + * The days on the calendar + */ +.picker__day--today { + position: relative; + color: #595959; + letter-spacing: -.3; + padding: .75rem 0; + font-weight: 400; + border: 1px solid transparent; } + +.picker__day--disabled:before { + border-top-color: #aaaaaa; } + +.picker__day--infocus:hover { + cursor: pointer; + color: #000; + font-weight: 500; } + +.picker__day--outfocus { + display: none; + padding: .75rem 0; + color: #fff; } + +.picker__day--outfocus:hover { + cursor: pointer; + color: #dddddd; + font-weight: 500; } + +.picker__day--highlighted:hover, .picker--focused .picker__day--highlighted { + cursor: pointer; } + +.picker__day--selected, .picker__day--selected:hover, .picker--focused .picker__day--selected { + border-radius: 50%; + -webkit-transform: scale(.75); + -moz-transform: scale(.75); + -ms-transform: scale(.75); + -o-transform: scale(.75); + transform: scale(.75); + background: #0089ec; + color: #ffffff; } + +.picker__day--disabled, .picker__day--disabled:hover, .picker--focused .picker__day--disabled { + background: #f5f5f5; + border-color: #f5f5f5; + color: #dddddd; + cursor: default; } + +.picker__day--highlighted.picker__day--disabled, .picker__day--highlighted.picker__day--disabled:hover { + background: #bbbbbb; } + +/** + * The footer containing the "today", "clear", and "close" buttons. + */ +.picker__footer { + text-align: center; + display: flex; + align-items: center; + justify-content: space-between; } + +.picker__button--today, .picker__button--clear, .picker__button--close { + border: 1px solid #ffffff; + background: #ffffff; + font-size: .8em; + padding: .66em 0; + font-weight: bold; + width: 33%; + display: inline-block; + vertical-align: bottom; } + +.picker__button--today:hover, .picker__button--clear:hover, .picker__button--close:hover { + cursor: pointer; + color: #000000; + background: #b1dcfb; + border-bottom-color: #b1dcfb; } + +.picker__button--today:focus, .picker__button--clear:focus, .picker__button--close:focus { + background: #b1dcfb; + border-color: rgba(0, 0, 0, 0.05); + outline: none; } + +.picker__button--today:before, .picker__button--clear:before, .picker__button--close:before { + position: relative; + display: inline-block; + height: 0; } + +.picker__button--today:before, .picker__button--clear:before { + content: " "; + margin-right: .45em; } + +.picker__button--today:before { + top: -0.05em; + width: 0; + border-top: 0.66em solid #0059bc; + border-left: .66em solid transparent; } + +.picker__button--clear:before { + top: -0.25em; + width: .66em; + border-top: 3px solid #ee2200; } + +.picker__button--close:before { + content: "\D7"; + top: -0.1em; + vertical-align: top; + font-size: 1.1em; + margin-right: .35em; + color: #777777; } + +.picker__button--today[disabled], .picker__button--today[disabled]:hover { + background: #f5f5f5; + border-color: #f5f5f5; + color: #dddddd; + cursor: default; } + +.picker__button--today[disabled]:before { + border-top-color: #aaaaaa; } + +/* ========================================================================== + CUSTOM MATERIALIZE STYLES + ========================================================================== */ +.picker__box { + border-radius: 2px; + overflow: hidden; } + +.picker__date-display { + text-align: center; + background-color: #26a69a; + color: #fff; + padding-bottom: 15px; + font-weight: 300; } + +.picker__nav--prev:hover, .picker__nav--next:hover { + cursor: pointer; + color: #000000; + background: #a1ded8; } + +.picker__weekday-display { + background-color: #1f897f; + padding: 10px; + font-weight: 200; + letter-spacing: .5; + font-size: 1rem; + margin-bottom: 15px; } + +.picker__month-display { + text-transform: uppercase; + font-size: 2rem; } + +.picker__day-display { + font-size: 4.5rem; + font-weight: 400; } + +.picker__year-display { + font-size: 1.8rem; + color: rgba(255, 255, 255, 0.4); } + +.picker__box { + padding: 0; } + +.picker__calendar-container { + padding: 0 1rem; } + .picker__calendar-container thead { + border: none; } + +.picker__table { + margin-top: 0; + margin-bottom: .5em; } + +.picker__day--infocus { + color: #595959; + letter-spacing: -.3; + padding: .75rem 0; + font-weight: 400; + border: 1px solid transparent; } + +.picker__day.picker__day--today { + color: #26a69a; } + +.picker__day.picker__day--today.picker__day--selected { + color: #fff; } + +.picker__weekday { + font-size: .9rem; } + +.picker__day--selected, .picker__day--selected:hover, .picker--focused .picker__day--selected { + border-radius: 50%; + -webkit-transform: scale(.9); + -moz-transform: scale(.9); + -ms-transform: scale(.9); + -o-transform: scale(.9); + transform: scale(.9); + background-color: #26a69a; + color: #ffffff; } + .picker__day--selected.picker__day--outfocus, .picker__day--selected:hover.picker__day--outfocus, .picker--focused .picker__day--selected.picker__day--outfocus { + background-color: #a1ded8; } + +.picker__footer { + text-align: right; + padding: 5px 10px; } + +.picker__close, .picker__today { + font-size: 1.1rem; + padding: 0 1rem; + color: #26a69a; } + +.picker__nav--prev:before, .picker__nav--next:before { + content: " "; + border-top: .5em solid transparent; + border-bottom: .5em solid transparent; + border-right: 0.75em solid #676767; + width: 0; + height: 0; + display: block; + margin: 0 auto; } + +.picker__nav--next:before { + border-right: 0; + border-left: 0.75em solid #676767; } + +button.picker__today:focus, button.picker__clear:focus, button.picker__close:focus { + background-color: #a1ded8; } + +/* ========================================================================== + $BASE-TIME-PICKER + ========================================================================== */ +/** + * The list of times. + */ +.picker__list { + list-style: none; + padding: 0.75em 0 4.2em; + margin: 0; } + +/** + * The times on the clock. + */ +.picker__list-item { + border-bottom: 1px solid #dddddd; + border-top: 1px solid #dddddd; + margin-bottom: -1px; + position: relative; + background: #ffffff; + padding: .75em 1.25em; } + +@media (min-height: 46.75em) { + .picker__list-item { + padding: .5em 1em; } } + +/* Hovered time */ +.picker__list-item:hover { + cursor: pointer; + color: #000000; + background: #b1dcfb; + border-color: #0089ec; + z-index: 10; } + +/* Highlighted and hovered/focused time */ +.picker__list-item--highlighted { + border-color: #0089ec; + z-index: 10; } + +.picker__list-item--highlighted:hover, .picker--focused .picker__list-item--highlighted { + cursor: pointer; + color: #000000; + background: #b1dcfb; } + +/* Selected and hovered/focused time */ +.picker__list-item--selected, .picker__list-item--selected:hover, .picker--focused .picker__list-item--selected { + background: #0089ec; + color: #ffffff; + z-index: 10; } + +/* Disabled time */ +.picker__list-item--disabled, .picker__list-item--disabled:hover, .picker--focused .picker__list-item--disabled { + background: #f5f5f5; + border-color: #f5f5f5; + color: #dddddd; + cursor: default; + border-color: #dddddd; + z-index: auto; } + +/** + * The clear button + */ +.picker--time .picker__button--clear { + display: block; + width: 80%; + margin: 1em auto 0; + padding: 1em 1.25em; + background: none; + border: 0; + font-weight: 500; + font-size: .67em; + text-align: center; + text-transform: uppercase; + color: #666; } + +.picker--time .picker__button--clear:hover, .picker--time .picker__button--clear:focus { + color: #000000; + background: #b1dcfb; + background: #ee2200; + border-color: #ee2200; + cursor: pointer; + color: #ffffff; + outline: none; } + +.picker--time .picker__button--clear:before { + top: -0.25em; + color: #666; + font-size: 1.25em; + font-weight: bold; } + +.picker--time .picker__button--clear:hover:before, .picker--time .picker__button--clear:focus:before { + color: #ffffff; } + +/* ========================================================================== + $DEFAULT-TIME-PICKER + ========================================================================== */ +/** + * The frame the bounds the time picker. + */ +.picker--time .picker__frame { + min-width: 256px; + max-width: 320px; } + +/** + * The picker box. + */ +.picker--time .picker__box { + font-size: 1em; + background: #f2f2f2; + padding: 0; } + +@media (min-height: 40.125em) { + .picker--time .picker__box { + margin-bottom: 5em; } } diff --git a/public/stylesheets/style-fonts.css b/public/stylesheets/style-fonts.css index a831c6b..ad3ac99 100644 --- a/public/stylesheets/style-fonts.css +++ b/public/stylesheets/style-fonts.css @@ -1,325 +1,325 @@ -@font-face { - font-family: 'icomoon'; - src:url('../fonts/icomoon.eot?-x9pdqo'); - src:url('../fonts/icomoon.eot?#iefix-x9pdqo') format('embedded-opentype'), - url('../fonts/icomoon.ttf?-x9pdqo') format('truetype'), - url('../fonts/icomoon.woff?-x9pdqo') format('woff'), - url('../fonts/icomoon.svg?-x9pdqo#icomoon') format('svg'); - font-weight: normal; - font-style: normal; -} - -[class^="icon-"], [class*=" icon-"] { - font-family: 'icomoon'; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - - /* Enable Ligatures ================ */ - letter-spacing: 0; - -webkit-font-feature-settings: "liga"; - -moz-font-feature-settings: "liga=1"; - -moz-font-feature-settings: "liga"; - -ms-font-feature-settings: "liga" 1; - -o-font-feature-settings: "liga"; - font-feature-settings: "liga"; - - /* Better Font Rendering =========== */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.icon-logos_Logoytexto:before { - content: "\e657"; -} -.icon-logo_archivo:before { - content: "\e658"; -} -.icon-logo_Basededatos:before { - content: "\e659"; -} -.icon-logo_Carrito:before { - content: "\e65a"; -} -.icon-logo_Estadisticas:before { - content: "\e65b"; -} -.icon-logo_Logo1:before { - content: "\e65c"; -} -.icon-logo_Logo2:before { - content: "\e65d"; -} -.icon-logo_nave:before { - content: "\e65e"; -} -.icon-logo_nerd:before { - content: "\e65f"; -} -.icon-logo_Usuario:before { - content: "\e660"; -} -.icon-school:before { - content: "\e600"; -} -.icon-tie:before { - content: "\e601"; -} -.icon-home:before { - content: "\e602"; -} -.icon-home3:before { - content: "\e60d"; -} -.icon-pencil:before { - content: "\e60e"; -} -.icon-play:before { - content: "\e60f"; -} -.icon-book:before { - content: "\e610"; -} -.icon-library:before { - content: "\e603"; -} -.icon-file-text2:before { - content: "\e611"; -} -.icon-stack:before { - content: "\e612"; -} -.icon-folder:before { - content: "\e613"; -} -.icon-ticket:before { - content: "\e614"; -} -.icon-cart:before { - content: "\e615"; -} -.icon-credit-card:before { - content: "\e616"; -} -.icon-phone:before { - content: "\e604"; -} -.icon-address-book:before { - content: "\e617"; -} -.icon-envelop:before { - content: "\e618"; -} -.icon-location2:before { - content: "\e619"; -} -.icon-calendario:before { - content: "\e605"; -} -.icon-display:before { - content: "\e61a"; -} -.icon-laptop:before { - content: "\e61b"; -} -.icon-mobile:before { - content: "\e606"; -} -.icon-tablet:before { - content: "\e61c"; -} -.icon-drawer:before { - content: "\e61d"; -} -.icon-drawer2:before { - content: "\e61e"; -} -.icon-download:before { - content: "\e61f"; -} -.icon-upload:before { - content: "\e620"; -} -.icon-database:before { - content: "\e621"; -} -.icon-undo2:before { - content: "\e622"; -} -.icon-redo2:before { - content: "\e623"; -} -.icon-forward:before { - content: "\e624"; -} -.icon-reply:before { - content: "\e625"; -} -.icon-bubbles:before { - content: "\e626"; -} -.icon-user:before { - content: "\e627"; -} -.icon-users:before { - content: "\e628"; -} -.icon-user-plus:before { - content: "\e629"; -} -.icon-user-minus:before { - content: "\e62a"; -} -.icon-user-tie:before { - content: "\e607"; -} -.icon-quotes-left:before { - content: "\e62b"; -} -.icon-quotes-right:before { - content: "\e62c"; -} -.icon-spinner6:before { - content: "\e62d"; -} -.icon-search:before { - content: "\e62e"; -} -.icon-key:before { - content: "\e62f"; -} -.icon-cog:before { - content: "\e630"; -} -.icon-grafica:before { - content: "\e608"; -} -.icon-rocket:before { - content: "\e631"; -} -.icon-bin:before { - content: "\e632"; -} -.icon-portafolio:before { - content: "\e609"; -} -.icon-power:before { - content: "\e633"; -} -.icon-menu:before { - content: "\e634"; -} -.icon-menu2:before { - content: "\e635"; -} -.icon-menu3:before { - content: "\e636"; -} -.icon-menu4:before { - content: "\e637"; -} -.icon-cloud:before { - content: "\e638"; -} -.icon-sphere:before { - content: "\e639"; -} -.icon-eye:before { - content: "\e63a"; -} -.icon-star:before { - content: "\e60a"; -} -.icon-happy:before { - content: "\e63b"; -} -.icon-angry:before { - content: "\e63c"; -} -.icon-plus:before { - content: "\e63d"; -} -.icon-minus:before { - content: "\e63e"; -} -.icon-cross:before { - content: "\e63f"; -} -.icon-checkmark:before { - content: "\e640"; -} -.icon-share2:before { - content: "\e641"; -} -.icon-mail:before { - content: "\e60b"; -} -.icon-facebook:before { - content: "\e642"; -} -.icon-facebook2:before { - content: "\e643"; -} -.icon-instagram:before { - content: "\e644"; -} -.icon-twitter:before { - content: "\e645"; -} -.icon-twitter2:before { - content: "\e646"; -} -.icon-youtube:before { - content: "\e647"; -} -.icon-youtube3:before { - content: "\e648"; -} -.icon-youtube4:before { - content: "\e649"; -} -.icon-github:before { - content: "\e64a"; -} -.icon-github2:before { - content: "\e64b"; -} -.icon-github4:before { - content: "\e64c"; -} -.icon-wordpress2:before { - content: "\e64d"; -} -.icon-tumblr2:before { - content: "\e64e"; -} -.icon-skype:before { - content: "\e64f"; -} -.icon-linkedin:before { - content: "\e60c"; -} -.icon-linkedin2:before { - content: "\e650"; -} -.icon-paypal:before { - content: "\e651"; -} -.icon-file-word:before { - content: "\e652"; -} -.icon-file-excel:before { - content: "\e653"; -} -.icon-html5:before { - content: "\e654"; -} -.icon-html52:before { - content: "\e655"; -} -.icon-git:before { - content: "\e656"; -} +@font-face { + font-family: 'icomoon'; + src:url('../fonts/icomoon.eot?-x9pdqo'); + src:url('../fonts/icomoon.eot?#iefix-x9pdqo') format('embedded-opentype'), + url('../fonts/icomoon.ttf?-x9pdqo') format('truetype'), + url('../fonts/icomoon.woff?-x9pdqo') format('woff'), + url('../fonts/icomoon.svg?-x9pdqo#icomoon') format('svg'); + font-weight: normal; + font-style: normal; +} + +[class^="icon-"], [class*=" icon-"] { + font-family: 'icomoon'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + /* Enable Ligatures ================ */ + letter-spacing: 0; + -webkit-font-feature-settings: "liga"; + -moz-font-feature-settings: "liga=1"; + -moz-font-feature-settings: "liga"; + -ms-font-feature-settings: "liga" 1; + -o-font-feature-settings: "liga"; + font-feature-settings: "liga"; + + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-logos_Logoytexto:before { + content: "\e657"; +} +.icon-logo_archivo:before { + content: "\e658"; +} +.icon-logo_Basededatos:before { + content: "\e659"; +} +.icon-logo_Carrito:before { + content: "\e65a"; +} +.icon-logo_Estadisticas:before { + content: "\e65b"; +} +.icon-logo_Logo1:before { + content: "\e65c"; +} +.icon-logo_Logo2:before { + content: "\e65d"; +} +.icon-logo_nave:before { + content: "\e65e"; +} +.icon-logo_nerd:before { + content: "\e65f"; +} +.icon-logo_Usuario:before { + content: "\e660"; +} +.icon-school:before { + content: "\e600"; +} +.icon-tie:before { + content: "\e601"; +} +.icon-home:before { + content: "\e602"; +} +.icon-home3:before { + content: "\e60d"; +} +.icon-pencil:before { + content: "\e60e"; +} +.icon-play:before { + content: "\e60f"; +} +.icon-book:before { + content: "\e610"; +} +.icon-library:before { + content: "\e603"; +} +.icon-file-text2:before { + content: "\e611"; +} +.icon-stack:before { + content: "\e612"; +} +.icon-folder:before { + content: "\e613"; +} +.icon-ticket:before { + content: "\e614"; +} +.icon-cart:before { + content: "\e615"; +} +.icon-credit-card:before { + content: "\e616"; +} +.icon-phone:before { + content: "\e604"; +} +.icon-address-book:before { + content: "\e617"; +} +.icon-envelop:before { + content: "\e618"; +} +.icon-location2:before { + content: "\e619"; +} +.icon-calendario:before { + content: "\e605"; +} +.icon-display:before { + content: "\e61a"; +} +.icon-laptop:before { + content: "\e61b"; +} +.icon-mobile:before { + content: "\e606"; +} +.icon-tablet:before { + content: "\e61c"; +} +.icon-drawer:before { + content: "\e61d"; +} +.icon-drawer2:before { + content: "\e61e"; +} +.icon-download:before { + content: "\e61f"; +} +.icon-upload:before { + content: "\e620"; +} +.icon-database:before { + content: "\e621"; +} +.icon-undo2:before { + content: "\e622"; +} +.icon-redo2:before { + content: "\e623"; +} +.icon-forward:before { + content: "\e624"; +} +.icon-reply:before { + content: "\e625"; +} +.icon-bubbles:before { + content: "\e626"; +} +.icon-user:before { + content: "\e627"; +} +.icon-users:before { + content: "\e628"; +} +.icon-user-plus:before { + content: "\e629"; +} +.icon-user-minus:before { + content: "\e62a"; +} +.icon-user-tie:before { + content: "\e607"; +} +.icon-quotes-left:before { + content: "\e62b"; +} +.icon-quotes-right:before { + content: "\e62c"; +} +.icon-spinner6:before { + content: "\e62d"; +} +.icon-search:before { + content: "\e62e"; +} +.icon-key:before { + content: "\e62f"; +} +.icon-cog:before { + content: "\e630"; +} +.icon-grafica:before { + content: "\e608"; +} +.icon-rocket:before { + content: "\e631"; +} +.icon-bin:before { + content: "\e632"; +} +.icon-portafolio:before { + content: "\e609"; +} +.icon-power:before { + content: "\e633"; +} +.icon-menu:before { + content: "\e634"; +} +.icon-menu2:before { + content: "\e635"; +} +.icon-menu3:before { + content: "\e636"; +} +.icon-menu4:before { + content: "\e637"; +} +.icon-cloud:before { + content: "\e638"; +} +.icon-sphere:before { + content: "\e639"; +} +.icon-eye:before { + content: "\e63a"; +} +.icon-star:before { + content: "\e60a"; +} +.icon-happy:before { + content: "\e63b"; +} +.icon-angry:before { + content: "\e63c"; +} +.icon-plus:before { + content: "\e63d"; +} +.icon-minus:before { + content: "\e63e"; +} +.icon-cross:before { + content: "\e63f"; +} +.icon-checkmark:before { + content: "\e640"; +} +.icon-share2:before { + content: "\e641"; +} +.icon-mail:before { + content: "\e60b"; +} +.icon-facebook:before { + content: "\e642"; +} +.icon-facebook2:before { + content: "\e643"; +} +.icon-instagram:before { + content: "\e644"; +} +.icon-twitter:before { + content: "\e645"; +} +.icon-twitter2:before { + content: "\e646"; +} +.icon-youtube:before { + content: "\e647"; +} +.icon-youtube3:before { + content: "\e648"; +} +.icon-youtube4:before { + content: "\e649"; +} +.icon-github:before { + content: "\e64a"; +} +.icon-github2:before { + content: "\e64b"; +} +.icon-github4:before { + content: "\e64c"; +} +.icon-wordpress2:before { + content: "\e64d"; +} +.icon-tumblr2:before { + content: "\e64e"; +} +.icon-skype:before { + content: "\e64f"; +} +.icon-linkedin:before { + content: "\e60c"; +} +.icon-linkedin2:before { + content: "\e650"; +} +.icon-paypal:before { + content: "\e651"; +} +.icon-file-word:before { + content: "\e652"; +} +.icon-file-excel:before { + content: "\e653"; +} +.icon-html5:before { + content: "\e654"; +} +.icon-html52:before { + content: "\e655"; +} +.icon-git:before { + content: "\e656"; +} diff --git a/public/stylesheets/style-fuentes.css b/public/stylesheets/style-fuentes.css index cdcd329..f257b9c 100644 --- a/public/stylesheets/style-fuentes.css +++ b/public/stylesheets/style-fuentes.css @@ -1,40 +1,40 @@ -.Font-playfair { - font-family: 'Playfair Display' serif; -} -.Font-abril { - font-family: 'Abril Fatface' cursive; -} -.Font-bevan { - font-family: 'Bevan' cursive; -} -.Font-alegreya { - font-family: 'Alegreya Sans' sans-serif; -} -.Font-francois { - font-family: 'Francois One' sans-serif; -} -.Font-librebasker { - font-family: 'Libre Baskerville' serif; -} -.Font-lato { - font-family: 'Lato' sans-serif; -} -.Font-merriw { - font-family: 'Merriweather' serif; -} -.Font-merriws { - font-family: 'Merriweather Sans' sans-serif; -} -.Font-openssans { - font-family: 'Open Sans' sans-serif; -} -.Font-roboto { - font-family: 'Roboto Condensed' sans-serif; -} -.FontStylebold { - font-style: bold; - font-weight: 700; -} -.Fontcolor1 { - color: rgba(39,62,72,0.86); -} +.Font-playfair { + font-family: 'Playfair Display' serif; +} +.Font-abril { + font-family: 'Abril Fatface' cursive; +} +.Font-bevan { + font-family: 'Bevan' cursive; +} +.Font-alegreya { + font-family: 'Alegreya Sans' sans-serif; +} +.Font-francois { + font-family: 'Francois One' sans-serif; +} +.Font-librebasker { + font-family: 'Libre Baskerville' serif; +} +.Font-lato { + font-family: 'Lato' sans-serif; +} +.Font-merriw { + font-family: 'Merriweather' serif; +} +.Font-merriws { + font-family: 'Merriweather Sans' sans-serif; +} +.Font-openssans { + font-family: 'Open Sans' sans-serif; +} +.Font-roboto { + font-family: 'Roboto Condensed' sans-serif; +} +.FontStylebold { + font-style: bold; + font-weight: 700; +} +.Fontcolor1 { + color: rgba(39,62,72,0.86); +} diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css index 0df8354..369db11 100644 --- a/public/stylesheets/style.css +++ b/public/stylesheets/style.css @@ -1,570 +1,583 @@ -/* normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ -html { - font-family: sans-serif; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; -} -body { - margin: 0; -} -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} -audio:not([controls]) { - display: none; - height: 0; -} -[hidden], -template { - display: none; -} -a { - background-color: transparent; -} -a:active, -a:hover { - outline: 0; -} -abbr[title] { - border-bottom: 1px dotted; -} -b, -strong { - font-weight: bold; -} -dfn { - font-style: italic; -} -h1 { - font-size: 2em; - margin: 0.67em 0; -} -mark { - background: #ff0; - color: #000; -} -small { - font-size: 80%; -} -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} -sup { - top: -0.5em; -} -sub { - bottom: -0.25em; -} -img { - border: 0; -} -svg:not(:root) { - overflow: hidden; -} -figure { - margin: 1em 40px; -} -hr { - box-sizing: content-box; - height: 0; -} -pre { - overflow: auto; -} -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -button, -input, -optgroup, -select, -textarea { - color: inherit; - font: inherit; - margin: 0; -} -button { - overflow: visible; -} -button, -select { - text-transform: none; -} -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} -button[disabled], -html input[disabled] { - cursor: default; -} -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} -input { - line-height: normal; -} -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - padding: 0; -} -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} -input[type="search"] { - -webkit-appearance: textfield; - box-sizing: content-box; -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} -legend { - border: 0; - padding: 0; -} -textarea { - overflow: auto; -} -optgroup { - font-weight: bold; -} -table { - border-collapse: collapse; - border-spacing: 0; -} -td, -th { - padding: 0; -} -.bg-primary { - background-color: rgba(26,35,126,0.7); -} -.bg-secundary { - background-color: rgba(227,242,253,0.4); -} -.box { - background-color: #fff; - padding: 5px 10px; - border-radius: 2px; - box-shadow: 0px 2px 1px rgba(0,0,0,0.1); -} -.minwidth1 { - min-width: 300px; -} -.margin10 { - margin: 10px auto 10px 2px; -} -.margin20 { - margin: 10px auto 10px 20px; -} -.marginbtm { - margin-bottom: 10px; -} -.titulo1 { - font-size: 1.6rem; - padding: 5px; - color: rgba(33,33,33,0.95); -} -.titulo2 { - font-size: 1.1rem; - color: rgba(33,33,33,0.7); -} -.titulo3 { - font-size: 1.4rem; - color: rgba(33,33,33,0.9); - font-weight: 600; -} -.titulo4 { - font-size: 0.9rem; - font-weight: 500; - color: rgba(33,33,33,0.9); -} -.divider { - height: 1px; - overflow: hidden; - background-color: #e0e0e0; -} -.linknone { - text-decoration: none; - color: rgba(229,229,229,0.9); -} -.linksocial { - color: #273e48; -} -.loginsocial { - text-align: center; -} -.styleicon { - font-size: 4rem; - text-align: center; - margin: 10px auto; - color: #273e48; -} -.styleicon:hover { - color: rgba(39,62,72,0.7); -} -.justifytext { - text-align: justify; -} -body { - font-size: 18px; -} -.Main { - display: flex; - align-items: stretch; -} -.Formpanel { - items-align: center; - margin-top: 2rem; - width: 50vw; -} -input { - background-color: transparent; - border-width: 0px; - border-bottom: 1px solid rgba(39,62,72,0.6); - border-radius: 0; - outline: none; - width: 100%; - font-size: 1rem; - margin: 0 0 15px 0; - padding: 0; - box-shadow: none; - height: 1.3rem; - font-family: 'Merriweather' serif; -} -input:focus { - outline: none; - border-width: 0px; - border-bottom: 2px solid rgba(38,166,152,0.9); -} -.btn { - text-decoration: none; - color: #fff; - background-color: #26a69a; - box-shadow: 0px 2px 1px rgba(0,0,0,0.18); - text-align: center; - letter-spacing: 0.5px; - border: none; - border-radius: 2px; - display: inline-block; - height: 36px; - line-height: 36px; - outline: 0; - padding: 0 2rem; - text-transform: capitalize; - width: 200px; -} -.btn:hover { - background-color: #2bbbad; - box-shadow: 0 5px 11px 0 rgba(0,0,0,0.18), 0 4px 15px 0 rgba(0,0,0,0.15); -} -.Form-add { - display: flex; - flex-direction: column; - justify-content: space-around; -} -.inputstyle { - display: flex; - flex-direction: column; - margin: 10px 0px 20px 0px; -} -.btnstyle { - display: flex; - justify-content: flex-end; - items-align: center; - margin: 10px 0px 0px 0px; -} -.btnstyle1 { - display: flex; - justify-content: center; - items-align: center; - margin: 10px 0px 10px 0px; -} -.selectbox { - font-size: 1em; - font-family: 'Merriweather' serif; -} -select option { - font-family: 'Merriweather' serif; -} -select option["selected"] { - font-family: 'Merriweather' serif; -} -.lbl { - font-family: 'Noto Serif'; - margin-bottom: 5px; - font-weight: 600; -} -.Header { - background-color: #273e48; - box-shadow: 0px -5px 7px 5px #777; -} -.Header-sidenav { - padding: 5px 20px; - min-height: 100vh; - width: 15vw; -} -.Header-logo { - color: #fff; - font-size: 6rem; - text-align: center; -} -.Nav { - color: #fff; - margin: 30px auto; - color: rgba(229,229,229,0.7); -} -.Nav-item { - display: flex; - align-items: center; - margin: 10px auto; - color: rgba(229,229,229,0.7); - cursor: pointer; -} -.Nav-item:hover { - color: #f0f0f0; -} -.Nav-item-text { - font-size: 0.8rem; - margin-left: 15px; -} -.Nav-item[data-lastitem] { - margin-top: 15px; -} -.iconstyle { - font-size: 1.4rem; - display: flex; - align-items: center; -} -.iconstyle[data-cross] { - font-size: 1.4rem; -} -.notifi { - background-color: rgba(88,114,125,0.9); - margin-left: 30px; - font-size: 0.8rem; - width: 16px; - text-align: center; - padding: 2px; - border-radius: 2px; -} -.MyCard { - margin-top: 10px; - margin-bottom: 30px; - display: flex; - flex-direction: column; - align-items: center; - text-align: center; -} -.MyCard-photo { - width: 100px; - border-radius: 50%; - padding: 2px; -} -.MyCard-photo-img { - background-color: #e0e0e0; - width: 80px; - border-radius: 50%; -} -.MyCard-name { - display: flex; - flex-direction: column; - text-align: center; - justify-content: center; -} -.MyCard--textStyle { - font-family: 'Roboto Condensed', sans-serif; - color: rgba(229,229,229,0.7); -} -.MyCard-title { - color: #fafafa; - font-family: 'Noto Serif'; - font-style: italic; - margin-top: -7px; - display: flex; - align-items: center; - justify-content: center; -} -.Section { - width: 85vw; - background-color: rgba(229,229,229,0.7); -} -.Section-secciones { - display: flex; - flex-wrap: wrap; - margin: 30px auto; - flex-direction: row; - justify-content: space-around; - align-items: flex-stretch; - align-content: space-around; -} -.Section-item { - width: 250px; - margin: 10px; -} -.Font-playfair { - font-family: 'Playfair Display' serif; -} -.Font-abril { - font-family: 'Abril Fatface' cursive; -} -.Font-bevan { - font-family: 'Bevan' cursive; -} -.Font-alegreya { - font-family: 'Alegreya Sans' sans-serif; -} -.Font-francois { - font-family: 'Francois One' sans-serif; -} -.Font-librebasker { - font-family: 'Libre Baskerville' serif; -} -.Font-lato { - font-family: 'Lato' sans-serif; -} -.Font-merriw { - font-family: 'Merriweather' serif; -} -.Font-merriws { - font-family: 'Merriweather Sans' sans-serif; -} -.Font-openssans { - font-family: 'Open Sans' sans-serif; -} -.Font-roboto { - font-family: 'Roboto Condensed' sans-serif; -} -.FontStylebold { - font-style: bold; - font-weight: 700; -} -.Fontcolor1 { - color: rgba(39,62,72,0.86); -} -@media screen and (max-width: 320px) { - .titulo1 { - font-size: 1.3rem; - } - .titulo2 { - font-size: 0.9rem; - } - .titulo3 { - font-size: 1.1rem; - } - .titulo4 { - font-size: 0.8rem; - } - main { - display: flex; - flex-direction: row; - } - .Section { - width: 100vw; - } - .Section-secciones { - flex-direction: column; - } - .Header { - box-shadow: -1px 4px 2px 0px #777; - max-height: 100%; - } - .Header-sidenav { - width: 100%; - padding: 0px; - } - .MyCard { - margin-top: 0px; - } - .MyCard-photo { - text-align: center; - } - .MyCard-photo-img { - text-align: center; - width: 70px; - } - .Formpanel { - items-align: center; - margin-top: 2rem; - width: 90vw; - } -} -@media screen and (max-width: 720px) { - main { - display: flex; - flex-direction: column; - } - .Section { - width: 100vw; - } - .Section-secciones { - flex-direction: row; - flex-wrap: wrap; - } - .Header { - box-shadow: -1px 4px 2px 0px #777; - max-height: 100%; - } - .Header-sidenav { - padding: 0px; - width: 100%; - } - .Header-logo { - font-size: 4.5rem; - } - .MyCard { - margin-top: 0px; - } - .MyCard-photo { - text-align: center; - } - .MyCard-photo-img { - text-align: center; - width: 70px; - } - .Formpanel { - items-align: center; - margin-top: 2rem; - width: 90vw; - } -} +/* normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} +body { + margin: 0; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} +audio:not([controls]) { + display: none; + height: 0; +} +[hidden], +template { + display: none; +} +a { + background-color: transparent; +} +a:active, +a:hover { + outline: 0; +} +abbr[title] { + border-bottom: 1px dotted; +} +b, +strong { + font-weight: bold; +} +dfn { + font-style: italic; +} +h1 { + font-size: 2em; + margin: 0.67em 0; +} +mark { + background: #ff0; + color: #000; +} +small { + font-size: 80%; +} +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + border: 0; +} +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 1em 40px; +} +hr { + box-sizing: content-box; + height: 0; +} +pre { + overflow: auto; +} +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + margin: 0; +} +button { + overflow: visible; +} +button, +select { + text-transform: none; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +button[disabled], +html input[disabled] { + cursor: default; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} +input { + line-height: normal; +} +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + padding: 0; +} +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +input[type="search"] { + -webkit-appearance: textfield; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +legend { + border: 0; + padding: 0; +} +textarea { + overflow: auto; +} +optgroup { + font-weight: bold; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +td, +th { + padding: 0; +} +.bg-primary { + background-color: rgba(26,35,126,0.7); +} +.bg-secundary { + background-color: rgba(227,242,253,0.4); +} +.box { + background-color: #fff; + padding: 5px 10px; + border-radius: 2px; + box-shadow: 0px 2px 1px rgba(0,0,0,0.1); +} +.minwidth1 { + min-width: 300px; +} +.margin10 { + margin: 10px auto 10px 2px; +} +.margin20 { + margin: 10px auto 10px 20px; +} +.marginbtm { + margin-bottom: 10px; +} +.titulo1 { + font-size: 1.6rem; + padding: 5px; + color: rgba(33,33,33,0.95); +} +.titulo2 { + font-size: 1.1rem; + color: rgba(33,33,33,0.7); +} +.titulo3 { + font-size: 1.4rem; + color: rgba(33,33,33,0.9); + font-weight: 600; +} +.titulo4 { + font-size: 0.9rem; + font-weight: 500; + color: rgba(33,33,33,0.9); +} +.divider { + height: 1px; + overflow: hidden; + background-color: #e0e0e0; +} +.linknone { + text-decoration: none; + color: rgba(229,229,229,0.9); +} +.linksocial { + color: #273e48; +} +.loginsocial { + text-align: center; +} +.styleicon { + font-size: 4rem; + text-align: center; + margin: 10px auto; + color: #273e48; +} +.styleicon:hover { + color: rgba(39,62,72,0.7); +} +.justifytext { + text-align: justify; +} +body { + font-size: 18px; +} +.Main { + display: flex; + align-items: stretch; +} +.Formpanel { + items-align: center; + margin-top: 2rem; + width: 50vw; +} +input { + background-color: transparent; + border-width: 0px; + border-bottom: 1px solid rgba(39,62,72,0.6); + border-radius: 0; + outline: none; + width: 100%; + font-size: 1rem; + margin: 0 0 15px 0; + padding: 0; + box-shadow: none; + height: 1.3rem; + font-family: 'Merriweather' serif; +} +input:focus { + outline: none; + border-width: 0px; + border-bottom: 2px solid rgba(38,166,152,0.9); +} +.btn { + text-decoration: none; + color: #fff; + background-color: #26a69a; + box-shadow: 0px 2px 1px rgba(0,0,0,0.18); + text-align: center; + letter-spacing: 0.5px; + border: none; + border-radius: 2px; + display: inline-block; + height: 36px; + line-height: 36px; + outline: 0; + padding: 0 2rem; + text-transform: capitalize; + width: 200px; +} +.btn:hover { + background-color: #2bbbad; + box-shadow: 0 5px 11px 0 rgba(0,0,0,0.18), 0 4px 15px 0 rgba(0,0,0,0.15); +} +.Form-add { + display: flex; + flex-direction: column; + justify-content: space-around; +} +.inputstyle { + display: flex; + flex-direction: column; + margin: 10px 0px 20px 0px; +} +.btnstyle { + display: flex; + justify-content: flex-end; + items-align: center; + margin: 10px 0px 0px 0px; +} +.btnstyle1 { + display: flex; + justify-content: center; + items-align: center; + margin: 10px 0px 10px 0px; +} +.selectbox { + font-size: 1em; + font-family: 'Merriweather' serif; +} +select option { + font-family: 'Merriweather' serif; +} +select option["selected"] { + font-family: 'Merriweather' serif; +} +.lbl { + font-family: 'Noto Serif'; + margin-bottom: 5px; + font-weight: 600; +} +.Header { + background-color: #273e48; + box-shadow: 0px -5px 7px 5px #777; +} +.Header-sidenav { + padding: 5px 20px; + min-height: 100vh; + width: 15vw; +} +.Header-logo { + color: #fff; + font-size: 6rem; + text-align: center; +} +.Nav { + color: #fff; + margin: 30px auto; + color: rgba(229,229,229,0.7); +} +.Nav-item { + display: flex; + align-items: center; + margin: 10px auto; + color: rgba(229,229,229,0.7); + cursor: pointer; +} +.Nav-item:hover { + color: #f0f0f0; +} +.Nav-item-text { + font-size: 0.8rem; + margin-left: 15px; +} +.Nav-item[data-lastitem] { + margin-top: 15px; +} +.iconstyle { + font-size: 1.4rem; + display: flex; + align-items: center; +} +.iconstyle[data-cross] { + font-size: 1.4rem; +} +.notifi { + background-color: rgba(88,114,125,0.9); + margin-left: 30px; + font-size: 0.8rem; + width: 16px; + text-align: center; + padding: 2px; + border-radius: 2px; +} +.MyCard { + margin-top: 10px; + margin-bottom: 30px; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; +} +.MyCard-photo { + width: 100px; + border-radius: 50%; + padding: 2px; +} +.MyCard-photo-img { + background-color: #e0e0e0; + width: 80px; + border-radius: 50%; +} +.MyCard-name { + display: flex; + flex-direction: column; + text-align: center; + justify-content: center; +} +.MyCard--textStyle { + font-family: 'Roboto Condensed', sans-serif; + color: rgba(229,229,229,0.7); +} +.MyCard-title { + color: #fafafa; + font-family: 'Noto Serif'; + font-style: italic; + margin-top: -7px; + display: flex; + align-items: center; + justify-content: center; +} +.Section { + width: 85vw; + background-color: rgba(229,229,229,0.7); +} +.Section-secciones { + display: flex; + flex-wrap: wrap; + margin: 30px auto; + flex-direction: row; + justify-content: space-around; + align-items: flex-stretch; + align-content: space-around; +} +.Section-item { + width: 250px; + margin: 10px; +} +.Table { + width: 800px; +} +.Table-user-photo { + width: 40px; + border-radius: 50%; +} +.th { + text-align: justify; +} +.td { + margin-top: 10px; +} +.Font-playfair { + font-family: 'Playfair Display' serif; +} +.Font-abril { + font-family: 'Abril Fatface' cursive; +} +.Font-bevan { + font-family: 'Bevan' cursive; +} +.Font-alegreya { + font-family: 'Alegreya Sans' sans-serif; +} +.Font-francois { + font-family: 'Francois One' sans-serif; +} +.Font-librebasker { + font-family: 'Libre Baskerville' serif; +} +.Font-lato { + font-family: 'Lato' sans-serif; +} +.Font-merriw { + font-family: 'Merriweather' serif; +} +.Font-merriws { + font-family: 'Merriweather Sans' sans-serif; +} +.Font-openssans { + font-family: 'Open Sans' sans-serif; +} +.Font-roboto { + font-family: 'Roboto Condensed' sans-serif; +} +.FontStylebold { + font-style: bold; + font-weight: 700; +} +.Fontcolor1 { + color: rgba(39,62,72,0.86); +} +@media screen and (max-width: 320px) { + .titulo1 { + font-size: 1.3rem; + } + .titulo2 { + font-size: 0.9rem; + } + .titulo3 { + font-size: 1.1rem; + } + .titulo4 { + font-size: 0.8rem; + } + main { + display: flex; + flex-direction: row; + } + .Section { + width: 100vw; + } + .Section-secciones { + flex-direction: column; + } + .Header { + box-shadow: -1px 4px 2px 0px #777; + max-height: 100%; + } + .Header-sidenav { + width: 100%; + padding: 0px; + } + .MyCard { + margin-top: 0px; + } + .MyCard-photo { + text-align: center; + } + .MyCard-photo-img { + text-align: center; + width: 70px; + } + .Formpanel { + items-align: center; + margin-top: 2rem; + width: 90vw; + } +} +@media screen and (max-width: 720px) { + main { + display: flex; + flex-direction: column; + } + .Section { + width: 100vw; + } + .Section-secciones { + flex-direction: row; + flex-wrap: wrap; + } + .Header { + box-shadow: -1px 4px 2px 0px #777; + max-height: 100%; + } + .Header-sidenav { + padding: 0px; + width: 100%; + } + .Header-logo { + font-size: 4.5rem; + } + .MyCard { + margin-top: 0px; + } + .MyCard-photo { + text-align: center; + } + .MyCard-photo-img { + text-align: center; + width: 70px; + } + .Formpanel { + items-align: center; + margin-top: 2rem; + width: 90vw; + } +} diff --git a/routes/admin-users.js b/routes/admin-users.js new file mode 100644 index 0000000..5e0d207 --- /dev/null +++ b/routes/admin-users.js @@ -0,0 +1,26 @@ +var express = require('express'); +var router = express.Router(); + +var db = require('../config/mongodb-config'), + User = require('../models/user'); + +router.get('/', function(req, res, next) { + //db.conectar(); + console.log(req.user); + + User.find({}, function(err, docs){ + if(err) throw(err) + else{ + res.render('admin-users', { + title: 'Stored', + user: req.user, + users: docs + }); + } + + }); + + +}); + +module.exports = router; \ No newline at end of file diff --git a/routes/form.js b/routes/form.js index 303efa0..bb64371 100644 --- a/routes/form.js +++ b/routes/form.js @@ -1,20 +1,52 @@ var express = require('express'); var router = express.Router(); + +var dbconfig = require('../config/mongodb-config'); +var web = require('../models/web'); +//var mongoose = require('mongoose'); + + router.get('/', function(req, res, next) { res.render('form', { title: 'Form get', - //user: req.user + user: req.user }); }); router.post('/', function(req, res) { - // var webname = req.body.webname; + var webname = req.body.namepage; + console.log(webname); // var propietario = req.body.propietario; // User.addUser(username, propietario, function(err, user){ // console.log(username + " " + password); - res.render('form', { title: 'Form post' }); - // }); + +// -- abrir conexion a la db +// guardar informacion +// -- cerrar conexion + //dbconfig.conectar; + dbconfig.conectar(); + + var nweb = new web({ + name: webname + /* type: 'type', + category: 'category', + urloffline: 'urloff', + owner: 'owner', + urlonline: 'urlon', + price: 'price' +*/ + }); + console.log(nweb); + nweb.save(function (err) { + if (err) { + console.log('error: '+err) + } + console.log('insercion exitosa'); + res.redirect('/form'); + }); + dbconfig.desconectar(); + }); module.exports = router; diff --git a/routes/index.js b/routes/index.js index ecca96a..ae08a2a 100644 --- a/routes/index.js +++ b/routes/index.js @@ -1,9 +1,37 @@ var express = require('express'); var router = express.Router(); +var passport = require('passport'); + /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); + +// Ruta para autenticarse con Twitter (enlace de login) +router.get('/auth/twitter', passport.authenticate('twitter')); +// Ruta para autenticarse con Facebook (enlace de login) +router.get('/auth/facebook', passport.authenticate('facebook')); +// Ruta de callback, a la que redirigirá tras autenticarse con Twitter. +router.get('/auth/github', passport.authenticate('github', { scope: [ 'user:email' ] })); + +// En caso de fallo redirige a otra vista '/login' +router.get('/auth/twitter/callback', passport.authenticate('twitter', + { successRedirect: '/session', failureRedirect: '/webadmin' } +)); +// Ruta de callback, a la que redirigirá tras autenticarse con Facebook. +// En caso de fallo redirige a otra vista '/login' +router.get('/auth/facebook/callback', passport.authenticate('facebook', + { successRedirect: '/session', failureRedirect: '/webadmin' } +)); +router.get('/auth/github/callback', passport.authenticate('github', + { successRedirect: '/session', failureRedirect: '/webadmin' } +));/*, + function(req, res) { + // Successful authentication, redirect home. + res.redirect('/index'); + } +); +*/ module.exports = router; diff --git a/routes/session.js b/routes/session.js index bca51e9..25b45e4 100644 --- a/routes/session.js +++ b/routes/session.js @@ -1,8 +1,14 @@ var express = require('express'); var router = express.Router(); + router.get('/', function(req, res, next){ - res.render('session'); + res.render('session',{ + title: 'Index', + user: req.user + }); }); + + module.exports = router; \ No newline at end of file diff --git a/routes/stored.js b/routes/stored.js new file mode 100644 index 0000000..df44a5e --- /dev/null +++ b/routes/stored.js @@ -0,0 +1,17 @@ +var express = require('express'); +var router = express.Router(); + +router.get('/', function(req, res, next) { + User.find({}, function(err, docs){ + if(err) throw(err) + else{ + res.render('stored', { + title: 'Stored', + user: req.user, + users: docs + }); + } + }) +}); + +module.exports = router; \ No newline at end of file diff --git a/views/admin-users.jade b/views/admin-users.jade new file mode 100644 index 0000000..6fc709f --- /dev/null +++ b/views/admin-users.jade @@ -0,0 +1,7 @@ +extends layout + +block content + + include ./models_jade/Header/template.jade + include ./models_jade/Section-main/template.jade + include ./models_jade/Admin-users/template.jade diff --git a/views/layout.jade b/views/layout.jade index e5c2714..84a2c65 100644 --- a/views/layout.jade +++ b/views/layout.jade @@ -12,7 +12,7 @@ html(lang="en") title #{title} link(rel="stylesheet", href="/stylesheets/style.css") link(rel="stylesheet", href="/stylesheets/style-fonts.css") - link(rel="stylesheet", href='https://fonts.googleapis.com/css?family=Playfair+Display:400,700,400italic,700italic|Abril+Fatface|Bevan|Alegreya+Sans:400,700,400italic,500italic,700italic|Francois+One|Libre+Baskerville:400,400italic,700|Lato:400,700,400italic,700italic|Merriweather:400,400italic,700,700italic|Merriweather+Sans:400,400italic,700|Open+Sans:400,400italic,700,700italic|Roboto+Condensed:400,400italic,700,700italic') + //- link(rel="stylesheet", href='https://fonts.googleapis.com/css?family=Playfair+Display:400,700,400italic,700italic|Abril+Fatface|Bevan|Alegreya+Sans:400,700,400italic,500italic,700italic|Francois+One|Libre+Baskerville:400,400italic,700|Lato:400,700,400italic,700italic|Merriweather:400,400italic,700,700italic|Merriweather+Sans:400,400italic,700|Open+Sans:400,400italic,700,700italic|Roboto+Condensed:400,400italic,700,700italic') meta(name="viewport", content="width=device-width, initial-scale=1.0") body main.Main diff --git a/views/models_jade/Add-nueva-pagina/style.styl b/views/models_jade/Add-nueva-pagina/style.styl index 48c7149..455af11 100644 --- a/views/models_jade/Add-nueva-pagina/style.styl +++ b/views/models_jade/Add-nueva-pagina/style.styl @@ -1,83 +1,83 @@ -.Formpanel - // display flex - // justify-content center - // flex-wrap wrap - // flex-direction column - items-align center - margin-top 2rem - width 50vw - -/*input - border-radius 2px - border-width 0px - - margin 10px*/ - -input - background-color transparent - border-width 0px - border-bottom 1px solid rgba(#273e48, 0.6) - border-radius 0 - outline none - width 100% - font-size 1rem - margin 0 0 15px 0 - padding 0 - box-shadow none - height 1.3rem - font-family 'Merriweather' serif -input:focus - outline none - border-width 0px - border-bottom 2px solid rgba(38, 166, 152, 0.9) - -.btn - text-decoration: none; - color: #fff; - background-color: #26a69a; - box-shadow 0px 2px 1px rgba(0, 0, 0, 0.18) - text-align: center; - letter-spacing: .5px; - border: none; - border-radius: 2px; - display: inline-block; - height: 36px; - line-height: 36px; - outline: 0; - padding: 0 2rem; - text-transform: capitalize - width 200px - &:hover - background-color: #2bbbad; - box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); - -.Form-add - display flex - flex-direction column - justify-content space-around - -.inputstyle - display flex - flex-direction column - margin 10px 0px 20px 0px -.btnstyle - display flex - justify-content flex-end - items-align center - margin 10px 0px 0px 0px -.btnstyle1 - display flex - justify-content center - items-align center - margin 10px 0px 10px 0px -.selectbox - font-size 1em - font-family 'Merriweather' serif -select option - font-family 'Merriweather' serif -select option["selected"] - font-family 'Merriweather' serif -.lbl - font-family 'Noto Serif' - margin-bottom 5px - font-weight 600 +.Formpanel + // display flex + // justify-content center + // flex-wrap wrap + // flex-direction column + items-align center + margin-top 2rem + width 50vw + +/*input + border-radius 2px + border-width 0px + + margin 10px*/ + +input + background-color transparent + border-width 0px + border-bottom 1px solid rgba(#273e48, 0.6) + border-radius 0 + outline none + width 100% + font-size 1rem + margin 0 0 15px 0 + padding 0 + box-shadow none + height 1.3rem + font-family 'Merriweather' serif +input:focus + outline none + border-width 0px + border-bottom 2px solid rgba(38, 166, 152, 0.9) + +.btn + text-decoration: none; + color: #fff; + background-color: #26a69a; + box-shadow 0px 2px 1px rgba(0, 0, 0, 0.18) + text-align: center; + letter-spacing: .5px; + border: none; + border-radius: 2px; + display: inline-block; + height: 36px; + line-height: 36px; + outline: 0; + padding: 0 2rem; + text-transform: capitalize + width 200px + &:hover + background-color: #2bbbad; + box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); + +.Form-add + display flex + flex-direction column + justify-content space-around + +.inputstyle + display flex + flex-direction column + margin 10px 0px 20px 0px +.btnstyle + display flex + justify-content flex-end + items-align center + margin 10px 0px 0px 0px +.btnstyle1 + display flex + justify-content center + items-align center + margin 10px 0px 10px 0px +.selectbox + font-size 1em + font-family 'Merriweather' serif +select option + font-family 'Merriweather' serif +select option["selected"] + font-family 'Merriweather' serif +.lbl + font-family 'Noto Serif' + margin-bottom 5px + font-weight 600 diff --git a/views/models_jade/Add-nueva-pagina/template.jade b/views/models_jade/Add-nueva-pagina/template.jade index 6781798..bf5273e 100644 --- a/views/models_jade/Add-nueva-pagina/template.jade +++ b/views/models_jade/Add-nueva-pagina/template.jade @@ -1,31 +1,31 @@ -section - .titulo1.margin20.Font-francois.FontStylebold.Fontcolor1 Agregar nueva página al catálogo - .titulo2.Font-alegreya Sistema de Administración de catálogo - .divider -.Section-secciones - .Section-agregar.box.Formpanel - .titulo3.margin10.Font-francois.Fontcolor1 Formulario - .divider - .Form - form(id="agregarweb", method="post", action="/form", class="Form-add") - .inputstyle.Fontcolor1 - label(for="input-nombre", class="lbl") Nombre de la nueva web: - input(type="text", id="input-nombre", name="namepage") - .inputstyle.Fontcolor1 - label(for="input-nombre", class="lbl") Nombre del propietario: - input(type="text", id="input-propietario", placeholder="", name="owner") - .inputstyle.Fontcolor1 - label(class="lbl" name="Category") Categoría: - select.box - option(selected) Negocios: - option Música - option Blogs - .inputstyle.Font-openssans.Fontcolor1 - label(class="lbl" name="type") Tipo: - select.box - option(selected) Estática - option Dinamicas - option Sistemas - .divider - .btnstyle.Font-openssans - input(type="submit", class="btn", value="Salvar") +section + .titulo1.margin20.Font-francois.FontStylebold.Fontcolor1 Agregar nueva página al catálogo + .titulo2.Font-alegreya Sistema de Administración de catálogo + .divider +.Section-secciones + .Section-agregar.box.Formpanel + .titulo3.margin10.Font-francois.Fontcolor1 Formulario + .divider + .Form + form(id="agregarweb", method="post", action="/form", class="Form-add") + .inputstyle.Fontcolor1 + label(for="input-nombre", class="lbl") Nombre de la nueva web: + input(type="text", id="input-nombre", name="namepage") + .inputstyle.Fontcolor1 + label(for="input-nombre", class="lbl") Nombre del propietario: + input(type="text", id="input-propietario", placeholder="", name="propietario") + .inputstyle.Fontcolor1 + label(class="lbl") Categoría: + select.box + option(selected) Negocios: + option Música + option Blogs + .inputstyle.Font-openssans.Fontcolor1 + label(class="lbl") Tipo: + select.box + option(selected) Estática + option Dinamicas + option Sistemas + .divider + .btnstyle.Font-openssans + input(type="submit", class="btn", value="Salvar") diff --git a/views/models_jade/Admin-users/style.styl b/views/models_jade/Admin-users/style.styl new file mode 100644 index 0000000..14f9b71 --- /dev/null +++ b/views/models_jade/Admin-users/style.styl @@ -0,0 +1,25 @@ +.Table + width 800px + &-user-photo + width 40px + border-radius 50% +.th + text-align justify +.td + margin-top 10px + +.facebook-label + background-color #00f + padding 4px + border-radius 0px 5px + color white + text-align center + width 85px + +.github-label + background-color #000 + padding 4px + border-radius 0px 5px + color white + text-align center + width 85px \ No newline at end of file diff --git a/views/models_jade/Admin-users/template.jade b/views/models_jade/Admin-users/template.jade new file mode 100644 index 0000000..6a7fac9 --- /dev/null +++ b/views/models_jade/Admin-users/template.jade @@ -0,0 +1,24 @@ +section + .titulo1.margin20.Font-francois.FontStylebold.Fontcolor1 Usuarios Administradores + .titulo2.Font-alegreya Sistema de Administración de catálogo + .divider +.Section-secciones + .box + table(class="Table") + thead + tr + th(class="th" data-field='id') Usuario + th(class="th" data-field='name') Provedor + th(class="th" data-field='price') Foto + tbody + each user in users + tr(class="tr") + td(class="td") #{user.name} + if(user.provider == "facebook") + td(class="td") + div.facebook-label #{user.provider} + else + td(class="td") + div.github-label #{user.provider} + td(class="td") + img(src="#{user.photo}", class="Table-user-photo") diff --git a/views/models_jade/Bienvenido/style.styl b/views/models_jade/Bienvenido/style.styl index de8df71..8ba9898 100644 --- a/views/models_jade/Bienvenido/style.styl +++ b/views/models_jade/Bienvenido/style.styl @@ -1,16 +1,16 @@ -.Section - width 85vw - background-color rgba(#E5E5E5, 0.7) - // &-main - // width 100% - &-secciones - display flex - flex-wrap wrap - margin 30px auto - flex-direction row - justify-content space-around - align-items flex-stretch - align-content space-around - &-item - width 250px - margin 10px +.Section + width 85vw + background-color rgba(#E5E5E5, 0.7) + // &-main + // width 100% + &-secciones + display flex + flex-wrap wrap + margin 30px auto + flex-direction row + justify-content space-around + align-items flex-stretch + align-content space-around + &-item + width 250px + margin 10px diff --git a/views/models_jade/Bienvenido/template.jade b/views/models_jade/Bienvenido/template.jade index eafb556..1d9e6d3 100644 --- a/views/models_jade/Bienvenido/template.jade +++ b/views/models_jade/Bienvenido/template.jade @@ -1,54 +1,54 @@ -.titulo1.margin20.Font-francois.FontStylebold Bienvenido - .titulo2.Font-alegreya Sistema de Administración de catálogo -.divider -.Section-secciones - .Section-item.box.flexbox-colwrp - .titulo3.margin10.Font-francois.Fontcolor1 Agregar nueva página - .divider - .styleicon.icon-logo_nave - p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis - .divider - .btnstyle1 - button.btn(onClick="location.href='/form'") Ir - //a(href="/form", class="linknone") Ir - .Section-item.box.flexbox-colwrp - .titulo3.margin10.Font-francois.Fontcolor1 Agregar categoría - .divider - .styleicon.icon-logo_Carrito - p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis - .divider - .btnstyle1 - button.btn(onClick="location.href='/stored'") Ir - .Section-item.box.flexbox-colwrp - .titulo3.margin10.Font-francois.Fontcolor1 Ver la base de datos - .divider - .styleicon.icon-logo_Basededatos - p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis - .divider - .btnstyle1 - button.btn(onClick="location.href='/stored'") Ir - - .Section-item.box.flexbox-colwrp - .titulo3.margin10.Font-francois.Fontcolor1 Ver estadísticas - .divider - .styleicon.icon-logo_Estadisticas - p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis - .divider - .btnstyle1 - button.btn Ir - .Section-item.box.flexbox-colwrp - .titulo3.margin10.Font-francois.Fontcolor1 Ver usuarios - .divider - .styleicon.icon-logo_Usuario - p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis - .divider - .btnstyle1 - button.btn Ir - .Section-item.box.flexbox-colwrp - .titulo3.margin10.Font-francois.Fontcolor1 Ver archivos - .divider - .styleicon.icon-logo_archivo - p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis - .divider - .btnstyle1 - button.btn Ir +.titulo1.margin20.Font-francois.FontStylebold Bienvenido + .titulo2.Font-alegreya Sistema de Administración de catálogo +.divider +.Section-secciones + .Section-item.box.flexbox-colwrp + .titulo3.margin10.Font-francois.Fontcolor1 Agregar nueva página + .divider + .styleicon.icon-logo_nave + p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis + .divider + .btnstyle1 + button.btn(onClick="location.href='/form'") Ir + //a(href="/form", class="linknone") Ir + .Section-item.box.flexbox-colwrp + .titulo3.margin10.Font-francois.Fontcolor1 Agregar categoría + .divider + .styleicon.icon-logo_Carrito + p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis + .divider + .btnstyle1 + button.btn(onClick="location.href='/stored'") Ir + .Section-item.box.flexbox-colwrp + .titulo3.margin10.Font-francois.Fontcolor1 Ver la base de datos + .divider + .styleicon.icon-logo_Basededatos + p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis + .divider + .btnstyle1 + button.btn(onClick="location.href='/stored'") Ir + + .Section-item.box.flexbox-colwrp + .titulo3.margin10.Font-francois.Fontcolor1 Ver estadísticas + .divider + .styleicon.icon-logo_Estadisticas + p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis + .divider + .btnstyle1 + button.btn Ir + .Section-item.box.flexbox-colwrp + .titulo3.margin10.Font-francois.Fontcolor1 Ver usuarios + .divider + .styleicon.icon-logo_Usuario + p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis + .divider + .btnstyle1 + button.btn(onClick="location.href='/admin-users'") Ir + .Section-item.box.flexbox-colwrp + .titulo3.margin10.Font-francois.Fontcolor1 Ver archivos + .divider + .styleicon.icon-logo_archivo + p.Font-lato.Fontcolor1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis + .divider + .btnstyle1 + button.btn Ir diff --git a/views/models_jade/Card/style.styl b/views/models_jade/Card/style.styl index bc5606f..07b55ba 100644 --- a/views/models_jade/Card/style.styl +++ b/views/models_jade/Card/style.styl @@ -1,39 +1,39 @@ -.MyCard - margin-top 10px - margin-bottom 30px - display flex - flex-direction column - align-items center - text-align center - &-photo - width 100px - border-radius 50% - // border 2px dotted #FBC02D - padding 2px - &-photo-img - background-color #E0E0E0 - width 80px - border-radius 50% - &-name - display flex - flex-direction column - //align-items center - text-align center - justify-content center - //background-color #FBC02D - //height 50px - &--textStyle - //padding 15px auto - //letter-spacing 0.3em - font-family: 'Roboto Condensed', sans-serif; - color rgba(229,229,229,0.7) - &-title - color #FAFAFA - font-family 'Noto Serif' - font-style italic - margin-top -7px - //letter-spacing 0.1em - //height: 50px; - display: flex; - align-items: center; - justify-content: center; +.MyCard + margin-top 10px + margin-bottom 30px + display flex + flex-direction column + align-items center + text-align center + &-photo + width 100px + border-radius 50% + // border 2px dotted #FBC02D + padding 2px + &-photo-img + background-color #E0E0E0 + width 80px + border-radius 50% + &-name + display flex + flex-direction column + //align-items center + text-align center + justify-content center + //background-color #FBC02D + //height 50px + &--textStyle + //padding 15px auto + //letter-spacing 0.3em + font-family: 'Roboto Condensed', sans-serif; + color rgba(229,229,229,0.7) + &-title + color #FAFAFA + font-family 'Noto Serif' + font-style italic + margin-top -7px + //letter-spacing 0.1em + //height: 50px; + display: flex; + align-items: center; + justify-content: center; diff --git a/views/models_jade/Card/template.jade b/views/models_jade/Card/template.jade index a8b84b1..4daeb0e 100644 --- a/views/models_jade/Card/template.jade +++ b/views/models_jade/Card/template.jade @@ -1,12 +1,12 @@ -.MyCard - .MyCard-photo - if(user) - img(src="#{user.photo}", class="MyCard-photo-img") - else - img(src="/images/cara.png", class="MyCard-photo-img") - .MyCard-name - if(user) - .MyCard--textStyle.borderStyle.titulo1 #{user.name} - else - .MyCard--textStyle.borderStyle.titulo1 Daniel - .MyCard-title.titulo2 Administrador +.MyCard + .MyCard-photo + if(user) + img(src="#{user.photo}", class="MyCard-photo-img") + else + img(src="/images/cara.png", class="MyCard-photo-img") + .MyCard-name + if(user) + .MyCard--textStyle.borderStyle.titulo1 #{user.name} + else + .MyCard--textStyle.borderStyle.titulo1 Daniel + .MyCard-title.titulo2 Administrador diff --git a/views/models_jade/Header/style.styl b/views/models_jade/Header/style.styl index 90b6474..91b0e0f 100644 --- a/views/models_jade/Header/style.styl +++ b/views/models_jade/Header/style.styl @@ -1,49 +1,49 @@ -.Header - background-color rgba(#273e48, 1) - box-shadow: 0px -5px 7px 5px #777; - &-sidenav - padding 5px 20px - min-height 100vh - width 15vw - &-logo - color white - font-size 6rem - text-align center - - -.Nav - color white - margin 30px auto - color rgba(229,229,229,0.7) - &-item - display flex - align-items center - margin 10px auto - color rgba(229,229,229,0.7) - cursor pointer - &:hover - color rgba(240,240,240,1) - &-item-text - font-size 0.8rem - margin-left 15px - -.Nav-item[data-lastitem] - margin-top 15px - -.iconstyle - font-size 1.4rem - display flex - align-items center - -.iconstyle[data-cross] - font-size 1.4rem - -.notifi - background-color rgba(88, 114, 125,0.9) - //border 1px solid rgba(38, 166, 152, 0.9) - margin-left 30px - font-size 0.8rem - width 16px - text-align center - padding 2px - border-radius 2px +.Header + background-color rgba(#273e48, 1) + box-shadow: 0px -5px 7px 5px #777; + &-sidenav + padding 5px 20px + min-height 100vh + width 15vw + &-logo + color white + font-size 6rem + text-align center + + +.Nav + color white + margin 30px auto + color rgba(229,229,229,0.7) + &-item + display flex + align-items center + margin 10px auto + color rgba(229,229,229,0.7) + cursor pointer + &:hover + color rgba(240,240,240,1) + &-item-text + font-size 0.8rem + margin-left 15px + +.Nav-item[data-lastitem] + margin-top 15px + +.iconstyle + font-size 1.4rem + display flex + align-items center + +.iconstyle[data-cross] + font-size 1.4rem + +.notifi + background-color rgba(88, 114, 125,0.9) + //border 1px solid rgba(38, 166, 152, 0.9) + margin-left 30px + font-size 0.8rem + width 16px + text-align center + padding 2px + border-radius 2px diff --git a/views/models_jade/Header/template.jade b/views/models_jade/Header/template.jade index fe2f4bf..b9e910f 100644 --- a/views/models_jade/Header/template.jade +++ b/views/models_jade/Header/template.jade @@ -1,25 +1,25 @@ -header.Header - .Header-sidenav - .Header-logo.icon-logos_Logoytexto.margin10 - if(user) - include ../Card/template.jade - .divider - .Nav - if(user) - .Nav-item - .iconstyle.icon-user - div.Nav-item-text Ver perfil - .Nav-item - .iconstyle.icon-cog - div.Nav-item-text Configuración - .Nav-item(data-bandeja) - .iconstyle.icon-drawer - div.Nav-item-text Bandeja de entrada - .notifi 2 - .Nav-item(data-lastitem) - .iconstyle(data-cross).icon-cross - a(href="/logout", class="linknone") - div.Nav-item-text Cerrar sesión - - - +header.Header + .Header-sidenav + .Header-logo.icon-logos_Logoytexto.margin10 + if(user) + include ../Card/template.jade + .divider + .Nav + if(user) + .Nav-item + .iconstyle.icon-user + div.Nav-item-text Ver perfil + .Nav-item + .iconstyle.icon-cog + div.Nav-item-text Configuración + .Nav-item(data-bandeja) + .iconstyle.icon-drawer + div.Nav-item-text Bandeja de entrada + .notifi 2 + .Nav-item(data-lastitem) + .iconstyle(data-cross).icon-cross + a(href="/logout", class="linknone") + div.Nav-item-text Cerrar sesión + + + diff --git a/views/models_jade/Pages-stored.jade/template.jade b/views/models_jade/Pages-stored.jade/template.jade deleted file mode 100644 index 6b94b36..0000000 --- a/views/models_jade/Pages-stored.jade/template.jade +++ /dev/null @@ -1,30 +0,0 @@ -.titulo1.margin20.Font-francois.FontStylebold.Fontcolor1 Agregar nueva página al catálogo - .titulo2.Font-alegreya Sistema de Administración de catálogo -.divider -.Section-secciones - .Section-agregar.box.Formpanel - .titulo3.margin10.Font-francois.Fontcolor1 Formulario - .divider - .Form - form(id="agregarweb", method="post", action="/form", class="Form-add") - .inputstyle.Fontcolor1 - label(for="input-nombre", class="lbl") Nombre de la nueva web: - input(type="text", id="input-nombre", name="namepage") - .inputstyle.Fontcolor1 - label(for="input-nombre", class="lbl") Nombre del propietario: - input(type="text", id="input-propietario", placeholder="", name="propietario") - .inputstyle.Fontcolor1 - label(class="lbl") Categoría: - select.box - option(selected) Negocios: - option Música - option Blogs - .inputstyle.Font-openssans.Fontcolor1 - label(class="lbl") Tipo: - select.box - option(selected) Estática - option Dinamicas - option Sistemas - .divider - .btnstyle.Font-openssans - input(type="submit", class="btn", value="Salvar") diff --git a/views/models_jade/Pages-stored/template.jade b/views/models_jade/Pages-stored/template.jade deleted file mode 100644 index 185ea97..0000000 --- a/views/models_jade/Pages-stored/template.jade +++ /dev/null @@ -1,31 +0,0 @@ -section - .titulo1.margin20.Font-francois.FontStylebold.Fontcolor1 Páginas almacenadas - .titulo2.Font-alegreya Sistema de Administración de catálogo - .divider -.Section-secciones - .Section-agregar.box - //- .titulo3.margin10.Font-francois.Fontcolor1 Formulario - //- .divider - //- .Form - //- form(id="agregarweb", method="post", action="/form", class="Form-add") - //- .inputstyle.Fontcolor1 - //- label(for="input-nombre", class="lbl") Nombre de la nueva web: - //- input(type="text", id="input-nombre", name="namepage") - //- .inputstyle.Fontcolor1 - //- label(for="input-nombre", class="lbl") Nombre del propietario: - //- input(type="text", id="input-propietario", placeholder="", name="propietario") - //- .inputstyle.Fontcolor1 - //- label(class="lbl") Categoría: - //- select.box - //- option(selected) Negocios: - //- option Música - //- option Blogs - //- .inputstyle.Font-openssans.Fontcolor1 - //- label(class="lbl") Tipo: - //- select.box - //- option(selected) Estática - //- option Dinamicas - //- option Sistemas - //- .divider - //- .btnstyle.Font-openssans - //- input(type="submit", class="btn", value="Salvar") diff --git a/views/models_jade/Section-main/template.jade b/views/models_jade/Section-main/template.jade index 0bd5ac5..966814b 100644 --- a/views/models_jade/Section-main/template.jade +++ b/views/models_jade/Section-main/template.jade @@ -1,3 +1,3 @@ -section.Section - .Section-main +section.Section + .Section-main \ No newline at end of file diff --git a/views/models_jade/styles/style-fuentes.styl b/views/models_jade/styles/style-fuentes.styl index 5ea9829..080396b 100644 --- a/views/models_jade/styles/style-fuentes.styl +++ b/views/models_jade/styles/style-fuentes.styl @@ -1,28 +1,28 @@ -.Font-playfair - font-family 'Playfair Display' serif -.Font-abril - font-family 'Abril Fatface' cursive -.Font-bevan - font-family 'Bevan' cursive -.Font-alegreya - font-family 'Alegreya Sans' sans-serif -.Font-francois - font-family 'Francois One' sans-serif -.Font-librebasker - font-family 'Libre Baskerville' serif -.Font-lato - font-family 'Lato' sans-serif -.Font-merriw - font-family 'Merriweather' serif -.Font-merriws - font-family 'Merriweather Sans' sans-serif -.Font-openssans - font-family 'Open Sans' sans-serif -.Font-roboto - font-family 'Roboto Condensed' sans-serif - -.FontStylebold - font-style bold - font-weight 700 -.Fontcolor1 - color rgba(#273e48, 0.86) +.Font-playfair + font-family 'Playfair Display' serif +.Font-abril + font-family 'Abril Fatface' cursive +.Font-bevan + font-family 'Bevan' cursive +.Font-alegreya + font-family 'Alegreya Sans' sans-serif +.Font-francois + font-family 'Francois One' sans-serif +.Font-librebasker + font-family 'Libre Baskerville' serif +.Font-lato + font-family 'Lato' sans-serif +.Font-merriw + font-family 'Merriweather' serif +.Font-merriws + font-family 'Merriweather Sans' sans-serif +.Font-openssans + font-family 'Open Sans' sans-serif +.Font-roboto + font-family 'Roboto Condensed' sans-serif + +.FontStylebold + font-style bold + font-weight 700 +.Fontcolor1 + color rgba(#273e48, 0.86) diff --git a/views/models_jade/styles/style.styl b/views/models_jade/styles/style.styl index 086ed90..d1c4646 100644 --- a/views/models_jade/styles/style.styl +++ b/views/models_jade/styles/style.styl @@ -1,159 +1,163 @@ -@import "../../../node_modules/normalize-styl/normalize.styl" - -// Código de Compra -// 26979700 - -.bg-primary - background-color rgba(#1a237e, 0.7) -.bg-secundary - background-color rgba(#e3f2fd, 0.4) - - -.box - background-color white - padding 5px 10px - border-radius 2px - box-shadow 0px 2px 1px rgba(0,0,0,0.1) -.minwidth1 - min-width 300px -// .widthbox1 -// width 250px -// .flexbox-colwrp -// display flex -// flex-wrap wrap -// flex-direction column -.margin10 - margin 10px auto 10px 2px -.margin20 - margin 10px auto 10px 20px -.marginbtm - margin-bottom 10px -.titulo1 - font-size 1.6rem - padding 5px - color rgba(#212121, .95) -.titulo2 - font-size 1.1rem - color rgba(#212121, 0.7) -.titulo3 - font-size 1.4rem - color rgba(#212121, 0.9) - font-weight 600 -.titulo4 - font-size .9rem - font-weight 500 - color rgba(#212121, 0.9) -.divider - height 1px - overflow hidden - background-color #e0e0e0 - - -.linknone - text-decoration none - color rgba(229,229,229,0.9) -.linksocial - color: #273e48; -.loginsocial - text-align center - -.styleicon - font-size 4rem - text-align center - margin 10px auto - color rgba(#273e48, 1) - &:hover - color rgba(#273e48, .7) -.justifytext - text-align justify - - -body - font-size 18px -.Main - display flex - align-items stretch - - -@import "../Add-nueva-pagina/style.styl" -@import "../Header/style.styl" -@import "../Card/style.styl" -@import "../Bienvenido/style.styl" -@import "style-fuentes.styl" - - - -@media screen and (max-width: 320px) - .titulo1 - font-size 1.3rem - .titulo2 - font-size 0.9rem - .titulo3 - font-size 1.1rem - .titulo4 - font-size .8rem - - main - display flex - flex-direction row - - .Section - width 100vw - &-secciones - flex-direction column - - .Header - box-shadow: -1px 4px 2px 0px #777; - max-height 100% - &-sidenav - width 100% - padding 0px - .MyCard - margin-top 0px - &-photo - text-align center - &-photo-img - text-align center - width 70px - .Formpanel - // display flex - // justify-content center - // flex-wrap wrap - // flex-direction column - items-align center - margin-top 2rem - width 90vw - -@media screen and (max-width: 720px) - - main - display flex - flex-direction column - .Section - width 100vw - &-secciones - flex-direction row - flex-wrap wrap - .Header - box-shadow: -1px 4px 2px 0px #777; - max-height 100% - &-sidenav - padding 0px - width 100% - &-logo - font-size 4.5rem - .MyCard - margin-top 0px - &-photo - text-align center - &-photo-img - text-align center - width 70px - .Formpanel - // display flex - // justify-content center - // flex-wrap wrap - // flex-direction column - items-align center - margin-top 2rem - width 90vw +@import "../../../node_modules/normalize-styl/normalize.styl" + +// Código de Compra +// 26979700 + +.bg-primary + background-color rgba(#1a237e, 0.7) +.bg-secundary + background-color rgba(#e3f2fd, 0.4) + + +.box + background-color white + padding 5px 10px + border-radius 2px + box-shadow 0px 2px 1px rgba(0,0,0,0.1) +.minwidth1 + min-width 300px +// .widthbox1 +// width 250px +// .flexbox-colwrp +// display flex +// flex-wrap wrap +// flex-direction column +.margin10 + margin 10px auto 10px 2px +.margin20 + margin 10px auto 10px 20px +.marginbtm + margin-bottom 10px +.titulo1 + font-size 1.6rem + padding 5px + color rgba(#212121, .95) +.titulo2 + font-size 1.1rem + color rgba(#212121, 0.7) +.titulo3 + font-size 1.4rem + color rgba(#212121, 0.9) + font-weight 600 +.titulo4 + font-size .9rem + font-weight 500 + color rgba(#212121, 0.9) +.divider + height 1px + overflow hidden + background-color #e0e0e0 + + +.linknone + text-decoration none + color rgba(229,229,229,0.9) +.linksocial + color: #273e48; +.loginsocial + text-align center + +.styleicon + font-size 4rem + text-align center + margin 10px auto + color rgba(#273e48, 1) + &:hover + color rgba(#273e48, .7) +.justifytext + text-align justify + + +body + font-size 18px +.Main + display flex + align-items stretch + + +@import "../Add-nueva-pagina/style.styl" +@import "../Header/style.styl" +@import "../Card/style.styl" +@import "../Bienvenido/style.styl" +//@import "../Pages-stored/style.styl" +@import "style-fuentes.styl" + + + +@media screen and (max-width: 320px) + .titulo1 + font-size 1.3rem + .titulo2 + font-size 0.9rem + .titulo3 + font-size 1.1rem + .titulo4 + font-size .8rem + + main + display flex + flex-direction row + + .Section + width 100vw + &-secciones + flex-direction column + + .Header + box-shadow: -1px 4px 2px 0px #777; + max-height 100% + &-sidenav + width 100% + padding 0px + .MyCard + margin-top 0px + &-photo + text-align center + &-photo-img + text-align center + width 70px + .Formpanel + // display flex + // justify-content center + // flex-wrap wrap + // flex-direction column + items-align center + margin-top 2rem + width 90vw + +@media screen and (max-width: 720px) + + main + display flex + flex-direction column + .Section + width 100vw + &-secciones + flex-direction row + flex-wrap wrap + .Header + box-shadow: -1px 4px 2px 0px #777; + max-height 100% + &-sidenav + padding 0px + width 100% + &-logo + font-size 4.5rem + .MyCard + margin-top 0px + &-photo + text-align center + &-photo-img + text-align center + width 70px + .Formpanel + // display flex + // justify-content center + // flex-wrap wrap + // flex-direction column + items-align center + margin-top 2rem + width 90vw + + +@import "../Admin-users/style.styl" \ No newline at end of file diff --git a/views/stored.jade b/views/stored.jade new file mode 100644 index 0000000..f0358dc --- /dev/null +++ b/views/stored.jade @@ -0,0 +1,7 @@ +extends layout + +block content + + include ./models_jade/Header/template.jade + include ./models_jade/Section-main/template.jade + include ./models_jade/Admin-users/template.jade From 2dc9aee02c2a5138f53fdb0b862b806fd765f53c Mon Sep 17 00:00:00 2001 From: daniel nava Date: Mon, 2 Nov 2015 18:07:10 -0600 Subject: [PATCH 18/18] Avance hasta controlar las sesiones, falta ver lo de las conexiones de la bd --- app.js | 38 +----- bin/www | 4 - config/mongodb-config.js | 2 +- package.json | 26 ---- passport.js | 130 +------------------- public/stylesheets/style.css | 19 --- routes/admin-users.js | 33 ++--- routes/form.js | 26 ++-- routes/index.js | 98 ++------------- routes/session.js | 18 ++- routes/stored.js | 27 ++-- routes/webadmin.js | 4 + views/form.jade | 23 ---- views/index.jade | 10 -- views/layout.jade | 10 +- views/login.jade | 21 ---- views/models_jade/Admin-users/style.styl | 19 --- views/models_jade/Admin-users/template.jade | 7 -- views/models_jade/styles/style.styl | 9 +- views/stored.jade | 11 +- 20 files changed, 82 insertions(+), 453 deletions(-) diff --git a/app.js b/app.js index 99b7db0..77ba670 100644 --- a/app.js +++ b/app.js @@ -5,17 +5,6 @@ var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var session = require('express-session'); -<<<<<<< HEAD - -var passport = require('passport'); //PASSPORT - - -var routes = require('./routes/index'); -var form = require('./routes/form'); - -require('./passport')(passport); - -======= var passport = require('passport'); @@ -31,7 +20,6 @@ var admins = require('./routes/admin-users'); require('./passport')(passport); //var config = require('./config/mongodb-config'); ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 var app = express(); // view engine setup @@ -39,24 +27,16 @@ app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); // uncomment after placing your favicon in /public -<<<<<<< HEAD -//app.use(favicon(__dirname + '/public/favicon.ico')); -======= + //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); -<<<<<<< HEAD -app.use(express.static(path.join(__dirname, 'public'))); - -======= app.use(require('stylus').middleware(path.join(__dirname, 'public'))); app.use(express.static(path.join(__dirname, 'public'))); ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 // Indicamos que use sesiones, para almacenar el objeto usuario // y que lo recuerde aunque abandonemos la página app.use(session({ resave: true, @@ -67,16 +47,6 @@ app.use(session({ resave: true, app.use(passport.initialize()); app.use(passport.session()); -<<<<<<< HEAD -//Enrutador - -app.use('/form', form); -app.use('/', routes); -//app.use('/form', form); -//app.use('/daniel', routes); -//app.use('/users', users); - -======= app.use('/', routes); app.use('/webadmin', webadmin); @@ -88,7 +58,7 @@ app.use('/admin-users', admins); //app.use('/users', users); //app.use(config); ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 + // catch 404 and forward to error handler app.use(function(req, res, next) { var err = new Error('Not Found'); @@ -121,8 +91,4 @@ app.use(function(err, req, res, next) { }); -<<<<<<< HEAD - -======= ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 module.exports = app; diff --git a/bin/www b/bin/www index f79bf1b..945ef1e 100755 --- a/bin/www +++ b/bin/www @@ -5,11 +5,7 @@ */ var app = require('../app'); -<<<<<<< HEAD -var debug = require('debug')('authentication:server'); -======= var debug = require('debug')('webadmin:server'); ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 var http = require('http'); /** diff --git a/config/mongodb-config.js b/config/mongodb-config.js index d8f4ec1..a0d7db6 100644 --- a/config/mongodb-config.js +++ b/config/mongodb-config.js @@ -16,7 +16,7 @@ exports.conectar = function (){ } exports.desconectar = function(){ - mongoose.disconnect(); + mongoose.connection.close(); } /* diff --git a/package.json b/package.json index a33752c..bea3ab1 100644 --- a/package.json +++ b/package.json @@ -1,26 +1,17 @@ { -<<<<<<< HEAD - "name": "authentication", -======= "name": "webadmin", ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 "version": "0.0.0", "private": true, "scripts": { "start": "nodemon ./bin/www", -<<<<<<< HEAD "jade": "jade --watch --pretty lib/index.jade lib/form.jade --out ./public", "stylus": "stylus --use nib --watch ./views/models_jade/styles --out ./public/stylesheets", "babel": "babel --watch lib --out-dir public" -======= - "stylus": "stylus --watch ./views/models_jade/styles --out ./public/stylesheets" ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 }, "repository": { "type": "git", "url": "git+https://github.com/NerdStudio/webadmin.git" }, -<<<<<<< HEAD "author": "Nerd Studio", "license": "ISC", "bugs": { @@ -38,30 +29,13 @@ "mongoose": "~4.1.8", "normalize-styl": "~3.0.3", "nib": "~1.1.0", -======= - "dependencies": { - "body-parser": "~1.13.2", - "cookie-parser": "~1.3.5", - "debug": "~2.2.0", - "express": "~4.13.1", - "jade": "~1.11.0", - "mongoose": "^4.1.12", - "morgan": "~1.6.1", - "nodemon": "^1.7.3", - "normalize-styl": "^3.0.3", - "serve-favicon": "~2.3.0", - "stylus": "0.42.3", ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 "passport": "~0.3.0", "passport-facebook": "~2.0.0", "passport-twitter": "~1.0.3", "express-session": "~1.11.3", "passport-github2": "~0.1.9" -<<<<<<< HEAD -======= }, "devDependencies": { "stylus": "^0.42.3" ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 } } diff --git a/passport.js b/passport.js index a42b404..b8f824d 100644 --- a/passport.js +++ b/passport.js @@ -1,125 +1,3 @@ -<<<<<<< HEAD -var mongoose = require('mongoose'); -var db = require('./lib/db'); -var User = db.mongoose.model('User'); -// Estrategia de autenticación con Twitter -var TwitterStrategy = require('passport-twitter').Strategy; -// Estrategia de autenticación con Facebook -var FacebookStrategy = require('passport-facebook').Strategy; - -var GitHubStrategy = require('passport-github2').Strategy; -// Fichero de configuración donde se encuentran las API keys -// Este archivo no debe subirse a GitHub ya que contiene datos -// que pueden comprometer la seguridad de la aplicación. -var config = require('./config'); - -// Exportamos como módulo las funciones de passport, de manera que -// podamos utilizarlas en otras partes de la aplicación. -// De esta manera, mantenemos el código separado en varios archivos -// logrando que sea más manejable. -module.exports = function(passport) { - - // Serializa al usuario para almacenarlo en la sesión - passport.serializeUser(function(user, done) { - done(null, user); - }); - - // Deserializa el objeto usuario almacenado en la sesión para - // poder utilizarlo - passport.deserializeUser(function(obj, done) { - done(null, obj); - }); - - // Configuración del autenticado con Twitter - passport.use(new TwitterStrategy({ - consumerKey : config.twitter.key, - consumerSecret : config.twitter.secret, - callbackURL : '/auth/twitter/callback' - }, function(accessToken, refreshToken, profile, done) { - // Busca en la base de datos si el usuario ya se autenticó en otro - // momento y ya está almacenado en ella - User.findOne({provider_id: profile.id}, function(err, user) { - if(err) throw(err); - // Si existe en la Base de Datos, lo devuelve - if(!err && user!= null) return done(null, user); - - // Si no existe crea un nuevo objecto usuario - var user = new User({ - provider_id : profile.id, - provider : profile.provider, - name : profile.displayName, - photo : profile.photos[0].value - }); - //...y lo almacena en la base de datos - user.save(function(err) { - if(err) throw err; - done(null, user); - }); - }); - })); - - // Configuración del autenticado con Facebook - passport.use(new FacebookStrategy({ - clientID : config.facebook.key, - clientSecret : config.facebook.secret, - callbackURL : '/auth/facebook/callback', - profileFields : ['id', 'displayName', /*'provider',*/ 'photos'] - }, function(accessToken, refreshToken, profile, done) { - // El campo 'profileFields' nos permite que los campos que almacenamos - // se llamen igual tanto para si el usuario se autentica por Twitter o - // por Facebook, ya que cada proveedor entrega los datos en el JSON con - // un nombre diferente. - // Passport esto lo sabe y nos lo pone más sencillo con ese campo - User.findOne({provider_id: profile.id}, function(err, user) { - if(err) throw(err); - if(!err && user!= null) return done(null, user); - - // Al igual que antes, si el usuario ya existe lo devuelve - // y si no, lo crea y salva en la base de datos - var user = new User({ - provider_id : profile.id, - provider : profile.provider, - name : profile.displayName, - photo : profile.photos[0].value - }); - user.save(function(err) { - if(err) throw err; - done(null, user); - }); - }); - })); - - passport.use(new GitHubStrategy({ - clientID: config.github.key, - clientSecret: config.github.secret, - callbackURL: "/auth/github/callback" - }, - function(accessToken, refreshToken, profile, done) { - //console.log(profile._json) - User.findOne({provider_id: profile.id}, function(err, user) { - if(err) throw(err); - // Si existe en la Base de Datos, lo devuelve - if(!err && user!= null) return done(null, user); - - //Si no existe crea un nuevo objecto usuario - console.log(user) - var user = new User({ - provider_id : profile.id, - provider : profile.provider, - name : profile.username, - photo : profile._json.avatar_url - }); - //...y lo almacena en la base de datos - user.save(function(err) { - if(err) throw err; - done(null, user); - }); - //console.log(user) - }); - } -)); -}; -======= var mongoose = require('mongoose'); //var db = require('./lib/db'); @@ -144,7 +22,7 @@ var config = require('./config'); // De esta manera, mantenemos el código separado en varios archivos // logrando que sea más manejable. module.exports = function(passport) { - + db.conectar(); // Serializa al usuario para almacenarlo en la sesión passport.serializeUser(function(user, done) { done(null, user); @@ -199,7 +77,7 @@ module.exports = function(passport) { // por Facebook, ya que cada proveedor entrega los datos en el JSON con // un nombre diferente. // Passport esto lo sabe y nos lo pone más sencillo con ese campo - db.conectar(); + //db.conectar(); User.findOne({provider_id: profile.id}, function(err, user) { if(err) throw(err); if(!err && user!= null) return done(null, user); @@ -227,7 +105,7 @@ module.exports = function(passport) { }, function(accessToken, refreshToken, profile, done) { //console.log(profile._json) - db.conectar(); + //db.conectar(); User.findOne({provider_id: profile.id}, function(err, user) { if(err) throw(err); // Si existe en la Base de Datos, lo devuelve @@ -253,4 +131,4 @@ module.exports = function(passport) { } )); }; ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 + diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css index 69ead09..9ebf778 100644 --- a/public/stylesheets/style.css +++ b/public/stylesheets/style.css @@ -442,22 +442,6 @@ select option["selected"] { width: 250px; margin: 10px; } -<<<<<<< HEAD -======= -.Table { - width: 800px; -} -.Table-user-photo { - width: 40px; - border-radius: 50%; -} -.th { - text-align: justify; -} -.td { - margin-top: 10px; -} ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 .Font-playfair { font-family: 'Playfair Display' serif; } @@ -584,7 +568,6 @@ select option["selected"] { width: 90vw; } } -<<<<<<< HEAD .Table { width: 800px; } @@ -614,5 +597,3 @@ select option["selected"] { text-align: center; width: 85px; } -======= ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 diff --git a/routes/admin-users.js b/routes/admin-users.js index 5e0d207..5955e05 100644 --- a/routes/admin-users.js +++ b/routes/admin-users.js @@ -6,21 +6,26 @@ var db = require('../config/mongodb-config'), router.get('/', function(req, res, next) { //db.conectar(); - console.log(req.user); - - User.find({}, function(err, docs){ - if(err) throw(err) - else{ - res.render('admin-users', { - title: 'Stored', - user: req.user, - users: docs - }); - } - - }); + if(req.user){ + console.log(req.user); + User.find({}, function(err, docs){ + if(err) throw(err) + else{ + res.render('admin-users', { + title: 'Stored', + user: req.user, + users: docs + }); + } + }) + } + else{ + res.redirect('/webadmin') + } }); -module.exports = router; \ No newline at end of file +module.exports = router; + + \ No newline at end of file diff --git a/routes/form.js b/routes/form.js index fddb8b7..0a7e75b 100644 --- a/routes/form.js +++ b/routes/form.js @@ -1,12 +1,7 @@ var express = require('express'); var router = express.Router(); -<<<<<<< HEAD -/* GET users listing. */ -router.get('/form', function(req, res, next) { - res.render('form', { - title: 'Form', -======= + var dbconfig = require('../config/mongodb-config'); var web = require('../models/web'); @@ -14,22 +9,18 @@ var web = require('../models/web'); router.get('/', function(req, res, next) { - res.render('form', { + if(req.user){ + res.render('form', { title: 'Form get', ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 user: req.user }); + } + else{ + res.redirect("/webadmin") + } }); -<<<<<<< HEAD -router.post('/addpage', function(req, res) { - // var webname = req.body.webname; - // var propietario = req.body.propietario; - // User.addUser(username, propietario, function(err, user){ - // console.log(username + " " + password); - res.render('form', { title: 'Form' }); - // }); -======= + router.post('/', function(req, res) { var webname = req.body.namepage; console.log(webname); @@ -63,7 +54,6 @@ router.post('/', function(req, res) { }); dbconfig.desconectar(); ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 }); module.exports = router; diff --git a/routes/index.js b/routes/index.js index 155c821..89bdd98 100644 --- a/routes/index.js +++ b/routes/index.js @@ -1,95 +1,20 @@ var express = require('express'); var router = express.Router(); -<<<<<<< HEAD -var userschema = require('../models/User') -var db = require('../lib/db'); -var User = db.mongoose.model('User', userschema); - var passport = require('passport'); - /* GET home page. */ router.get('/', function(req, res, next) { - res.render('login', { title: 'Login' }); - -}); -router.get('/index', function(req, res, next) { - res.render('index', { - title: 'Index', - user: req.user - }); - //console.log(req) -}); - - -//-------- Rutas para FORM - formulario que agrega páginas al catalogo -router.get('/form', function(req, res, next) { - res.render('form', { - title: 'Form', - user: req.user - }); -}); - -router.post('/form', function(req, res) { - // var webname = req.body.webname; - // var propietario = req.body.propietario; - // User.addUser(username, propietario, function(err, user){ - // console.log(username + " " + password); - res.render('form', { - title: 'Form', - user: req.user - }); - // }); + res.redirect('webadmin'); }); - -// ---- Rutas para Pages Stored -router.get('/stored', function(req, res, next) { - User.find({}, function(err, docs){ - if(err) throw(err) - else{ - res.render('stored', { - title: 'Stored', - user: req.user, - users: docs - }); - } - }) -}); - -// --- Ruta para Usuarios Administradores -router.get('/admin-users', function(req, res, next) { - User.find({}, function(err, docs){ - if(err) throw(err) - else{ - res.render('admin-users', { - title: 'Stored', - user: req.user, - users: docs - }); - } - }) -}); - -//Rutas para Social Login ----> - -//ruta para desloguear -router.get('/logout', function(req, res) { +router.get('/logout', function(req, res, next) { + //req.user = {} req.logout(); - res.redirect('/'); -}); - -======= -var passport = require('passport'); - -/* GET home page. */ -router.get('/', function(req, res, next) { - res.render('index', { title: 'Express' }); + res.redirect('/webadmin'); }); ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 // Ruta para autenticarse con Twitter (enlace de login) router.get('/auth/twitter', passport.authenticate('twitter')); // Ruta para autenticarse con Facebook (enlace de login) @@ -99,21 +24,14 @@ router.get('/auth/github', passport.authenticate('github', { scope: [ 'user:emai // En caso de fallo redirige a otra vista '/login' router.get('/auth/twitter/callback', passport.authenticate('twitter', -<<<<<<< HEAD - { successRedirect: '/', failureRedirect: '/login' } -======= + { successRedirect: '/session', failureRedirect: '/webadmin' } ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 + )); // Ruta de callback, a la que redirigirá tras autenticarse con Facebook. // En caso de fallo redirige a otra vista '/login' router.get('/auth/facebook/callback', passport.authenticate('facebook', -<<<<<<< HEAD - { successRedirect: '/index', failureRedirect: '/login' } -)); -router.get('/auth/github/callback', passport.authenticate('github', - { failureRedirect: '/login' }), -======= + { successRedirect: '/session', failureRedirect: '/webadmin' } )); router.get('/auth/github/callback', passport.authenticate('github', @@ -130,5 +48,5 @@ router.get('/auth/github/callback', passport.authenticate('github', ======= ); */ ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 + module.exports = router; diff --git a/routes/session.js b/routes/session.js index 25b45e4..8639785 100644 --- a/routes/session.js +++ b/routes/session.js @@ -1,12 +1,22 @@ var express = require('express'); var router = express.Router(); +//var mongoose = require('mongoose'); +//var db = require('./lib/db'); + +var db = require('../config/mongodb-config'); + router.get('/', function(req, res, next){ - res.render('session',{ - title: 'Index', - user: req.user - }); + if(req.user){ + + res.render('session',{ + title: 'Index', + user: req.user + }); + }else{ + res.redirect('/webadmin') + } }); diff --git a/routes/stored.js b/routes/stored.js index df44a5e..8c76903 100644 --- a/routes/stored.js +++ b/routes/stored.js @@ -1,17 +1,26 @@ var express = require('express'); var router = express.Router(); +var db = require('../config/mongodb-config'), + User = require('../models/user'); + router.get('/', function(req, res, next) { - User.find({}, function(err, docs){ - if(err) throw(err) - else{ - res.render('stored', { - title: 'Stored', - user: req.user, - users: docs + if(req.user){ + User.find({}, function(err, docs){ + if(err) throw(err) + else{ + res.render('stored', { + title: 'Stored', + user: req.user, + users: docs + }); + } }); } - }) + else{ + res.redirect('/webadmin') + } }); -module.exports = router; \ No newline at end of file +module.exports = router; + diff --git a/routes/webadmin.js b/routes/webadmin.js index ac8450f..125ca27 100644 --- a/routes/webadmin.js +++ b/routes/webadmin.js @@ -1,8 +1,12 @@ var express = require('express'); var router = express.Router(); + + + router.get("/", function(req, res, next){ //res.send('respond with a resource'); + res.render("login"); }); diff --git a/views/form.jade b/views/form.jade index d202c5b..0ec02f2 100644 --- a/views/form.jade +++ b/views/form.jade @@ -1,4 +1,3 @@ -<<<<<<< HEAD extends layout block content @@ -19,25 +18,3 @@ block content include ./models_jade/Section-main/template.jade include ./models_jade/Add-nueva-pagina/template.jade //- script(src="https://code.jquery.com/jquery-2.1.1.min.js") -======= -extends layout - -block content - //- h1= title - //- p Welcome to #{title} - //- form(action="/signup", method="post") - //- div - //- label Username - //- input(type="text", name="username") - //- br - //- div - //- label Password - //- input(type="password", name="password") - //- br - //- div - //- input(type="submit", value="sign up") - include ./models_jade/Header/template.jade - include ./models_jade/Section-main/template.jade - include ./models_jade/Add-nueva-pagina/template.jade - //- script(src="https://code.jquery.com/jquery-2.1.1.min.js") ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 diff --git a/views/index.jade b/views/index.jade index 1f35805..3d63b9a 100644 --- a/views/index.jade +++ b/views/index.jade @@ -1,15 +1,5 @@ extends layout block content -<<<<<<< HEAD - //- h1= title - //- p Welcome to #{title} - include ./models_jade/Header/template.jade - include ./models_jade/Section-main/template.jade - include ./models_jade/Bienvenido/template.jade - //- script(src="https://code.jquery.com/jquery-2.1.1.min.js") - //- script(src="./js/materialize.js") -======= h1= title p Welcome to #{title} ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 diff --git a/views/layout.jade b/views/layout.jade index 1609483..c1d5629 100644 --- a/views/layout.jade +++ b/views/layout.jade @@ -12,17 +12,11 @@ html(lang="en") title #{title} link(rel="stylesheet", href="/stylesheets/style.css") link(rel="stylesheet", href="/stylesheets/style-fonts.css") -<<<<<<< HEAD link(rel="stylesheet", href='https://fonts.googleapis.com/css?family=Playfair+Display:400,700,400italic,700italic|Abril+Fatface|Bevan|Alegreya+Sans:400,700,400italic,500italic,700italic|Francois+One|Libre+Baskerville:400,400italic,700|Lato:400,700,400italic,700italic|Merriweather:400,400italic,700,700italic|Merriweather+Sans:400,400italic,700|Open+Sans:400,400italic,700,700italic|Roboto+Condensed:400,400italic,700,700italic') -======= - //- link(rel="stylesheet", href='https://fonts.googleapis.com/css?family=Playfair+Display:400,700,400italic,700italic|Abril+Fatface|Bevan|Alegreya+Sans:400,700,400italic,500italic,700italic|Francois+One|Libre+Baskerville:400,400italic,700|Lato:400,700,400italic,700italic|Merriweather:400,400italic,700,700italic|Merriweather+Sans:400,400italic,700|Open+Sans:400,400italic,700,700italic|Roboto+Condensed:400,400italic,700,700italic') ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 meta(name="viewport", content="width=device-width, initial-scale=1.0") body main.Main block content -<<<<<<< HEAD + script(src="https://code.jquery.com/jquery-2.1.1.min.js") -======= - script(src="https://code.jquery.com/jquery-2.1.1.min.js") ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 + diff --git a/views/login.jade b/views/login.jade index de65c2c..b947f26 100644 --- a/views/login.jade +++ b/views/login.jade @@ -1,4 +1,3 @@ -<<<<<<< HEAD extends layout block content @@ -17,23 +16,3 @@ block content a(href='auth/github', class="linknone linksocial") Iniciar con Github //- .Section-item.box.flexbox-colwrp //- a(href='auth/facebook') Login con Facebook -======= -extends layout - -block content - include ./models_jade/Header/template.jade - //nav Sistema de Administración - include ./models_jade/Section-main/template.jade - .Section-secciones - .Section-item.box.flexbox-colwrp - .styleicon.icon-facebook - .titulo3.margin10.Font-francois.Fontcolor1.loginsocial - a(href='auth/facebook', class="linknone linksocial") Iniciar con Facebook - //.Section-secciones - .Section-item.box.flexbox-colwrp - .styleicon.icon-github - .titulo3.margin10.Font-francois.Fontcolor1.loginsocial - a(href='auth/github', class="linknone linksocial") Iniciar con Github - //- .Section-item.box.flexbox-colwrp - //- a(href='auth/facebook') Login con Facebook ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 diff --git a/views/models_jade/Admin-users/style.styl b/views/models_jade/Admin-users/style.styl index c7c213d..1ae533d 100644 --- a/views/models_jade/Admin-users/style.styl +++ b/views/models_jade/Admin-users/style.styl @@ -7,7 +7,6 @@ text-align justify .td margin-top 10px -<<<<<<< HEAD .facebook-label background-color #00f @@ -24,21 +23,3 @@ color white text-align center width 85px -======= - -.facebook-label - background-color #00f - padding 4px - border-radius 0px 5px - color white - text-align center - width 85px - -.github-label - background-color #000 - padding 4px - border-radius 0px 5px - color white - text-align center - width 85px ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 diff --git a/views/models_jade/Admin-users/template.jade b/views/models_jade/Admin-users/template.jade index 4ad5524..6a7fac9 100644 --- a/views/models_jade/Admin-users/template.jade +++ b/views/models_jade/Admin-users/template.jade @@ -15,17 +15,10 @@ section tr(class="tr") td(class="td") #{user.name} if(user.provider == "facebook") -<<<<<<< HEAD - td(class="td") - div.facebook-label #{user.provider} - else - td(class="td") -======= td(class="td") div.facebook-label #{user.provider} else td(class="td") ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 div.github-label #{user.provider} td(class="td") img(src="#{user.photo}", class="Table-user-photo") diff --git a/views/models_jade/styles/style.styl b/views/models_jade/styles/style.styl index dce0fb0..96d1111 100644 --- a/views/models_jade/styles/style.styl +++ b/views/models_jade/styles/style.styl @@ -79,12 +79,8 @@ body @import "../Header/style.styl" @import "../Card/style.styl" @import "../Bienvenido/style.styl" -<<<<<<< HEAD -// @import "../Pages-stored/style.styl" -======= //@import "../Pages-stored/style.styl" ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 @import "style-fuentes.styl" @@ -165,8 +161,5 @@ body width 90vw -<<<<<<< HEAD -@import "../Admin-users/style.styl" -======= + @import "../Admin-users/style.styl" ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 diff --git a/views/stored.jade b/views/stored.jade index ef85fba..f5a0521 100644 --- a/views/stored.jade +++ b/views/stored.jade @@ -1,4 +1,3 @@ -<<<<<<< HEAD extends layout block content @@ -6,12 +5,4 @@ block content include ./models_jade/Header/template.jade include ./models_jade/Section-main/template.jade include ./models_jade/Stored/template.jade -======= -extends layout - -block content - - include ./models_jade/Header/template.jade - include ./models_jade/Section-main/template.jade - include ./models_jade/Admin-users/template.jade ->>>>>>> d8d944f683a6c916ab93725f0d0d0296328a79b7 +