(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define([], factory); else if(typeof exports === 'object') exports["d3v4pp"] = factory(); else root["d3v4pp"] = factory(); })(this, () => { return /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "./node_modules/@remix-run/router/dist/router.js": /*!*******************************************************!*\ !*** ./node_modules/@remix-run/router/dist/router.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "AbortedDeferredError": () => (/* binding */ AbortedDeferredError), /* harmony export */ "Action": () => (/* binding */ Action), /* harmony export */ "ErrorResponse": () => (/* binding */ ErrorResponse), /* harmony export */ "IDLE_FETCHER": () => (/* binding */ IDLE_FETCHER), /* harmony export */ "IDLE_NAVIGATION": () => (/* binding */ IDLE_NAVIGATION), /* harmony export */ "UNSAFE_convertRoutesToDataRoutes": () => (/* binding */ convertRoutesToDataRoutes), /* harmony export */ "UNSAFE_getPathContributingMatches": () => (/* binding */ getPathContributingMatches), /* harmony export */ "createBrowserHistory": () => (/* binding */ createBrowserHistory), /* harmony export */ "createHashHistory": () => (/* binding */ createHashHistory), /* harmony export */ "createMemoryHistory": () => (/* binding */ createMemoryHistory), /* harmony export */ "createPath": () => (/* binding */ createPath), /* harmony export */ "createRouter": () => (/* binding */ createRouter), /* harmony export */ "defer": () => (/* binding */ defer), /* harmony export */ "generatePath": () => (/* binding */ generatePath), /* harmony export */ "getStaticContextFromError": () => (/* binding */ getStaticContextFromError), /* harmony export */ "getToPathname": () => (/* binding */ getToPathname), /* harmony export */ "invariant": () => (/* binding */ invariant), /* harmony export */ "isRouteErrorResponse": () => (/* binding */ isRouteErrorResponse), /* harmony export */ "joinPaths": () => (/* binding */ joinPaths), /* harmony export */ "json": () => (/* binding */ json), /* harmony export */ "matchPath": () => (/* binding */ matchPath), /* harmony export */ "matchRoutes": () => (/* binding */ matchRoutes), /* harmony export */ "normalizePathname": () => (/* binding */ normalizePathname), /* harmony export */ "parsePath": () => (/* binding */ parsePath), /* harmony export */ "redirect": () => (/* binding */ redirect), /* harmony export */ "resolvePath": () => (/* binding */ resolvePath), /* harmony export */ "resolveTo": () => (/* binding */ resolveTo), /* harmony export */ "stripBasename": () => (/* binding */ stripBasename), /* harmony export */ "unstable_createStaticHandler": () => (/* binding */ unstable_createStaticHandler), /* harmony export */ "warning": () => (/* binding */ warning) /* harmony export */ }); /** * @remix-run/router v1.0.3 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } //////////////////////////////////////////////////////////////////////////////// //#region Types and Constants //////////////////////////////////////////////////////////////////////////////// /** * Actions represent the type of change to a location value. */ var Action; (function (Action) { /** * A POP indicates a change to an arbitrary index in the history stack, such * as a back or forward navigation. It does not describe the direction of the * navigation, only that the current index changed. * * Note: This is the default action for newly created history objects. */ Action["Pop"] = "POP"; /** * A PUSH indicates a new entry being added to the history stack, such as when * a link is clicked and a new page loads. When this happens, all subsequent * entries in the stack are lost. */ Action["Push"] = "PUSH"; /** * A REPLACE indicates the entry at the current index in the history stack * being replaced by a new one. */ Action["Replace"] = "REPLACE"; })(Action || (Action = {})); const PopStateEventType = "popstate"; /** * Memory history stores the current location in memory. It is designed for use * in stateful non-browser environments like tests and React Native. */ function createMemoryHistory(options) { if (options === void 0) { options = {}; } let { initialEntries = ["/"], initialIndex, v5Compat = false } = options; let entries; // Declare so we can access from createMemoryLocation entries = initialEntries.map((entry, index) => createMemoryLocation(entry, typeof entry === "string" ? null : entry.state, index === 0 ? "default" : undefined)); let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex); let action = Action.Pop; let listener = null; function clampIndex(n) { return Math.min(Math.max(n, 0), entries.length - 1); } function getCurrentLocation() { return entries[index]; } function createMemoryLocation(to, state, key) { if (state === void 0) { state = null; } let location = createLocation(entries ? getCurrentLocation().pathname : "/", to, state, key); warning$1(location.pathname.charAt(0) === "/", "relative pathnames are not supported in memory history: " + JSON.stringify(to)); return location; } let history = { get index() { return index; }, get action() { return action; }, get location() { return getCurrentLocation(); }, createHref(to) { return typeof to === "string" ? to : createPath(to); }, encodeLocation(location) { return location; }, push(to, state) { action = Action.Push; let nextLocation = createMemoryLocation(to, state); index += 1; entries.splice(index, entries.length, nextLocation); if (v5Compat && listener) { listener({ action, location: nextLocation }); } }, replace(to, state) { action = Action.Replace; let nextLocation = createMemoryLocation(to, state); entries[index] = nextLocation; if (v5Compat && listener) { listener({ action, location: nextLocation }); } }, go(delta) { action = Action.Pop; index = clampIndex(index + delta); if (listener) { listener({ action, location: getCurrentLocation() }); } }, listen(fn) { listener = fn; return () => { listener = null; }; } }; return history; } /** * Browser history stores the location in regular URLs. This is the standard for * most web apps, but it requires some configuration on the server to ensure you * serve the same app at multiple URLs. * * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory */ function createBrowserHistory(options) { if (options === void 0) { options = {}; } function createBrowserLocation(window, globalHistory) { let { pathname, search, hash } = window.location; return createLocation("", { pathname, search, hash }, // state defaults to `null` because `window.history.state` does globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || "default"); } function createBrowserHref(window, to) { return typeof to === "string" ? to : createPath(to); } return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options); } /** * Hash history stores the location in window.location.hash. This makes it ideal * for situations where you don't want to send the location to the server for * some reason, either because you do cannot configure it or the URL space is * reserved for something else. * * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory */ function createHashHistory(options) { if (options === void 0) { options = {}; } function createHashLocation(window, globalHistory) { let { pathname = "/", search = "", hash = "" } = parsePath(window.location.hash.substr(1)); return createLocation("", { pathname, search, hash }, // state defaults to `null` because `window.history.state` does globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || "default"); } function createHashHref(window, to) { let base = window.document.querySelector("base"); let href = ""; if (base && base.getAttribute("href")) { let url = window.location.href; let hashIndex = url.indexOf("#"); href = hashIndex === -1 ? url : url.slice(0, hashIndex); } return href + "#" + (typeof to === "string" ? to : createPath(to)); } function validateHashLocation(location, to) { warning$1(location.pathname.charAt(0) === "/", "relative pathnames are not supported in hash history.push(" + JSON.stringify(to) + ")"); } return getUrlBasedHistory(createHashLocation, createHashHref, validateHashLocation, options); } //#endregion //////////////////////////////////////////////////////////////////////////////// //#region UTILS //////////////////////////////////////////////////////////////////////////////// function warning$1(cond, message) { if (!cond) { // eslint-disable-next-line no-console if (typeof console !== "undefined") console.warn(message); try { // Welcome to debugging history! // // This error is thrown as a convenience so you can more easily // find the source for a warning that appears in the console by // enabling "pause on exceptions" in your JavaScript debugger. throw new Error(message); // eslint-disable-next-line no-empty } catch (e) {} } } function createKey() { return Math.random().toString(36).substr(2, 8); } /** * For browser-based histories, we combine the state and key into an object */ function getHistoryState(location) { return { usr: location.state, key: location.key }; } /** * Creates a Location object with a unique key from the given Path */ function createLocation(current, to, state, key) { if (state === void 0) { state = null; } let location = _extends({ pathname: typeof current === "string" ? current : current.pathname, search: "", hash: "" }, typeof to === "string" ? parsePath(to) : to, { state, // TODO: This could be cleaned up. push/replace should probably just take // full Locations now and avoid the need to run through this flow at all // But that's a pretty big refactor to the current test suite so going to // keep as is for the time being and just let any incoming keys take precedence key: to && to.key || key || createKey() }); return location; } /** * Creates a string URL path from the given pathname, search, and hash components. */ function createPath(_ref) { let { pathname = "/", search = "", hash = "" } = _ref; if (search && search !== "?") pathname += search.charAt(0) === "?" ? search : "?" + search; if (hash && hash !== "#") pathname += hash.charAt(0) === "#" ? hash : "#" + hash; return pathname; } /** * Parses a string URL path into its separate pathname, search, and hash components. */ function parsePath(path) { let parsedPath = {}; if (path) { let hashIndex = path.indexOf("#"); if (hashIndex >= 0) { parsedPath.hash = path.substr(hashIndex); path = path.substr(0, hashIndex); } let searchIndex = path.indexOf("?"); if (searchIndex >= 0) { parsedPath.search = path.substr(searchIndex); path = path.substr(0, searchIndex); } if (path) { parsedPath.pathname = path; } } return parsedPath; } function createURL(location) { // window.location.origin is "null" (the literal string value) in Firefox // under certain conditions, notably when serving from a local HTML file // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297 let base = typeof window !== "undefined" && typeof window.location !== "undefined" && window.location.origin !== "null" ? window.location.origin : "unknown://unknown"; let href = typeof location === "string" ? location : createPath(location); return new URL(href, base); } function getUrlBasedHistory(getLocation, createHref, validateLocation, options) { if (options === void 0) { options = {}; } let { window = document.defaultView, v5Compat = false } = options; let globalHistory = window.history; let action = Action.Pop; let listener = null; function handlePop() { action = Action.Pop; if (listener) { listener({ action, location: history.location }); } } function push(to, state) { action = Action.Push; let location = createLocation(history.location, to, state); if (validateLocation) validateLocation(location, to); let historyState = getHistoryState(location); let url = history.createHref(location); // try...catch because iOS limits us to 100 pushState calls :/ try { globalHistory.pushState(historyState, "", url); } catch (error) { // They are going to lose state here, but there is no real // way to warn them about it since the page will refresh... window.location.assign(url); } if (v5Compat && listener) { listener({ action, location: history.location }); } } function replace(to, state) { action = Action.Replace; let location = createLocation(history.location, to, state); if (validateLocation) validateLocation(location, to); let historyState = getHistoryState(location); let url = history.createHref(location); globalHistory.replaceState(historyState, "", url); if (v5Compat && listener) { listener({ action, location: history.location }); } } let history = { get action() { return action; }, get location() { return getLocation(window, globalHistory); }, listen(fn) { if (listener) { throw new Error("A history only accepts one active listener"); } window.addEventListener(PopStateEventType, handlePop); listener = fn; return () => { window.removeEventListener(PopStateEventType, handlePop); listener = null; }; }, createHref(to) { return createHref(window, to); }, encodeLocation(location) { // Encode a Location the same way window.location would let url = createURL(createPath(location)); return _extends({}, location, { pathname: url.pathname, search: url.search, hash: url.hash }); }, push, replace, go(n) { return globalHistory.go(n); } }; return history; } //#endregion var ResultType; (function (ResultType) { ResultType["data"] = "data"; ResultType["deferred"] = "deferred"; ResultType["redirect"] = "redirect"; ResultType["error"] = "error"; })(ResultType || (ResultType = {})); function isIndexRoute(route) { return route.index === true; } // Walk the route tree generating unique IDs where necessary so we are working // solely with AgnosticDataRouteObject's within the Router function convertRoutesToDataRoutes(routes, parentPath, allIds) { if (parentPath === void 0) { parentPath = []; } if (allIds === void 0) { allIds = new Set(); } return routes.map((route, index) => { let treePath = [...parentPath, index]; let id = typeof route.id === "string" ? route.id : treePath.join("-"); invariant(route.index !== true || !route.children, "Cannot specify children on an index route"); invariant(!allIds.has(id), "Found a route id collision on id \"" + id + "\". Route " + "id's must be globally unique within Data Router usages"); allIds.add(id); if (isIndexRoute(route)) { let indexRoute = _extends({}, route, { id }); return indexRoute; } else { let pathOrLayoutRoute = _extends({}, route, { id, children: route.children ? convertRoutesToDataRoutes(route.children, treePath, allIds) : undefined }); return pathOrLayoutRoute; } }); } /** * Matches the given routes to a location and returns the match data. * * @see https://reactrouter.com/docs/en/v6/utils/match-routes */ function matchRoutes(routes, locationArg, basename) { if (basename === void 0) { basename = "/"; } let location = typeof locationArg === "string" ? parsePath(locationArg) : locationArg; let pathname = stripBasename(location.pathname || "/", basename); if (pathname == null) { return null; } let branches = flattenRoutes(routes); rankRouteBranches(branches); let matches = null; for (let i = 0; matches == null && i < branches.length; ++i) { matches = matchRouteBranch(branches[i], // Incoming pathnames are generally encoded from either window.location // or from router.navigate, but we want to match against the unencoded // paths in the route definitions. Memory router locations won't be // encoded here but there also shouldn't be anything to decode so this // should be a safe operation. This avoids needing matchRoutes to be // history-aware. safelyDecodeURI(pathname)); } return matches; } function flattenRoutes(routes, branches, parentsMeta, parentPath) { if (branches === void 0) { branches = []; } if (parentsMeta === void 0) { parentsMeta = []; } if (parentPath === void 0) { parentPath = ""; } routes.forEach((route, index) => { let meta = { relativePath: route.path || "", caseSensitive: route.caseSensitive === true, childrenIndex: index, route }; if (meta.relativePath.startsWith("/")) { invariant(meta.relativePath.startsWith(parentPath), "Absolute route path \"" + meta.relativePath + "\" nested under path " + ("\"" + parentPath + "\" is not valid. An absolute child route path ") + "must start with the combined path of all its parent routes."); meta.relativePath = meta.relativePath.slice(parentPath.length); } let path = joinPaths([parentPath, meta.relativePath]); let routesMeta = parentsMeta.concat(meta); // Add the children before adding this route to the array so we traverse the // route tree depth-first and child routes appear before their parents in // the "flattened" version. if (route.children && route.children.length > 0) { invariant( // Our types know better, but runtime JS may not! // @ts-expect-error route.index !== true, "Index routes must not have child routes. Please remove " + ("all child routes from route path \"" + path + "\".")); flattenRoutes(route.children, branches, routesMeta, path); } // Routes without a path shouldn't ever match by themselves unless they are // index routes, so don't add them to the list of possible branches. if (route.path == null && !route.index) { return; } branches.push({ path, score: computeScore(path, route.index), routesMeta }); }); return branches; } function rankRouteBranches(branches) { branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex))); } const paramRe = /^:\w+$/; const dynamicSegmentValue = 3; const indexRouteValue = 2; const emptySegmentValue = 1; const staticSegmentValue = 10; const splatPenalty = -2; const isSplat = s => s === "*"; function computeScore(path, index) { let segments = path.split("/"); let initialScore = segments.length; if (segments.some(isSplat)) { initialScore += splatPenalty; } if (index) { initialScore += indexRouteValue; } return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === "" ? emptySegmentValue : staticSegmentValue), initialScore); } function compareIndexes(a, b) { let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]); return siblings ? // If two routes are siblings, we should try to match the earlier sibling // first. This allows people to have fine-grained control over the matching // behavior by simply putting routes with identical paths in the order they // want them tried. a[a.length - 1] - b[b.length - 1] : // Otherwise, it doesn't really make sense to rank non-siblings by index, // so they sort equally. 0; } function matchRouteBranch(branch, pathname) { let { routesMeta } = branch; let matchedParams = {}; let matchedPathname = "/"; let matches = []; for (let i = 0; i < routesMeta.length; ++i) { let meta = routesMeta[i]; let end = i === routesMeta.length - 1; let remainingPathname = matchedPathname === "/" ? pathname : pathname.slice(matchedPathname.length) || "/"; let match = matchPath({ path: meta.relativePath, caseSensitive: meta.caseSensitive, end }, remainingPathname); if (!match) return null; Object.assign(matchedParams, match.params); let route = meta.route; matches.push({ // TODO: Can this as be avoided? params: matchedParams, pathname: joinPaths([matchedPathname, match.pathname]), pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])), route }); if (match.pathnameBase !== "/") { matchedPathname = joinPaths([matchedPathname, match.pathnameBase]); } } return matches; } /** * Returns a path with params interpolated. * * @see https://reactrouter.com/docs/en/v6/utils/generate-path */ function generatePath(path, params) { if (params === void 0) { params = {}; } return path.replace(/:(\w+)/g, (_, key) => { invariant(params[key] != null, "Missing \":" + key + "\" param"); return params[key]; }).replace(/(\/?)\*/, (_, prefix, __, str) => { const star = "*"; if (params[star] == null) { // If no splat was provided, trim the trailing slash _unless_ it's // the entire path return str === "/*" ? "/" : ""; } // Apply the splat return "" + prefix + params[star]; }); } /** * Performs pattern matching on a URL pathname and returns information about * the match. * * @see https://reactrouter.com/docs/en/v6/utils/match-path */ function matchPath(pattern, pathname) { if (typeof pattern === "string") { pattern = { path: pattern, caseSensitive: false, end: true }; } let [matcher, paramNames] = compilePath(pattern.path, pattern.caseSensitive, pattern.end); let match = pathname.match(matcher); if (!match) return null; let matchedPathname = match[0]; let pathnameBase = matchedPathname.replace(/(.)\/+$/, "$1"); let captureGroups = match.slice(1); let params = paramNames.reduce((memo, paramName, index) => { // We need to compute the pathnameBase here using the raw splat value // instead of using params["*"] later because it will be decoded then if (paramName === "*") { let splatValue = captureGroups[index] || ""; pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\/+$/, "$1"); } memo[paramName] = safelyDecodeURIComponent(captureGroups[index] || "", paramName); return memo; }, {}); return { params, pathname: matchedPathname, pathnameBase, pattern }; } function compilePath(path, caseSensitive, end) { if (caseSensitive === void 0) { caseSensitive = false; } if (end === void 0) { end = true; } warning(path === "*" || !path.endsWith("*") || path.endsWith("/*"), "Route path \"" + path + "\" will be treated as if it were " + ("\"" + path.replace(/\*$/, "/*") + "\" because the `*` character must ") + "always follow a `/` in the pattern. To get rid of this warning, " + ("please change the route path to \"" + path.replace(/\*$/, "/*") + "\".")); let paramNames = []; let regexpSource = "^" + path.replace(/\/*\*?$/, "") // Ignore trailing / and /*, we'll handle it below .replace(/^\/*/, "/") // Make sure it has a leading / .replace(/[\\.*+^$?{}|()[\]]/g, "\\$&") // Escape special regex chars .replace(/:(\w+)/g, (_, paramName) => { paramNames.push(paramName); return "([^\\/]+)"; }); if (path.endsWith("*")) { paramNames.push("*"); regexpSource += path === "*" || path === "/*" ? "(.*)$" // Already matched the initial /, just match the rest : "(?:\\/(.+)|\\/*)$"; // Don't include the / in params["*"] } else if (end) { // When matching to the end, ignore trailing slashes regexpSource += "\\/*$"; } else if (path !== "" && path !== "/") { // If our path is non-empty and contains anything beyond an initial slash, // then we have _some_ form of path in our regex so we should expect to // match only if we find the end of this path segment. Look for an optional // non-captured trailing slash (to match a portion of the URL) or the end // of the path (if we've matched to the end). We used to do this with a // word boundary but that gives false positives on routes like // /user-preferences since `-` counts as a word boundary. regexpSource += "(?:(?=\\/|$))"; } else ; let matcher = new RegExp(regexpSource, caseSensitive ? undefined : "i"); return [matcher, paramNames]; } function safelyDecodeURI(value) { try { return decodeURI(value); } catch (error) { warning(false, "The URL path \"" + value + "\" could not be decoded because it is is a " + "malformed URL segment. This is probably due to a bad percent " + ("encoding (" + error + ").")); return value; } } function safelyDecodeURIComponent(value, paramName) { try { return decodeURIComponent(value); } catch (error) { warning(false, "The value for the URL param \"" + paramName + "\" will not be decoded because" + (" the string \"" + value + "\" is a malformed URL segment. This is probably") + (" due to a bad percent encoding (" + error + ").")); return value; } } /** * @private */ function stripBasename(pathname, basename) { if (basename === "/") return pathname; if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) { return null; } // We want to leave trailing slash behavior in the user's control, so if they // specify a basename with a trailing slash, we should support it let startIndex = basename.endsWith("/") ? basename.length - 1 : basename.length; let nextChar = pathname.charAt(startIndex); if (nextChar && nextChar !== "/") { // pathname does not start with basename/ return null; } return pathname.slice(startIndex) || "/"; } function invariant(value, message) { if (value === false || value === null || typeof value === "undefined") { throw new Error(message); } } /** * @private */ function warning(cond, message) { if (!cond) { // eslint-disable-next-line no-console if (typeof console !== "undefined") console.warn(message); try { // Welcome to debugging React Router! // // This error is thrown as a convenience so you can more easily // find the source for a warning that appears in the console by // enabling "pause on exceptions" in your JavaScript debugger. throw new Error(message); // eslint-disable-next-line no-empty } catch (e) {} } } /** * Returns a resolved path object relative to the given pathname. * * @see https://reactrouter.com/docs/en/v6/utils/resolve-path */ function resolvePath(to, fromPathname) { if (fromPathname === void 0) { fromPathname = "/"; } let { pathname: toPathname, search = "", hash = "" } = typeof to === "string" ? parsePath(to) : to; let pathname = toPathname ? toPathname.startsWith("/") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname; return { pathname, search: normalizeSearch(search), hash: normalizeHash(hash) }; } function resolvePathname(relativePath, fromPathname) { let segments = fromPathname.replace(/\/+$/, "").split("/"); let relativeSegments = relativePath.split("/"); relativeSegments.forEach(segment => { if (segment === "..") { // Keep the root "" segment so the pathname starts at / if (segments.length > 1) segments.pop(); } else if (segment !== ".") { segments.push(segment); } }); return segments.length > 1 ? segments.join("/") : "/"; } function getInvalidPathError(char, field, dest, path) { return "Cannot include a '" + char + "' character in a manually specified " + ("`to." + field + "` field [" + JSON.stringify(path) + "]. Please separate it out to the ") + ("`to." + dest + "` field. Alternatively you may provide the full path as ") + "a string in and the router will parse it for you."; } /** * @private * * When processing relative navigation we want to ignore ancestor routes that * do not contribute to the path, such that index/pathless layout routes don't * interfere. * * For example, when moving a route element into an index route and/or a * pathless layout route, relative link behavior contained within should stay * the same. Both of the following examples should link back to the root: * * * * * * * * }> // <-- Does not contribute * // <-- Does not contribute * * */ function getPathContributingMatches(matches) { return matches.filter((match, index) => index === 0 || match.route.path && match.route.path.length > 0); } /** * @private */ function resolveTo(toArg, routePathnames, locationPathname, isPathRelative) { if (isPathRelative === void 0) { isPathRelative = false; } let to; if (typeof toArg === "string") { to = parsePath(toArg); } else { to = _extends({}, toArg); invariant(!to.pathname || !to.pathname.includes("?"), getInvalidPathError("?", "pathname", "search", to)); invariant(!to.pathname || !to.pathname.includes("#"), getInvalidPathError("#", "pathname", "hash", to)); invariant(!to.search || !to.search.includes("#"), getInvalidPathError("#", "search", "hash", to)); } let isEmptyPath = toArg === "" || to.pathname === ""; let toPathname = isEmptyPath ? "/" : to.pathname; let from; // Routing is relative to the current pathname if explicitly requested. // // If a pathname is explicitly provided in `to`, it should be relative to the // route context. This is explained in `Note on `` values` in our // migration guide from v5 as a means of disambiguation between `to` values // that begin with `/` and those that do not. However, this is problematic for // `to` values that do not provide a pathname. `to` can simply be a search or // hash string, in which case we should assume that the navigation is relative // to the current location's pathname and *not* the route pathname. if (isPathRelative || toPathname == null) { from = locationPathname; } else { let routePathnameIndex = routePathnames.length - 1; if (toPathname.startsWith("..")) { let toSegments = toPathname.split("/"); // Each leading .. segment means "go up one route" instead of "go up one // URL segment". This is a key difference from how works and a // major reason we call this a "to" value instead of a "href". while (toSegments[0] === "..") { toSegments.shift(); routePathnameIndex -= 1; } to.pathname = toSegments.join("/"); } // If there are more ".." segments than parent routes, resolve relative to // the root / URL. from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : "/"; } let path = resolvePath(to, from); // Ensure the pathname has a trailing slash if the original "to" had one let hasExplicitTrailingSlash = toPathname && toPathname !== "/" && toPathname.endsWith("/"); // Or if this was a link to the current path which has a trailing slash let hasCurrentTrailingSlash = (isEmptyPath || toPathname === ".") && locationPathname.endsWith("/"); if (!path.pathname.endsWith("/") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) { path.pathname += "/"; } return path; } /** * @private */ function getToPathname(to) { // Empty strings should be treated the same as / paths return to === "" || to.pathname === "" ? "/" : typeof to === "string" ? parsePath(to).pathname : to.pathname; } /** * @private */ const joinPaths = paths => paths.join("/").replace(/\/\/+/g, "/"); /** * @private */ const normalizePathname = pathname => pathname.replace(/\/+$/, "").replace(/^\/*/, "/"); /** * @private */ const normalizeSearch = search => !search || search === "?" ? "" : search.startsWith("?") ? search : "?" + search; /** * @private */ const normalizeHash = hash => !hash || hash === "#" ? "" : hash.startsWith("#") ? hash : "#" + hash; /** * This is a shortcut for creating `application/json` responses. Converts `data` * to JSON and sets the `Content-Type` header. */ const json = function json(data, init) { if (init === void 0) { init = {}; } let responseInit = typeof init === "number" ? { status: init } : init; let headers = new Headers(responseInit.headers); if (!headers.has("Content-Type")) { headers.set("Content-Type", "application/json; charset=utf-8"); } return new Response(JSON.stringify(data), _extends({}, responseInit, { headers })); }; class AbortedDeferredError extends Error {} class DeferredData { constructor(data) { this.pendingKeys = new Set(); this.subscriber = undefined; invariant(data && typeof data === "object" && !Array.isArray(data), "defer() only accepts plain objects"); // Set up an AbortController + Promise we can race against to exit early // cancellation let reject; this.abortPromise = new Promise((_, r) => reject = r); this.controller = new AbortController(); let onAbort = () => reject(new AbortedDeferredError("Deferred data aborted")); this.unlistenAbortSignal = () => this.controller.signal.removeEventListener("abort", onAbort); this.controller.signal.addEventListener("abort", onAbort); this.data = Object.entries(data).reduce((acc, _ref) => { let [key, value] = _ref; return Object.assign(acc, { [key]: this.trackPromise(key, value) }); }, {}); } trackPromise(key, value) { if (!(value instanceof Promise)) { return value; } this.pendingKeys.add(key); // We store a little wrapper promise that will be extended with // _data/_error props upon resolve/reject let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, null, data), error => this.onSettle(promise, key, error)); // Register rejection listeners to avoid uncaught promise rejections on // errors or aborted deferred values promise.catch(() => {}); Object.defineProperty(promise, "_tracked", { get: () => true }); return promise; } onSettle(promise, key, error, data) { if (this.controller.signal.aborted && error instanceof AbortedDeferredError) { this.unlistenAbortSignal(); Object.defineProperty(promise, "_error", { get: () => error }); return Promise.reject(error); } this.pendingKeys.delete(key); if (this.done) { // Nothing left to abort! this.unlistenAbortSignal(); } const subscriber = this.subscriber; if (error) { Object.defineProperty(promise, "_error", { get: () => error }); subscriber && subscriber(false); return Promise.reject(error); } Object.defineProperty(promise, "_data", { get: () => data }); subscriber && subscriber(false); return data; } subscribe(fn) { this.subscriber = fn; } cancel() { this.controller.abort(); this.pendingKeys.forEach((v, k) => this.pendingKeys.delete(k)); let subscriber = this.subscriber; subscriber && subscriber(true); } async resolveData(signal) { let aborted = false; if (!this.done) { let onAbort = () => this.cancel(); signal.addEventListener("abort", onAbort); aborted = await new Promise(resolve => { this.subscribe(aborted => { signal.removeEventListener("abort", onAbort); if (aborted || this.done) { resolve(aborted); } }); }); } return aborted; } get done() { return this.pendingKeys.size === 0; } get unwrappedData() { invariant(this.data !== null && this.done, "Can only unwrap data on initialized and settled deferreds"); return Object.entries(this.data).reduce((acc, _ref2) => { let [key, value] = _ref2; return Object.assign(acc, { [key]: unwrapTrackedPromise(value) }); }, {}); } } function isTrackedPromise(value) { return value instanceof Promise && value._tracked === true; } function unwrapTrackedPromise(value) { if (!isTrackedPromise(value)) { return value; } if (value._error) { throw value._error; } return value._data; } function defer(data) { return new DeferredData(data); } /** * A redirect response. Sets the status code and the `Location` header. * Defaults to "302 Found". */ const redirect = function redirect(url, init) { if (init === void 0) { init = 302; } let responseInit = init; if (typeof responseInit === "number") { responseInit = { status: responseInit }; } else if (typeof responseInit.status === "undefined") { responseInit.status = 302; } let headers = new Headers(responseInit.headers); headers.set("Location", url); return new Response(null, _extends({}, responseInit, { headers })); }; /** * @private * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies */ class ErrorResponse { constructor(status, statusText, data) { this.status = status; this.statusText = statusText || ""; this.data = data; } } /** * Check if the given error is an ErrorResponse generated from a 4xx/5xx * Response throw from an action/loader */ function isRouteErrorResponse(e) { return e instanceof ErrorResponse; } const IDLE_NAVIGATION = { state: "idle", location: undefined, formMethod: undefined, formAction: undefined, formEncType: undefined, formData: undefined }; const IDLE_FETCHER = { state: "idle", data: undefined, formMethod: undefined, formAction: undefined, formEncType: undefined, formData: undefined }; const isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined"; const isServer = !isBrowser; //#endregion //////////////////////////////////////////////////////////////////////////////// //#region createRouter //////////////////////////////////////////////////////////////////////////////// /** * Create a router and listen to history POP navigations */ function createRouter(init) { invariant(init.routes.length > 0, "You must provide a non-empty routes array to createRouter"); let dataRoutes = convertRoutesToDataRoutes(init.routes); // Cleanup function for history let unlistenHistory = null; // Externally-provided functions to call on all state changes let subscribers = new Set(); // Externally-provided object to hold scroll restoration locations during routing let savedScrollPositions = null; // Externally-provided function to get scroll restoration keys let getScrollRestorationKey = null; // Externally-provided function to get current scroll position let getScrollPosition = null; // One-time flag to control the initial hydration scroll restoration. Because // we don't get the saved positions from until _after_ // the initial render, we need to manually trigger a separate updateState to // send along the restoreScrollPosition let initialScrollRestored = false; let initialMatches = matchRoutes(dataRoutes, init.history.location, init.basename); let initialErrors = null; if (initialMatches == null) { // If we do not match a user-provided-route, fall back to the root // to allow the error boundary to take over let { matches, route, error } = getNotFoundMatches(dataRoutes); initialMatches = matches; initialErrors = { [route.id]: error }; } let initialized = !initialMatches.some(m => m.route.loader) || init.hydrationData != null; let router; let state = { historyAction: init.history.action, location: init.history.location, matches: initialMatches, initialized, navigation: IDLE_NAVIGATION, restoreScrollPosition: null, preventScrollReset: false, revalidation: "idle", loaderData: init.hydrationData && init.hydrationData.loaderData || {}, actionData: init.hydrationData && init.hydrationData.actionData || null, errors: init.hydrationData && init.hydrationData.errors || initialErrors, fetchers: new Map() }; // -- Stateful internal variables to manage navigations -- // Current navigation in progress (to be committed in completeNavigation) let pendingAction = Action.Pop; // Should the current navigation prevent the scroll reset if scroll cannot // be restored? let pendingPreventScrollReset = false; // AbortController for the active navigation let pendingNavigationController; // We use this to avoid touching history in completeNavigation if a // revalidation is entirely uninterrupted let isUninterruptedRevalidation = false; // Use this internal flag to force revalidation of all loaders: // - submissions (completed or interrupted) // - useRevalidate() // - X-Remix-Revalidate (from redirect) let isRevalidationRequired = false; // Use this internal array to capture routes that require revalidation due // to a cancelled deferred on action submission let cancelledDeferredRoutes = []; // Use this internal array to capture fetcher loads that were cancelled by an // action navigation and require revalidation let cancelledFetcherLoads = []; // AbortControllers for any in-flight fetchers let fetchControllers = new Map(); // Track loads based on the order in which they started let incrementingLoadId = 0; // Track the outstanding pending navigation data load to be compared against // the globally incrementing load when a fetcher load lands after a completed // navigation let pendingNavigationLoadId = -1; // Fetchers that triggered data reloads as a result of their actions let fetchReloadIds = new Map(); // Fetchers that triggered redirect navigations from their actions let fetchRedirectIds = new Set(); // Most recent href/match for fetcher.load calls for fetchers let fetchLoadMatches = new Map(); // Store DeferredData instances for active route matches. When a // route loader returns defer() we stick one in here. Then, when a nested // promise resolves we update loaderData. If a new navigation starts we // cancel active deferreds for eliminated routes. let activeDeferreds = new Map(); // Initialize the router, all side effects should be kicked off from here. // Implemented as a Fluent API for ease of: // let router = createRouter(init).initialize(); function initialize() { // If history informs us of a POP navigation, start the navigation but do not update // state. We'll update our own state once the navigation completes unlistenHistory = init.history.listen(_ref => { let { action: historyAction, location } = _ref; return startNavigation(historyAction, location); }); // Kick off initial data load if needed. Use Pop to avoid modifying history if (!state.initialized) { startNavigation(Action.Pop, state.location); } return router; } // Clean up a router and it's side effects function dispose() { if (unlistenHistory) { unlistenHistory(); } subscribers.clear(); pendingNavigationController && pendingNavigationController.abort(); state.fetchers.forEach((_, key) => deleteFetcher(key)); } // Subscribe to state updates for the router function subscribe(fn) { subscribers.add(fn); return () => subscribers.delete(fn); } // Update our state and notify the calling context of the change function updateState(newState) { state = _extends({}, state, newState); subscribers.forEach(subscriber => subscriber(state)); } // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION // and setting state.[historyAction/location/matches] to the new route. // - Location is a required param // - Navigation will always be set to IDLE_NAVIGATION // - Can pass any other state in newState function completeNavigation(location, newState) { var _state$navigation$for; // Deduce if we're in a loading/actionReload state: // - We have committed actionData in the store // - The current navigation was a submission // - We're past the submitting state and into the loading state // - The location we've finished loading is different from the submission // location, indicating we redirected from the action (avoids false // positives for loading/submissionRedirect when actionData returned // on a prior submission) let isActionReload = state.actionData != null && state.navigation.formMethod != null && state.navigation.state === "loading" && ((_state$navigation$for = state.navigation.formAction) == null ? void 0 : _state$navigation$for.split("?")[0]) === location.pathname; // Always preserve any existing loaderData from re-used routes let newLoaderData = newState.loaderData ? { loaderData: mergeLoaderData(state.loaderData, newState.loaderData, newState.matches || []) } : {}; updateState(_extends({}, isActionReload ? {} : { actionData: null }, newState, newLoaderData, { historyAction: pendingAction, location, initialized: true, navigation: IDLE_NAVIGATION, revalidation: "idle", // Don't restore on submission navigations restoreScrollPosition: state.navigation.formData ? false : getSavedScrollPosition(location, newState.matches || state.matches), preventScrollReset: pendingPreventScrollReset })); if (isUninterruptedRevalidation) ; else if (pendingAction === Action.Pop) ; else if (pendingAction === Action.Push) { init.history.push(location, location.state); } else if (pendingAction === Action.Replace) { init.history.replace(location, location.state); } // Reset stateful navigation vars pendingAction = Action.Pop; pendingPreventScrollReset = false; isUninterruptedRevalidation = false; isRevalidationRequired = false; cancelledDeferredRoutes = []; cancelledFetcherLoads = []; } // Trigger a navigation event, which can either be a numerical POP or a PUSH // replace with an optional submission async function navigate(to, opts) { if (typeof to === "number") { init.history.go(to); return; } let { path, submission, error } = normalizeNavigateOptions(to, opts); let location = createLocation(state.location, path, opts && opts.state); // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded // URL from window.location, so we need to encode it here so the behavior // remains the same as POP and non-data-router usages. new URL() does all // the same encoding we'd get from a history.pushState/window.location read // without having to touch history location = init.history.encodeLocation(location); let historyAction = (opts && opts.replace) === true || submission != null ? Action.Replace : Action.Push; let preventScrollReset = opts && "preventScrollReset" in opts ? opts.preventScrollReset === true : undefined; return await startNavigation(historyAction, location, { submission, // Send through the formData serialization error if we have one so we can // render at the right error boundary after we match routes pendingError: error, preventScrollReset, replace: opts && opts.replace }); } // Revalidate all current loaders. If a navigation is in progress or if this // is interrupted by a navigation, allow this to "succeed" by calling all // loaders during the next loader round function revalidate() { interruptActiveLoads(); updateState({ revalidation: "loading" }); // If we're currently submitting an action, we don't need to start a new // navigation, we'll just let the follow up loader execution call all loaders if (state.navigation.state === "submitting") { return; } // If we're currently in an idle state, start a new navigation for the current // action/location and mark it as uninterrupted, which will skip the history // update in completeNavigation if (state.navigation.state === "idle") { startNavigation(state.historyAction, state.location, { startUninterruptedRevalidation: true }); return; } // Otherwise, if we're currently in a loading state, just start a new // navigation to the navigation.location but do not trigger an uninterrupted // revalidation so that history correctly updates once the navigation completes startNavigation(pendingAction || state.historyAction, state.navigation.location, { overrideNavigation: state.navigation }); } // Start a navigation to the given action/location. Can optionally provide a // overrideNavigation which will override the normalLoad in the case of a redirect // navigation async function startNavigation(historyAction, location, opts) { // Abort any in-progress navigations and start a new one. Unset any ongoing // uninterrupted revalidations unless told otherwise, since we want this // new navigation to update history normally pendingNavigationController && pendingNavigationController.abort(); pendingNavigationController = null; pendingAction = historyAction; isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true; // Save the current scroll position every time we start a new navigation, // and track whether we should reset scroll on completion saveScrollPosition(state.location, state.matches); pendingPreventScrollReset = (opts && opts.preventScrollReset) === true; let loadingNavigation = opts && opts.overrideNavigation; let matches = matchRoutes(dataRoutes, location, init.basename); // Short circuit with a 404 on the root error boundary if we match nothing if (!matches) { let { matches: notFoundMatches, route, error } = getNotFoundMatches(dataRoutes); // Cancel all pending deferred on 404s since we don't keep any routes cancelActiveDeferreds(); completeNavigation(location, { matches: notFoundMatches, loaderData: {}, errors: { [route.id]: error } }); return; } // Short circuit if it's only a hash change if (isHashChangeOnly(state.location, location)) { completeNavigation(location, { matches }); return; } // Create a controller/Request for this navigation pendingNavigationController = new AbortController(); let request = createRequest(location, pendingNavigationController.signal, opts && opts.submission); let pendingActionData; let pendingError; if (opts && opts.pendingError) { // If we have a pendingError, it means the user attempted a GET submission // with binary FormData so assign here and skip to handleLoaders. That // way we handle calling loaders above the boundary etc. It's not really // different from an actionError in that sense. pendingError = { [findNearestBoundary(matches).route.id]: opts.pendingError }; } else if (opts && opts.submission) { // Call action if we received an action submission let actionOutput = await handleAction(request, location, opts.submission, matches, { replace: opts.replace }); if (actionOutput.shortCircuited) { return; } pendingActionData = actionOutput.pendingActionData; pendingError = actionOutput.pendingActionError; let navigation = _extends({ state: "loading", location }, opts.submission); loadingNavigation = navigation; } // Call loaders let { shortCircuited, loaderData, errors } = await handleLoaders(request, location, matches, loadingNavigation, opts && opts.submission, opts && opts.replace, pendingActionData, pendingError); if (shortCircuited) { return; } // Clean up now that the action/loaders have completed. Don't clean up if // we short circuited because pendingNavigationController will have already // been assigned to a new controller for the next navigation pendingNavigationController = null; completeNavigation(location, { matches, loaderData, errors }); } // Call the action matched by the leaf route for this navigation and handle // redirects/errors async function handleAction(request, location, submission, matches, opts) { interruptActiveLoads(); // Put us in a submitting state let navigation = _extends({ state: "submitting", location }, submission); updateState({ navigation }); // Call our action and get the result let result; let actionMatch = getTargetMatch(matches, location); if (!actionMatch.route.action) { result = getMethodNotAllowedResult(location); } else { result = await callLoaderOrAction("action", request, actionMatch, matches, router.basename); if (request.signal.aborted) { return { shortCircuited: true }; } } if (isRedirectResult(result)) { let redirectNavigation = _extends({ state: "loading", location: createLocation(state.location, result.location) }, submission); await startRedirectNavigation(result, redirectNavigation, opts && opts.replace); return { shortCircuited: true }; } if (isErrorResult(result)) { // Store off the pending error - we use it to determine which loaders // to call and will commit it when we complete the navigation let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id); // By default, all submissions are REPLACE navigations, but if the // action threw an error that'll be rendered in an errorElement, we fall // back to PUSH so that the user can use the back button to get back to // the pre-submission form location to try again if ((opts && opts.replace) !== true) { pendingAction = Action.Push; } return { pendingActionError: { [boundaryMatch.route.id]: result.error } }; } if (isDeferredResult(result)) { throw new Error("defer() is not supported in actions"); } return { pendingActionData: { [actionMatch.route.id]: result.data } }; } // Call all applicable loaders for the given matches, handling redirects, // errors, etc. async function handleLoaders(request, location, matches, overrideNavigation, submission, replace, pendingActionData, pendingError) { // Figure out the right navigation we want to use for data loading let loadingNavigation = overrideNavigation; if (!loadingNavigation) { let navigation = { state: "loading", location, formMethod: undefined, formAction: undefined, formEncType: undefined, formData: undefined }; loadingNavigation = navigation; } let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(state, matches, submission, location, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, pendingActionData, pendingError, fetchLoadMatches); // Cancel pending deferreds for no-longer-matched routes or routes we're // about to reload. Note that if this is an action reload we would have // already cancelled all pending deferreds so this would be a no-op cancelActiveDeferreds(routeId => !(matches && matches.some(m => m.route.id === routeId)) || matchesToLoad && matchesToLoad.some(m => m.route.id === routeId)); // Short circuit if we have no loaders to run if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) { completeNavigation(location, { matches, loaderData: mergeLoaderData(state.loaderData, {}, matches), // Commit pending error if we're short circuiting errors: pendingError || null, actionData: pendingActionData || null }); return { shortCircuited: true }; } // If this is an uninterrupted revalidation, we remain in our current idle // state. If not, we need to switch to our loading state and load data, // preserving any new action data or existing action data (in the case of // a revalidation interrupting an actionReload) if (!isUninterruptedRevalidation) { revalidatingFetchers.forEach(_ref2 => { let [key] = _ref2; let fetcher = state.fetchers.get(key); let revalidatingFetcher = { state: "loading", data: fetcher && fetcher.data, formMethod: undefined, formAction: undefined, formEncType: undefined, formData: undefined }; state.fetchers.set(key, revalidatingFetcher); }); updateState(_extends({ navigation: loadingNavigation, actionData: pendingActionData || state.actionData || null }, revalidatingFetchers.length > 0 ? { fetchers: new Map(state.fetchers) } : {})); } pendingNavigationLoadId = ++incrementingLoadId; revalidatingFetchers.forEach(_ref3 => { let [key] = _ref3; return fetchControllers.set(key, pendingNavigationController); }); let { results, loaderResults, fetcherResults } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, request); if (request.signal.aborted) { return { shortCircuited: true }; } // Clean up _after_ loaders have completed. Don't clean up if we short // circuited because fetchControllers would have been aborted and // reassigned to new controllers for the next navigation revalidatingFetchers.forEach(_ref4 => { let [key] = _ref4; return fetchControllers.delete(key); }); // If any loaders returned a redirect Response, start a new REPLACE navigation let redirect = findRedirect(results); if (redirect) { let redirectNavigation = getLoaderRedirect(state, redirect); await startRedirectNavigation(redirect, redirectNavigation, replace); return { shortCircuited: true }; } // Process and commit output from loaders let { loaderData, errors } = processLoaderData(state, matches, matchesToLoad, loaderResults, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds); // Wire up subscribers to update loaderData as promises settle activeDeferreds.forEach((deferredData, routeId) => { deferredData.subscribe(aborted => { // Note: No need to updateState here since the TrackedPromise on // loaderData is stable across resolve/reject // Remove this instance if we were aborted or if promises have settled if (aborted || deferredData.done) { activeDeferreds.delete(routeId); } }); }); markFetchRedirectsDone(); let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId); return _extends({ loaderData, errors }, didAbortFetchLoads || revalidatingFetchers.length > 0 ? { fetchers: new Map(state.fetchers) } : {}); } function getFetcher(key) { return state.fetchers.get(key) || IDLE_FETCHER; } // Trigger a fetcher load/submit for the given fetcher key function fetch(key, routeId, href, opts) { if (isServer) { throw new Error("router.fetch() was called during the server render, but it shouldn't be. " + "You are likely calling a useFetcher() method in the body of your component. " + "Try moving it to a useEffect or a callback."); } if (fetchControllers.has(key)) abortFetcher(key); let matches = matchRoutes(dataRoutes, href, init.basename); if (!matches) { setFetcherError(key, routeId, new ErrorResponse(404, "Not Found", null)); return; } let { path, submission } = normalizeNavigateOptions(href, opts, true); let match = getTargetMatch(matches, path); if (submission) { handleFetcherAction(key, routeId, path, match, matches, submission); return; } // Store off the match so we can call it's shouldRevalidate on subsequent // revalidations fetchLoadMatches.set(key, [path, match, matches]); handleFetcherLoader(key, routeId, path, match, matches); } // Call the action for the matched fetcher.submit(), and then handle redirects, // errors, and revalidation async function handleFetcherAction(key, routeId, path, match, requestMatches, submission) { interruptActiveLoads(); fetchLoadMatches.delete(key); if (!match.route.action) { let { error } = getMethodNotAllowedResult(path); setFetcherError(key, routeId, error); return; } // Put this fetcher into it's submitting state let existingFetcher = state.fetchers.get(key); let fetcher = _extends({ state: "submitting" }, submission, { data: existingFetcher && existingFetcher.data }); state.fetchers.set(key, fetcher); updateState({ fetchers: new Map(state.fetchers) }); // Call the action for the fetcher let abortController = new AbortController(); let fetchRequest = createRequest(path, abortController.signal, submission); fetchControllers.set(key, abortController); let actionResult = await callLoaderOrAction("action", fetchRequest, match, requestMatches, router.basename); if (fetchRequest.signal.aborted) { // We can delete this so long as we weren't aborted by ou our own fetcher // re-submit which would have put _new_ controller is in fetchControllers if (fetchControllers.get(key) === abortController) { fetchControllers.delete(key); } return; } if (isRedirectResult(actionResult)) { fetchControllers.delete(key); fetchRedirectIds.add(key); let loadingFetcher = _extends({ state: "loading" }, submission, { data: undefined }); state.fetchers.set(key, loadingFetcher); updateState({ fetchers: new Map(state.fetchers) }); let redirectNavigation = _extends({ state: "loading", location: createLocation(state.location, actionResult.location) }, submission); await startRedirectNavigation(actionResult, redirectNavigation); return; } // Process any non-redirect errors thrown if (isErrorResult(actionResult)) { setFetcherError(key, routeId, actionResult.error); return; } if (isDeferredResult(actionResult)) { invariant(false, "defer() is not supported in actions"); } // Start the data load for current matches, or the next location if we're // in the middle of a navigation let nextLocation = state.navigation.location || state.location; let revalidationRequest = createRequest(nextLocation, abortController.signal); let matches = state.navigation.state !== "idle" ? matchRoutes(dataRoutes, state.navigation.location, init.basename) : state.matches; invariant(matches, "Didn't find any matches after fetcher action"); let loadId = ++incrementingLoadId; fetchReloadIds.set(key, loadId); let loadFetcher = _extends({ state: "loading", data: actionResult.data }, submission); state.fetchers.set(key, loadFetcher); let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(state, matches, submission, nextLocation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, { [match.route.id]: actionResult.data }, undefined, // No need to send through errors since we short circuit above fetchLoadMatches); // Put all revalidating fetchers into the loading state, except for the // current fetcher which we want to keep in it's current loading state which // contains it's action submission info + action data revalidatingFetchers.filter(_ref5 => { let [staleKey] = _ref5; return staleKey !== key; }).forEach(_ref6 => { let [staleKey] = _ref6; let existingFetcher = state.fetchers.get(staleKey); let revalidatingFetcher = { state: "loading", data: existingFetcher && existingFetcher.data, formMethod: undefined, formAction: undefined, formEncType: undefined, formData: undefined }; state.fetchers.set(staleKey, revalidatingFetcher); fetchControllers.set(staleKey, abortController); }); updateState({ fetchers: new Map(state.fetchers) }); let { results, loaderResults, fetcherResults } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, revalidationRequest); if (abortController.signal.aborted) { return; } fetchReloadIds.delete(key); fetchControllers.delete(key); revalidatingFetchers.forEach(_ref7 => { let [staleKey] = _ref7; return fetchControllers.delete(staleKey); }); let redirect = findRedirect(results); if (redirect) { let redirectNavigation = getLoaderRedirect(state, redirect); await startRedirectNavigation(redirect, redirectNavigation); return; } // Process and commit output from loaders let { loaderData, errors } = processLoaderData(state, state.matches, matchesToLoad, loaderResults, undefined, revalidatingFetchers, fetcherResults, activeDeferreds); let doneFetcher = { state: "idle", data: actionResult.data, formMethod: undefined, formAction: undefined, formEncType: undefined, formData: undefined }; state.fetchers.set(key, doneFetcher); let didAbortFetchLoads = abortStaleFetchLoads(loadId); // If we are currently in a navigation loading state and this fetcher is // more recent than the navigation, we want the newer data so abort the // navigation and complete it with the fetcher data if (state.navigation.state === "loading" && loadId > pendingNavigationLoadId) { invariant(pendingAction, "Expected pending action"); pendingNavigationController && pendingNavigationController.abort(); completeNavigation(state.navigation.location, { matches, loaderData, errors, fetchers: new Map(state.fetchers) }); } else { // otherwise just update with the fetcher data, preserving any existing // loaderData for loaders that did not need to reload. We have to // manually merge here since we aren't going through completeNavigation updateState(_extends({ errors, loaderData: mergeLoaderData(state.loaderData, loaderData, matches) }, didAbortFetchLoads ? { fetchers: new Map(state.fetchers) } : {})); isRevalidationRequired = false; } } // Call the matched loader for fetcher.load(), handling redirects, errors, etc. async function handleFetcherLoader(key, routeId, path, match, matches) { let existingFetcher = state.fetchers.get(key); // Put this fetcher into it's loading state let loadingFetcher = { state: "loading", formMethod: undefined, formAction: undefined, formEncType: undefined, formData: undefined, data: existingFetcher && existingFetcher.data }; state.fetchers.set(key, loadingFetcher); updateState({ fetchers: new Map(state.fetchers) }); // Call the loader for this fetcher route match let abortController = new AbortController(); let fetchRequest = createRequest(path, abortController.signal); fetchControllers.set(key, abortController); let result = await callLoaderOrAction("loader", fetchRequest, match, matches, router.basename); // Deferred isn't supported or fetcher loads, await everything and treat it // as a normal load. resolveDeferredData will return undefined if this // fetcher gets aborted, so we just leave result untouched and short circuit // below if that happens if (isDeferredResult(result)) { result = (await resolveDeferredData(result, fetchRequest.signal, true)) || result; } // We can delete this so long as we weren't aborted by ou our own fetcher // re-load which would have put _new_ controller is in fetchControllers if (fetchControllers.get(key) === abortController) { fetchControllers.delete(key); } if (fetchRequest.signal.aborted) { return; } // If the loader threw a redirect Response, start a new REPLACE navigation if (isRedirectResult(result)) { let redirectNavigation = getLoaderRedirect(state, result); await startRedirectNavigation(result, redirectNavigation); return; } // Process any non-redirect errors thrown if (isErrorResult(result)) { let boundaryMatch = findNearestBoundary(state.matches, routeId); state.fetchers.delete(key); // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch - // do we need to behave any differently with our non-redirect errors? // What if it was a non-redirect Response? updateState({ fetchers: new Map(state.fetchers), errors: { [boundaryMatch.route.id]: result.error } }); return; } invariant(!isDeferredResult(result), "Unhandled fetcher deferred data"); // Put the fetcher back into an idle state let doneFetcher = { state: "idle", data: result.data, formMethod: undefined, formAction: undefined, formEncType: undefined, formData: undefined }; state.fetchers.set(key, doneFetcher); updateState({ fetchers: new Map(state.fetchers) }); } /** * Utility function to handle redirects returned from an action or loader. * Normally, a redirect "replaces" the navigation that triggered it. So, for * example: * * - user is on /a * - user clicks a link to /b * - loader for /b redirects to /c * * In a non-JS app the browser would track the in-flight navigation to /b and * then replace it with /c when it encountered the redirect response. In * the end it would only ever update the URL bar with /c. * * In client-side routing using pushState/replaceState, we aim to emulate * this behavior and we also do not update history until the end of the * navigation (including processed redirects). This means that we never * actually touch history until we've processed redirects, so we just use * the history action from the original navigation (PUSH or REPLACE). */ async function startRedirectNavigation(redirect, navigation, replace) { if (redirect.revalidate) { isRevalidationRequired = true; } invariant(navigation.location, "Expected a location on the redirect navigation"); // There's no need to abort on redirects, since we don't detect the // redirect until the action/loaders have settled pendingNavigationController = null; let redirectHistoryAction = replace === true ? Action.Replace : Action.Push; await startNavigation(redirectHistoryAction, navigation.location, { overrideNavigation: navigation }); } async function callLoadersAndMaybeResolveData(currentMatches, matches, matchesToLoad, fetchersToLoad, request) { // Call all navigation loaders and revalidating fetcher loaders in parallel, // then slice off the results into separate arrays so we can handle them // accordingly let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction("loader", request, match, matches, router.basename)), ...fetchersToLoad.map(_ref8 => { let [, href, match, fetchMatches] = _ref8; return callLoaderOrAction("loader", createRequest(href, request.signal), match, fetchMatches, router.basename); })]); let loaderResults = results.slice(0, matchesToLoad.length); let fetcherResults = results.slice(matchesToLoad.length); await Promise.all([resolveDeferredResults(currentMatches, matchesToLoad, loaderResults, request.signal, false, state.loaderData), resolveDeferredResults(currentMatches, fetchersToLoad.map(_ref9 => { let [,, match] = _ref9; return match; }), fetcherResults, request.signal, true)]); return { results, loaderResults, fetcherResults }; } function interruptActiveLoads() { // Every interruption triggers a revalidation isRevalidationRequired = true; // Cancel pending route-level deferreds and mark cancelled routes for // revalidation cancelledDeferredRoutes.push(...cancelActiveDeferreds()); // Abort in-flight fetcher loads fetchLoadMatches.forEach((_, key) => { if (fetchControllers.has(key)) { cancelledFetcherLoads.push(key); abortFetcher(key); } }); } function setFetcherError(key, routeId, error) { let boundaryMatch = findNearestBoundary(state.matches, routeId); deleteFetcher(key); updateState({ errors: { [boundaryMatch.route.id]: error }, fetchers: new Map(state.fetchers) }); } function deleteFetcher(key) { if (fetchControllers.has(key)) abortFetcher(key); fetchLoadMatches.delete(key); fetchReloadIds.delete(key); fetchRedirectIds.delete(key); state.fetchers.delete(key); } function abortFetcher(key) { let controller = fetchControllers.get(key); invariant(controller, "Expected fetch controller: " + key); controller.abort(); fetchControllers.delete(key); } function markFetchersDone(keys) { for (let key of keys) { let fetcher = getFetcher(key); let doneFetcher = { state: "idle", data: fetcher.data, formMethod: undefined, formAction: undefined, formEncType: undefined, formData: undefined }; state.fetchers.set(key, doneFetcher); } } function markFetchRedirectsDone() { let doneKeys = []; for (let key of fetchRedirectIds) { let fetcher = state.fetchers.get(key); invariant(fetcher, "Expected fetcher: " + key); if (fetcher.state === "loading") { fetchRedirectIds.delete(key); doneKeys.push(key); } } markFetchersDone(doneKeys); } function abortStaleFetchLoads(landedId) { let yeetedKeys = []; for (let [key, id] of fetchReloadIds) { if (id < landedId) { let fetcher = state.fetchers.get(key); invariant(fetcher, "Expected fetcher: " + key); if (fetcher.state === "loading") { abortFetcher(key); fetchReloadIds.delete(key); yeetedKeys.push(key); } } } markFetchersDone(yeetedKeys); return yeetedKeys.length > 0; } function cancelActiveDeferreds(predicate) { let cancelledRouteIds = []; activeDeferreds.forEach((dfd, routeId) => { if (!predicate || predicate(routeId)) { // Cancel the deferred - but do not remove from activeDeferreds here - // we rely on the subscribers to do that so our tests can assert proper // cleanup via _internalActiveDeferreds dfd.cancel(); cancelledRouteIds.push(routeId); activeDeferreds.delete(routeId); } }); return cancelledRouteIds; } // Opt in to capturing and reporting scroll positions during navigations, // used by the component function enableScrollRestoration(positions, getPosition, getKey) { savedScrollPositions = positions; getScrollPosition = getPosition; getScrollRestorationKey = getKey || (location => location.key); // Perform initial hydration scroll restoration, since we miss the boat on // the initial updateState() because we've not yet rendered // and therefore have no savedScrollPositions available if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) { initialScrollRestored = true; let y = getSavedScrollPosition(state.location, state.matches); if (y != null) { updateState({ restoreScrollPosition: y }); } } return () => { savedScrollPositions = null; getScrollPosition = null; getScrollRestorationKey = null; }; } function saveScrollPosition(location, matches) { if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) { let userMatches = matches.map(m => createUseMatchesMatch(m, state.loaderData)); let key = getScrollRestorationKey(location, userMatches) || location.key; savedScrollPositions[key] = getScrollPosition(); } } function getSavedScrollPosition(location, matches) { if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) { let userMatches = matches.map(m => createUseMatchesMatch(m, state.loaderData)); let key = getScrollRestorationKey(location, userMatches) || location.key; let y = savedScrollPositions[key]; if (typeof y === "number") { return y; } } return null; } router = { get basename() { return init.basename; }, get state() { return state; }, get routes() { return dataRoutes; }, initialize, subscribe, enableScrollRestoration, navigate, fetch, revalidate, // Passthrough to history-aware createHref used by useHref so we get proper // hash-aware URLs in DOM paths createHref: to => init.history.createHref(to), getFetcher, deleteFetcher, dispose, _internalFetchControllers: fetchControllers, _internalActiveDeferreds: activeDeferreds }; return router; } //#endregion //////////////////////////////////////////////////////////////////////////////// //#region createStaticHandler //////////////////////////////////////////////////////////////////////////////// const validActionMethods = new Set(["POST", "PUT", "PATCH", "DELETE"]); const validRequestMethods = new Set(["GET", "HEAD", ...validActionMethods]); function unstable_createStaticHandler(routes) { invariant(routes.length > 0, "You must provide a non-empty routes array to unstable_createStaticHandler"); let dataRoutes = convertRoutesToDataRoutes(routes); /** * The query() method is intended for document requests, in which we want to * call an optional action and potentially multiple loaders for all nested * routes. It returns a StaticHandlerContext object, which is very similar * to the router state (location, loaderData, actionData, errors, etc.) and * also adds SSR-specific information such as the statusCode and headers * from action/loaders Responses. * * It _should_ never throw and should report all errors through the * returned context.errors object, properly associating errors to their error * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be * used to emulate React error boundaries during SSr by performing a second * pass only down to the boundaryId. * * The one exception where we do not return a StaticHandlerContext is when a * redirect response is returned or thrown from any action/loader. We * propagate that out and return the raw Response so the HTTP server can * return it directly. */ async function query(request) { let url = new URL(request.url); let location = createLocation("", createPath(url), null, "default"); let matches = matchRoutes(dataRoutes, location); if (!validRequestMethods.has(request.method)) { let { matches: methodNotAllowedMatches, route, error } = getMethodNotAllowedMatches(dataRoutes); return { location, matches: methodNotAllowedMatches, loaderData: {}, actionData: null, errors: { [route.id]: error }, statusCode: error.status, loaderHeaders: {}, actionHeaders: {} }; } else if (!matches) { let { matches: notFoundMatches, route, error } = getNotFoundMatches(dataRoutes); return { location, matches: notFoundMatches, loaderData: {}, actionData: null, errors: { [route.id]: error }, statusCode: error.status, loaderHeaders: {}, actionHeaders: {} }; } let result = await queryImpl(request, location, matches); if (result instanceof Response) { return result; } // When returning StaticHandlerContext, we patch back in the location here // since we need it for React Context. But this helps keep our submit and // loadRouteData operating on a Request instead of a Location return _extends({ location }, result); } /** * The queryRoute() method is intended for targeted route requests, either * for fetch ?_data requests or resource route requests. In this case, we * are only ever calling a single action or loader, and we are returning the * returned value directly. In most cases, this will be a Response returned * from the action/loader, but it may be a primitive or other value as well - * and in such cases the calling context should handle that accordingly. * * We do respect the throw/return differentiation, so if an action/loader * throws, then this method will throw the value. This is important so we * can do proper boundary identification in Remix where a thrown Response * must go to the Catch Boundary but a returned Response is happy-path. * * One thing to note is that any Router-initiated thrown Response (such as a * 404 or 405) will have a custom X-Remix-Router-Error: "yes" header on it * in order to differentiate from responses thrown from user actions/loaders. */ async function queryRoute(request, routeId) { let url = new URL(request.url); let location = createLocation("", createPath(url), null, "default"); let matches = matchRoutes(dataRoutes, location); if (!validRequestMethods.has(request.method)) { throw createRouterErrorResponse(null, { status: 405, statusText: "Method Not Allowed" }); } else if (!matches) { throw createRouterErrorResponse(null, { status: 404, statusText: "Not Found" }); } let match = routeId ? matches.find(m => m.route.id === routeId) : getTargetMatch(matches, location); if (!match) { throw createRouterErrorResponse(null, { status: 404, statusText: "Not Found" }); } let result = await queryImpl(request, location, matches, match); if (result instanceof Response) { return result; } let error = result.errors ? Object.values(result.errors)[0] : undefined; if (error !== undefined) { // If we got back result.errors, that means the loader/action threw // _something_ that wasn't a Response, but it's not guaranteed/required // to be an `instanceof Error` either, so we have to use throw here to // preserve the "error" state outside of queryImpl. throw error; } // Pick off the right state value to return let routeData = [result.actionData, result.loaderData].find(v => v); return Object.values(routeData || {})[0]; } async function queryImpl(request, location, matches, routeMatch) { invariant(request.signal, "query()/queryRoute() requests must contain an AbortController signal"); try { if (validActionMethods.has(request.method)) { let result = await submit(request, matches, routeMatch || getTargetMatch(matches, location), routeMatch != null); return result; } let result = await loadRouteData(request, matches, routeMatch); return result instanceof Response ? result : _extends({}, result, { actionData: null, actionHeaders: {} }); } catch (e) { // If the user threw/returned a Response in callLoaderOrAction, we throw // it to bail out and then return or throw here based on whether the user // returned or threw if (isQueryRouteResponse(e)) { if (e.type === ResultType.error && !isRedirectResponse(e.response)) { throw e.response; } return e.response; } // Redirects are always returned since they don't propagate to catch // boundaries if (isRedirectResponse(e)) { return e; } throw e; } } async function submit(request, matches, actionMatch, isRouteRequest) { let result; if (!actionMatch.route.action) { if (isRouteRequest) { throw createRouterErrorResponse(null, { status: 405, statusText: "Method Not Allowed" }); } result = getMethodNotAllowedResult(request.url); } else { result = await callLoaderOrAction("action", request, actionMatch, matches, undefined, // Basename not currently supported in static handlers true, isRouteRequest); if (request.signal.aborted) { let method = isRouteRequest ? "queryRoute" : "query"; throw new Error(method + "() call aborted"); } } if (isRedirectResult(result)) { // Uhhhh - this should never happen, we should always throw these from // callLoaderOrAction, but the type narrowing here keeps TS happy and we // can get back on the "throw all redirect responses" train here should // this ever happen :/ throw new Response(null, { status: result.status, headers: { Location: result.location } }); } if (isDeferredResult(result)) { throw new Error("defer() is not supported in actions"); } if (isRouteRequest) { // Note: This should only be non-Response values if we get here, since // isRouteRequest should throw any Response received in callLoaderOrAction if (isErrorResult(result)) { let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id); return { matches: [actionMatch], loaderData: {}, actionData: null, errors: { [boundaryMatch.route.id]: result.error }, // Note: statusCode + headers are unused here since queryRoute will // return the raw Response or value statusCode: 500, loaderHeaders: {}, actionHeaders: {} }; } return { matches: [actionMatch], loaderData: {}, actionData: { [actionMatch.route.id]: result.data }, errors: null, // Note: statusCode + headers are unused here since queryRoute will // return the raw Response or value statusCode: 200, loaderHeaders: {}, actionHeaders: {} }; } if (isErrorResult(result)) { // Store off the pending error - we use it to determine which loaders // to call and will commit it when we complete the navigation let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id); let context = await loadRouteData(request, matches, undefined, { [boundaryMatch.route.id]: result.error }); // action status codes take precedence over loader status codes return _extends({}, context, { statusCode: isRouteErrorResponse(result.error) ? result.error.status : 500, actionData: null, actionHeaders: _extends({}, result.headers ? { [actionMatch.route.id]: result.headers } : {}) }); } let context = await loadRouteData(request, matches); return _extends({}, context, result.statusCode ? { statusCode: result.statusCode } : {}, { actionData: { [actionMatch.route.id]: result.data }, actionHeaders: _extends({}, result.headers ? { [actionMatch.route.id]: result.headers } : {}) }); } async function loadRouteData(request, matches, routeMatch, pendingActionError) { let isRouteRequest = routeMatch != null; let requestMatches = routeMatch ? [routeMatch] : getLoaderMatchesUntilBoundary(matches, Object.keys(pendingActionError || {})[0]); let matchesToLoad = requestMatches.filter(m => m.route.loader); // Short circuit if we have no loaders to run if (matchesToLoad.length === 0) { return { matches, loaderData: {}, errors: pendingActionError || null, statusCode: 200, loaderHeaders: {} }; } let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction("loader", request, match, matches, undefined, // Basename not currently supported in static handlers true, isRouteRequest))]); if (request.signal.aborted) { let method = isRouteRequest ? "queryRoute" : "query"; throw new Error(method + "() call aborted"); } // Can't do anything with these without the Remix side of things, so just // cancel them for now results.forEach(result => { if (isDeferredResult(result)) { result.deferredData.cancel(); } }); // Process and commit output from loaders let context = processRouteLoaderData(matches, matchesToLoad, results, pendingActionError); return _extends({}, context, { matches }); } function createRouterErrorResponse(body, init) { return new Response(body, _extends({}, init, { headers: _extends({}, init.headers, { "X-Remix-Router-Error": "yes" }) })); } return { dataRoutes, query, queryRoute }; } //#endregion //////////////////////////////////////////////////////////////////////////////// //#region Helpers //////////////////////////////////////////////////////////////////////////////// /** * Given an existing StaticHandlerContext and an error thrown at render time, * provide an updated StaticHandlerContext suitable for a second SSR render */ function getStaticContextFromError(routes, context, error) { let newContext = _extends({}, context, { statusCode: 500, errors: { [context._deepestRenderedBoundaryId || routes[0].id]: error } }); return newContext; } // Normalize navigation options by converting formMethod=GET formData objects to // URLSearchParams so they behave identically to links with query params function normalizeNavigateOptions(to, opts, isFetcher) { if (isFetcher === void 0) { isFetcher = false; } let path = typeof to === "string" ? to : createPath(to); // Return location verbatim on non-submission navigations if (!opts || !("formMethod" in opts) && !("formData" in opts)) { return { path }; } // Create a Submission on non-GET navigations if (opts.formMethod != null && opts.formMethod !== "get") { return { path, submission: { formMethod: opts.formMethod, formAction: stripHashFromPath(path), formEncType: opts && opts.formEncType || "application/x-www-form-urlencoded", formData: opts.formData } }; } // No formData to flatten for GET submission if (!opts.formData) { return { path }; } // Flatten submission onto URLSearchParams for GET submissions let parsedPath = parsePath(path); try { let searchParams = convertFormDataToSearchParams(opts.formData); // Since fetcher GET submissions only run a single loader (as opposed to // navigation GET submissions which run all loaders), we need to preserve // any incoming ?index params if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) { searchParams.append("index", ""); } parsedPath.search = "?" + searchParams; } catch (e) { return { path, error: new ErrorResponse(400, "Bad Request", "Cannot submit binary form data using GET") }; } return { path: createPath(parsedPath) }; } function getLoaderRedirect(state, redirect) { let { formMethod, formAction, formEncType, formData } = state.navigation; let navigation = { state: "loading", location: createLocation(state.location, redirect.location), formMethod: formMethod || undefined, formAction: formAction || undefined, formEncType: formEncType || undefined, formData: formData || undefined }; return navigation; } // Filter out all routes below any caught error as they aren't going to // render so we don't need to load them function getLoaderMatchesUntilBoundary(matches, boundaryId) { let boundaryMatches = matches; if (boundaryId) { let index = matches.findIndex(m => m.route.id === boundaryId); if (index >= 0) { boundaryMatches = matches.slice(0, index); } } return boundaryMatches; } function getMatchesToLoad(state, matches, submission, location, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, pendingActionData, pendingError, fetchLoadMatches) { let actionResult = pendingError ? Object.values(pendingError)[0] : pendingActionData ? Object.values(pendingActionData)[0] : null; // Pick navigation matches that are net-new or qualify for revalidation let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined; let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId); let navigationMatches = boundaryMatches.filter((match, index) => match.route.loader != null && (isNewLoader(state.loaderData, state.matches[index], match) || // If this route had a pending deferred cancelled it must be revalidated cancelledDeferredRoutes.some(id => id === match.route.id) || shouldRevalidateLoader(state.location, state.matches[index], submission, location, match, isRevalidationRequired, actionResult))); // Pick fetcher.loads that need to be revalidated let revalidatingFetchers = []; fetchLoadMatches && fetchLoadMatches.forEach((_ref10, key) => { let [href, match, fetchMatches] = _ref10; // This fetcher was cancelled from a prior action submission - force reload if (cancelledFetcherLoads.includes(key)) { revalidatingFetchers.push([key, href, match, fetchMatches]); } else if (isRevalidationRequired) { let shouldRevalidate = shouldRevalidateLoader(href, match, submission, href, match, isRevalidationRequired, actionResult); if (shouldRevalidate) { revalidatingFetchers.push([key, href, match, fetchMatches]); } } }); return [navigationMatches, revalidatingFetchers]; } function isNewLoader(currentLoaderData, currentMatch, match) { let isNew = // [a] -> [a, b] !currentMatch || // [a, b] -> [a, c] match.route.id !== currentMatch.route.id; // Handle the case that we don't have data for a re-used route, potentially // from a prior error or from a cancelled pending deferred let isMissingData = currentLoaderData[match.route.id] === undefined; // Always load if this is a net-new route or we don't yet have data return isNew || isMissingData; } function isNewRouteInstance(currentMatch, match) { let currentPath = currentMatch.route.path; return (// param change for this match, /users/123 -> /users/456 currentMatch.pathname !== match.pathname || // splat param changed, which is not present in match.path // e.g. /files/images/avatar.jpg -> files/finances.xls currentPath && currentPath.endsWith("*") && currentMatch.params["*"] !== match.params["*"] ); } function shouldRevalidateLoader(currentLocation, currentMatch, submission, location, match, isRevalidationRequired, actionResult) { let currentUrl = createURL(currentLocation); let currentParams = currentMatch.params; let nextUrl = createURL(location); let nextParams = match.params; // This is the default implementation as to when we revalidate. If the route // provides it's own implementation, then we give them full control but // provide this value so they can leverage it if needed after they check // their own specific use cases // Note that fetchers always provide the same current/next locations so the // URL-based checks here don't apply to fetcher shouldRevalidate calls let defaultShouldRevalidate = isNewRouteInstance(currentMatch, match) || // Clicked the same link, resubmitted a GET form currentUrl.toString() === nextUrl.toString() || // Search params affect all loaders currentUrl.search !== nextUrl.search || // Forced revalidation due to submission, useRevalidate, or X-Remix-Revalidate isRevalidationRequired; if (match.route.shouldRevalidate) { let routeChoice = match.route.shouldRevalidate(_extends({ currentUrl, currentParams, nextUrl, nextParams }, submission, { actionResult, defaultShouldRevalidate })); if (typeof routeChoice === "boolean") { return routeChoice; } } return defaultShouldRevalidate; } async function callLoaderOrAction(type, request, match, matches, basename, isStaticRequest, isRouteRequest) { if (isStaticRequest === void 0) { isStaticRequest = false; } if (isRouteRequest === void 0) { isRouteRequest = false; } let resultType; let result; // Setup a promise we can race against so that abort signals short circuit let reject; let abortPromise = new Promise((_, r) => reject = r); let onReject = () => reject(); request.signal.addEventListener("abort", onReject); try { let handler = match.route[type]; invariant(handler, "Could not find the " + type + " to run on the \"" + match.route.id + "\" route"); result = await Promise.race([handler({ request, params: match.params }), abortPromise]); } catch (e) { resultType = ResultType.error; result = e; } finally { request.signal.removeEventListener("abort", onReject); } if (result instanceof Response) { let status = result.status; // Process redirects if (status >= 300 && status <= 399) { let location = result.headers.get("Location"); invariant(location, "Redirects returned/thrown from loaders/actions must have a Location header"); // Support relative routing in redirects let activeMatches = matches.slice(0, matches.indexOf(match) + 1); let routePathnames = getPathContributingMatches(activeMatches).map(match => match.pathnameBase); let requestPath = createURL(request.url).pathname; let resolvedLocation = resolveTo(location, routePathnames, requestPath); invariant(createPath(resolvedLocation), "Unable to resolve redirect location: " + result.headers.get("Location")); // Prepend the basename to the redirect location if we have one if (basename) { let path = resolvedLocation.pathname; resolvedLocation.pathname = path === "/" ? basename : joinPaths([basename, path]); } location = createPath(resolvedLocation); // Don't process redirects in the router during static requests requests. // Instead, throw the Response and let the server handle it with an HTTP // redirect. We also update the Location header in place in this flow so // basename and relative routing is taken into account if (isStaticRequest) { result.headers.set("Location", location); throw result; } return { type: ResultType.redirect, status, location, revalidate: result.headers.get("X-Remix-Revalidate") !== null }; } // For SSR single-route requests, we want to hand Responses back directly // without unwrapping. We do this with the QueryRouteResponse wrapper // interface so we can know whether it was returned or thrown if (isRouteRequest) { // eslint-disable-next-line no-throw-literal throw { type: resultType || ResultType.data, response: result }; } let data; let contentType = result.headers.get("Content-Type"); if (contentType && contentType.startsWith("application/json")) { data = await result.json(); } else { data = await result.text(); } if (resultType === ResultType.error) { return { type: resultType, error: new ErrorResponse(status, result.statusText, data), headers: result.headers }; } return { type: ResultType.data, data, statusCode: result.status, headers: result.headers }; } if (resultType === ResultType.error) { return { type: resultType, error: result }; } if (result instanceof DeferredData) { return { type: ResultType.deferred, deferredData: result }; } return { type: ResultType.data, data: result }; } function createRequest(location, signal, submission) { let url = createURL(stripHashFromPath(location)).toString(); let init = { signal }; if (submission) { let { formMethod, formEncType, formData } = submission; init.method = formMethod.toUpperCase(); init.body = formEncType === "application/x-www-form-urlencoded" ? convertFormDataToSearchParams(formData) : formData; } // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request) return new Request(url, init); } function convertFormDataToSearchParams(formData) { let searchParams = new URLSearchParams(); for (let [key, value] of formData.entries()) { invariant(typeof value === "string", 'File inputs are not supported with encType "application/x-www-form-urlencoded", ' + 'please use "multipart/form-data" instead.'); searchParams.append(key, value); } return searchParams; } function processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds) { // Fill in loaderData/errors from our loaders let loaderData = {}; let errors = null; let statusCode; let foundError = false; let loaderHeaders = {}; // Process loader results into state.loaderData/state.errors results.forEach((result, index) => { let id = matchesToLoad[index].route.id; invariant(!isRedirectResult(result), "Cannot handle redirect results in processLoaderData"); if (isErrorResult(result)) { // Look upwards from the matched route for the closest ancestor // error boundary, defaulting to the root match let boundaryMatch = findNearestBoundary(matches, id); let error = result.error; // If we have a pending action error, we report it at the highest-route // that throws a loader error, and then clear it out to indicate that // it was consumed if (pendingError) { error = Object.values(pendingError)[0]; pendingError = undefined; } errors = Object.assign(errors || {}, { [boundaryMatch.route.id]: error }); // Once we find our first (highest) error, we set the status code and // prevent deeper status codes from overriding if (!foundError) { foundError = true; statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500; } if (result.headers) { loaderHeaders[id] = result.headers; } } else if (isDeferredResult(result)) { activeDeferreds && activeDeferreds.set(id, result.deferredData); loaderData[id] = result.deferredData.data; // TODO: Add statusCode/headers once we wire up streaming in Remix } else { loaderData[id] = result.data; // Error status codes always override success status codes, but if all // loaders are successful we take the deepest status code. if (result.statusCode != null && result.statusCode !== 200 && !foundError) { statusCode = result.statusCode; } if (result.headers) { loaderHeaders[id] = result.headers; } } }); // If we didn't consume the pending action error (i.e., all loaders // resolved), then consume it here if (pendingError) { errors = pendingError; } return { loaderData, errors, statusCode: statusCode || 200, loaderHeaders }; } function processLoaderData(state, matches, matchesToLoad, results, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds) { let { loaderData, errors } = processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds); // Process results from our revalidating fetchers for (let index = 0; index < revalidatingFetchers.length; index++) { let [key,, match] = revalidatingFetchers[index]; invariant(fetcherResults !== undefined && fetcherResults[index] !== undefined, "Did not find corresponding fetcher result"); let result = fetcherResults[index]; // Process fetcher non-redirect errors if (isErrorResult(result)) { let boundaryMatch = findNearestBoundary(state.matches, match.route.id); if (!(errors && errors[boundaryMatch.route.id])) { errors = _extends({}, errors, { [boundaryMatch.route.id]: result.error }); } state.fetchers.delete(key); } else if (isRedirectResult(result)) { // Should never get here, redirects should get processed above, but we // keep this to type narrow to a success result in the else throw new Error("Unhandled fetcher revalidation redirect"); } else if (isDeferredResult(result)) { // Should never get here, deferred data should be awaited for fetchers // in resolveDeferredResults throw new Error("Unhandled fetcher deferred data"); } else { let doneFetcher = { state: "idle", data: result.data, formMethod: undefined, formAction: undefined, formEncType: undefined, formData: undefined }; state.fetchers.set(key, doneFetcher); } } return { loaderData, errors }; } function mergeLoaderData(loaderData, newLoaderData, matches) { let mergedLoaderData = _extends({}, newLoaderData); matches.forEach(match => { let id = match.route.id; if (newLoaderData[id] === undefined && loaderData[id] !== undefined) { mergedLoaderData[id] = loaderData[id]; } }); return mergedLoaderData; } // Find the nearest error boundary, looking upwards from the leaf route (or the // route specified by routeId) for the closest ancestor error boundary, // defaulting to the root match function findNearestBoundary(matches, routeId) { let eligibleMatches = routeId ? matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1) : [...matches]; return eligibleMatches.reverse().find(m => m.route.hasErrorBoundary === true) || matches[0]; } function getShortCircuitMatches(routes, status, statusText) { // Prefer a root layout route if present, otherwise shim in a route object let route = routes.find(r => r.index || !r.path || r.path === "/") || { id: "__shim-" + status + "-route__" }; return { matches: [{ params: {}, pathname: "", pathnameBase: "", route }], route, error: new ErrorResponse(status, statusText, null) }; } function getNotFoundMatches(routes) { return getShortCircuitMatches(routes, 404, "Not Found"); } function getMethodNotAllowedMatches(routes) { return getShortCircuitMatches(routes, 405, "Method Not Allowed"); } function getMethodNotAllowedResult(path) { let href = typeof path === "string" ? path : createPath(path); console.warn("You're trying to submit to a route that does not have an action. To " + "fix this, please add an `action` function to the route for " + ("[" + href + "]")); return { type: ResultType.error, error: new ErrorResponse(405, "Method Not Allowed", "") }; } // Find any returned redirect errors, starting from the lowest match function findRedirect(results) { for (let i = results.length - 1; i >= 0; i--) { let result = results[i]; if (isRedirectResult(result)) { return result; } } } function stripHashFromPath(path) { let parsedPath = typeof path === "string" ? parsePath(path) : path; return createPath(_extends({}, parsedPath, { hash: "" })); } function isHashChangeOnly(a, b) { return a.pathname === b.pathname && a.search === b.search && a.hash !== b.hash; } function isDeferredResult(result) { return result.type === ResultType.deferred; } function isErrorResult(result) { return result.type === ResultType.error; } function isRedirectResult(result) { return (result && result.type) === ResultType.redirect; } function isRedirectResponse(result) { if (!(result instanceof Response)) { return false; } let status = result.status; let location = result.headers.get("Location"); return status >= 300 && status <= 399 && location != null; } function isQueryRouteResponse(obj) { return obj && obj.response instanceof Response && (obj.type === ResultType.data || ResultType.error); } async function resolveDeferredResults(currentMatches, matchesToLoad, results, signal, isFetcher, currentLoaderData) { for (let index = 0; index < results.length; index++) { let result = results[index]; let match = matchesToLoad[index]; let currentMatch = currentMatches.find(m => m.route.id === match.route.id); let isRevalidatingLoader = currentMatch != null && !isNewRouteInstance(currentMatch, match) && (currentLoaderData && currentLoaderData[match.route.id]) !== undefined; if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) { // Note: we do not have to touch activeDeferreds here since we race them // against the signal in resolveDeferredData and they'll get aborted // there if needed await resolveDeferredData(result, signal, isFetcher).then(result => { if (result) { results[index] = result || results[index]; } }); } } } async function resolveDeferredData(result, signal, unwrap) { if (unwrap === void 0) { unwrap = false; } let aborted = await result.deferredData.resolveData(signal); if (aborted) { return; } if (unwrap) { try { return { type: ResultType.data, data: result.deferredData.unwrappedData }; } catch (e) { // Handle any TrackedPromise._error values encountered while unwrapping return { type: ResultType.error, error: e }; } } return { type: ResultType.data, data: result.deferredData.data }; } function hasNakedIndexQuery(search) { return new URLSearchParams(search).getAll("index").some(v => v === ""); } // Note: This should match the format exported by useMatches, so if you change // this please also change that :) Eventually we'll DRY this up function createUseMatchesMatch(match, loaderData) { let { route, pathname, params } = match; return { id: route.id, pathname, params, data: loaderData[route.id], handle: route.handle }; } function getTargetMatch(matches, location) { let search = typeof location === "string" ? parsePath(location).search : location.search; if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || "")) { // Return the leaf index route when index is present return matches[matches.length - 1]; } // Otherwise grab the deepest "path contributing" match (ignoring index and // pathless layout routes) let pathMatches = getPathContributingMatches(matches); return pathMatches[pathMatches.length - 1]; } //#endregion //# sourceMappingURL=router.js.map /***/ }), /***/ "./node_modules/autosize/dist/autosize.js": /*!************************************************!*\ !*** ./node_modules/autosize/dist/autosize.js ***! \************************************************/ /***/ (function(module, exports) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! autosize 4.0.4 license: MIT http://www.jacklmoore.com/autosize */ (function (global, factory) { if (true) { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else { var mod; } })(this, function (module, exports) { 'use strict'; var map = typeof Map === "function" ? new Map() : function () { var keys = []; var values = []; return { has: function has(key) { return keys.indexOf(key) > -1; }, get: function get(key) { return values[keys.indexOf(key)]; }, set: function set(key, value) { if (keys.indexOf(key) === -1) { keys.push(key); values.push(value); } }, delete: function _delete(key) { var index = keys.indexOf(key); if (index > -1) { keys.splice(index, 1); values.splice(index, 1); } } }; }(); var createEvent = function createEvent(name) { return new Event(name, { bubbles: true }); }; try { new Event('test'); } catch (e) { // IE does not support `new Event()` createEvent = function createEvent(name) { var evt = document.createEvent('Event'); evt.initEvent(name, true, false); return evt; }; } function assign(ta) { if (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return; var heightOffset = null; var clientWidth = null; var cachedHeight = null; function init() { var style = window.getComputedStyle(ta, null); if (style.resize === 'vertical') { ta.style.resize = 'none'; } else if (style.resize === 'both') { ta.style.resize = 'horizontal'; } if (style.boxSizing === 'content-box') { heightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom)); } else { heightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth); } // Fix when a textarea is not on document body and heightOffset is Not a Number if (isNaN(heightOffset)) { heightOffset = 0; } update(); } function changeOverflow(value) { { // Chrome/Safari-specific fix: // When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space // made available by removing the scrollbar. The following forces the necessary text reflow. var width = ta.style.width; ta.style.width = '0px'; // Force reflow: /* jshint ignore:start */ ta.offsetWidth; /* jshint ignore:end */ ta.style.width = width; } ta.style.overflowY = value; } function getParentOverflows(el) { var arr = []; while (el && el.parentNode && el.parentNode instanceof Element) { if (el.parentNode.scrollTop) { arr.push({ node: el.parentNode, scrollTop: el.parentNode.scrollTop }); } el = el.parentNode; } return arr; } function resize() { if (ta.scrollHeight === 0) { // If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM. return; } var overflows = getParentOverflows(ta); var docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240) ta.style.height = ''; ta.style.height = ta.scrollHeight + heightOffset + 'px'; // used to check if an update is actually necessary on window.resize clientWidth = ta.clientWidth; // prevents scroll-position jumping overflows.forEach(function (el) { el.node.scrollTop = el.scrollTop; }); if (docTop) { document.documentElement.scrollTop = docTop; } } function update() { resize(); var styleHeight = Math.round(parseFloat(ta.style.height)); var computed = window.getComputedStyle(ta, null); // Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box var actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight; // The actual height not matching the style height (set via the resize method) indicates that // the max-height has been exceeded, in which case the overflow should be allowed. if (actualHeight < styleHeight) { if (computed.overflowY === 'hidden') { changeOverflow('scroll'); resize(); actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight; } } else { // Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands. if (computed.overflowY !== 'hidden') { changeOverflow('hidden'); resize(); actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight; } } if (cachedHeight !== actualHeight) { cachedHeight = actualHeight; var evt = createEvent('autosize:resized'); try { ta.dispatchEvent(evt); } catch (err) { // Firefox will throw an error on dispatchEvent for a detached element // https://bugzilla.mozilla.org/show_bug.cgi?id=889376 } } } var pageResize = function pageResize() { if (ta.clientWidth !== clientWidth) { update(); } }; var destroy = function (style) { window.removeEventListener('resize', pageResize, false); ta.removeEventListener('input', update, false); ta.removeEventListener('keyup', update, false); ta.removeEventListener('autosize:destroy', destroy, false); ta.removeEventListener('autosize:update', update, false); Object.keys(style).forEach(function (key) { ta.style[key] = style[key]; }); map.delete(ta); }.bind(ta, { height: ta.style.height, resize: ta.style.resize, overflowY: ta.style.overflowY, overflowX: ta.style.overflowX, wordWrap: ta.style.wordWrap }); ta.addEventListener('autosize:destroy', destroy, false); // IE9 does not fire onpropertychange or oninput for deletions, // so binding to onkeyup to catch most of those events. // There is no way that I know of to detect something like 'cut' in IE9. if ('onpropertychange' in ta && 'oninput' in ta) { ta.addEventListener('keyup', update, false); } window.addEventListener('resize', pageResize, false); ta.addEventListener('input', update, false); ta.addEventListener('autosize:update', update, false); ta.style.overflowX = 'hidden'; ta.style.wordWrap = 'break-word'; map.set(ta, { destroy: destroy, update: update }); init(); } function destroy(ta) { var methods = map.get(ta); if (methods) { methods.destroy(); } } function update(ta) { var methods = map.get(ta); if (methods) { methods.update(); } } var autosize = null; // Do nothing in Node.js environment and IE8 (or lower) if (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') { autosize = function autosize(el) { return el; }; autosize.destroy = function (el) { return el; }; autosize.update = function (el) { return el; }; } else { autosize = function autosize(el, options) { if (el) { Array.prototype.forEach.call(el.length ? el : [el], function (x) { return assign(x, options); }); } return el; }; autosize.destroy = function (el) { if (el) { Array.prototype.forEach.call(el.length ? el : [el], destroy); } return el; }; autosize.update = function (el) { if (el) { Array.prototype.forEach.call(el.length ? el : [el], update); } return el; }; } exports.default = autosize; module.exports = exports['default']; }); /***/ }), /***/ "./node_modules/computed-style/dist/computedStyle.commonjs.js": /*!********************************************************************!*\ !*** ./node_modules/computed-style/dist/computedStyle.commonjs.js ***! \********************************************************************/ /***/ ((module) => { // DEV: We don't use var but favor parameters since these play nicer with minification function computedStyle(el, prop, getComputedStyle, style) { getComputedStyle = window.getComputedStyle; style = // If we have getComputedStyle getComputedStyle ? // Query it // TODO: From CSS-Query notes, we might need (node, null) for FF getComputedStyle(el) : // Otherwise, we are in IE and use currentStyle el.currentStyle; if (style) { return style [ // Switch to camelCase for CSSOM // DEV: Grabbed from jQuery // https://github.com/jquery/jquery/blob/1.9-stable/src/css.js#L191-L194 // https://github.com/jquery/jquery/blob/1.9-stable/src/core.js#L593-L597 prop.replace(/-(\w)/gi, function (word, letter) { return letter.toUpperCase(); }) ]; } } module.exports = computedStyle; /***/ }), /***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/sass/d3v4pp.scss": /*!***************************************************************************************************************************************!*\ !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/sass/d3v4pp.scss ***! \***************************************************************************************************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js"); /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/getUrl.js */ "./node_modules/css-loader/dist/runtime/getUrl.js"); /* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__); // Imports var ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(/*! ./icons/assets/SweetIcons-Regular.eot */ "./src/sass/icons/assets/SweetIcons-Regular.eot"), __webpack_require__.b); var ___CSS_LOADER_URL_IMPORT_1___ = new URL(/* asset import */ __webpack_require__(/*! ./icons/assets/SweetIcons-Regular.woff2 */ "./src/sass/icons/assets/SweetIcons-Regular.woff2"), __webpack_require__.b); var ___CSS_LOADER_URL_IMPORT_2___ = new URL(/* asset import */ __webpack_require__(/*! ./icons/assets/SweetIcons-Regular.woff */ "./src/sass/icons/assets/SweetIcons-Regular.woff"), __webpack_require__.b); var ___CSS_LOADER_URL_IMPORT_3___ = new URL(/* asset import */ __webpack_require__(/*! ./icons/assets/SweetIcons-Regular.ttf */ "./src/sass/icons/assets/SweetIcons-Regular.ttf"), __webpack_require__.b); var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); ___CSS_LOADER_EXPORT___.push([module.id, "@import url(https://fonts.googleapis.com/css?family=Ubuntu);"]); var ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___); var ___CSS_LOADER_URL_REPLACEMENT_2___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_2___); var ___CSS_LOADER_URL_REPLACEMENT_3___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_3___); // Module ___CSS_LOADER_EXPORT___.push([module.id, "@charset \"UTF-8\";\n@font-face {\n font-family: sweeticons;\n font-style: normal;\n font-weight: 400;\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ");\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ") format(\"woff2\"), url(" + ___CSS_LOADER_URL_REPLACEMENT_2___ + ") format(\"woff\"), url(" + ___CSS_LOADER_URL_REPLACEMENT_3___ + ") format(\"truetype\");\n}\n.s-icon,\n.s-icons,\n.sweet-icons,\n.sweet-icon {\n font-family: sweeticons, sans-serif;\n font-weight: normal;\n font-style: normal;\n font-size: 28px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n -webkit-font-smoothing: antialiased;\n text-rendering: optimizeLegibility;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-feature-settings: \"liga\";\n -moz-font-feature-settings: \"liga=1\";\n -moz-font-feature-settings: \"liga\";\n font-feature-settings: \"liga\";\n text-align: center;\n}\n\n.webo {\n background-color: #0062d6 !important;\n}\n\n.webo-text {\n color: #0062d6 !important;\n}\n\n.webo-waves .waves-ripple {\n background-color: #0062d6 !important;\n}\n\n.webo.second {\n background-color: #0077FA !important;\n}\n\n.webo-text.text-second {\n color: #0077FA !important;\n}\n\n.webo-waves.waves-second .waves-ripple {\n background-color: #0077FA !important;\n}\n\n.webo.third {\n background-color: #09bddd !important;\n}\n\n.webo-text.text-third {\n color: #09bddd !important;\n}\n\n.webo-waves.waves-third .waves-ripple {\n background-color: #09bddd !important;\n}\n\n.webo.fourth {\n background-color: #cbe7fe !important;\n}\n\n.webo-text.text-fourth {\n color: #cbe7fe !important;\n}\n\n.webo-waves.waves-fourth .waves-ripple {\n background-color: #cbe7fe !important;\n}\n\n.webo.lighten-5 {\n background-color: #bbdefb !important;\n}\n\n.webo-text.text-lighten-5 {\n color: #bbdefb !important;\n}\n\n.webo-waves.waves-lighten-5 .waves-ripple {\n background-color: #bbdefb !important;\n}\n\n.webo.lighten-4 {\n background-color: #42a5f5 !important;\n}\n\n.webo-text.text-lighten-4 {\n color: #42a5f5 !important;\n}\n\n.webo-waves.waves-lighten-4 .waves-ripple {\n background-color: #42a5f5 !important;\n}\n\n.webo.lighten-3 {\n background-color: #7986cb !important;\n}\n\n.webo-text.text-lighten-3 {\n color: #7986cb !important;\n}\n\n.webo-waves.waves-lighten-3 .waves-ripple {\n background-color: #7986cb !important;\n}\n\n.webo.lighten-2 {\n background-color: #512da8 !important;\n}\n\n.webo-text.text-lighten-2 {\n color: #512da8 !important;\n}\n\n.webo-waves.waves-lighten-2 .waves-ripple {\n background-color: #512da8 !important;\n}\n\n.webo.lighten-1 {\n background-color: #283593 !important;\n}\n\n.webo-text.text-lighten-1 {\n color: #283593 !important;\n}\n\n.webo-waves.waves-lighten-1 .waves-ripple {\n background-color: #283593 !important;\n}\n\n.webo.darken-1 {\n background-color: #d0181e !important;\n}\n\n.webo-text.text-darken-1 {\n color: #d0181e !important;\n}\n\n.webo-waves.waves-darken-1 .waves-ripple {\n background-color: #d0181e !important;\n}\n\n.webo.darken-2 {\n background-color: #b9151b !important;\n}\n\n.webo-text.text-darken-2 {\n color: #b9151b !important;\n}\n\n.webo-waves.waves-darken-2 .waves-ripple {\n background-color: #b9151b !important;\n}\n\n.webo.darken-3 {\n background-color: #a21318 !important;\n}\n\n.webo-text.text-darken-3 {\n color: #a21318 !important;\n}\n\n.webo-waves.waves-darken-3 .waves-ripple {\n background-color: #a21318 !important;\n}\n\n.webo.b- {\n background-color: #49ce5f !important;\n}\n\n.webo-text.text-b- {\n color: #49ce5f !important;\n}\n\n.webo-waves.waves-b- .waves-ripple {\n background-color: #49ce5f !important;\n}\n\n.webo.darken-4 {\n background-color: #8b1014 !important;\n}\n\n.webo-text.text-darken-4 {\n color: #8b1014 !important;\n}\n\n.webo-waves.waves-darken-4 .waves-ripple {\n background-color: #8b1014 !important;\n}\n\n.red {\n background-color: #f44336 !important;\n}\n\n.red-text {\n color: #f44336 !important;\n}\n\n.red-waves .waves-ripple {\n background-color: #f44336 !important;\n}\n\n.red.lighten-5 {\n background-color: #ffebee !important;\n}\n\n.red-text.text-lighten-5 {\n color: #ffebee !important;\n}\n\n.red-waves.waves-lighten-5 .waves-ripple {\n background-color: #ffebee !important;\n}\n\n.red.lighten-4 {\n background-color: #ffcdd2 !important;\n}\n\n.red-text.text-lighten-4 {\n color: #ffcdd2 !important;\n}\n\n.red-waves.waves-lighten-4 .waves-ripple {\n background-color: #ffcdd2 !important;\n}\n\n.red.lighten-3 {\n background-color: #ef9a9a !important;\n}\n\n.red-text.text-lighten-3 {\n color: #ef9a9a !important;\n}\n\n.red-waves.waves-lighten-3 .waves-ripple {\n background-color: #ef9a9a !important;\n}\n\n.red.lighten-2 {\n background-color: #e57373 !important;\n}\n\n.red-text.text-lighten-2 {\n color: #e57373 !important;\n}\n\n.red-waves.waves-lighten-2 .waves-ripple {\n background-color: #e57373 !important;\n}\n\n.red.lighten-1 {\n background-color: #ef5350 !important;\n}\n\n.red-text.text-lighten-1 {\n color: #ef5350 !important;\n}\n\n.red-waves.waves-lighten-1 .waves-ripple {\n background-color: #ef5350 !important;\n}\n\n.red.darken-1 {\n background-color: #e53935 !important;\n}\n\n.red-text.text-darken-1 {\n color: #e53935 !important;\n}\n\n.red-waves.waves-darken-1 .waves-ripple {\n background-color: #e53935 !important;\n}\n\n.red.darken-2 {\n background-color: #d32f2f !important;\n}\n\n.red-text.text-darken-2 {\n color: #d32f2f !important;\n}\n\n.red-waves.waves-darken-2 .waves-ripple {\n background-color: #d32f2f !important;\n}\n\n.red.darken-3 {\n background-color: #c62828 !important;\n}\n\n.red-text.text-darken-3 {\n color: #c62828 !important;\n}\n\n.red-waves.waves-darken-3 .waves-ripple {\n background-color: #c62828 !important;\n}\n\n.red.darken-4 {\n background-color: #b71c1c !important;\n}\n\n.red-text.text-darken-4 {\n color: #b71c1c !important;\n}\n\n.red-waves.waves-darken-4 .waves-ripple {\n background-color: #b71c1c !important;\n}\n\n.red.accent-1 {\n background-color: #ff8a80 !important;\n}\n\n.red-text.text-accent-1 {\n color: #ff8a80 !important;\n}\n\n.red-waves.waves-accent-1 .waves-ripple {\n background-color: #ff8a80 !important;\n}\n\n.red.accent-2 {\n background-color: #ff5252 !important;\n}\n\n.red-text.text-accent-2 {\n color: #ff5252 !important;\n}\n\n.red-waves.waves-accent-2 .waves-ripple {\n background-color: #ff5252 !important;\n}\n\n.red.accent-3 {\n background-color: #ff1744 !important;\n}\n\n.red-text.text-accent-3 {\n color: #ff1744 !important;\n}\n\n.red-waves.waves-accent-3 .waves-ripple {\n background-color: #ff1744 !important;\n}\n\n.red.accent-4 {\n background-color: #d50000 !important;\n}\n\n.red-text.text-accent-4 {\n color: #d50000 !important;\n}\n\n.red-waves.waves-accent-4 .waves-ripple {\n background-color: #d50000 !important;\n}\n\n.pink {\n background-color: #e91e63 !important;\n}\n\n.pink-text {\n color: #e91e63 !important;\n}\n\n.pink-waves .waves-ripple {\n background-color: #e91e63 !important;\n}\n\n.pink.lighten-5 {\n background-color: #fce4ec !important;\n}\n\n.pink-text.text-lighten-5 {\n color: #fce4ec !important;\n}\n\n.pink-waves.waves-lighten-5 .waves-ripple {\n background-color: #fce4ec !important;\n}\n\n.pink.lighten-4 {\n background-color: #f8bbd0 !important;\n}\n\n.pink-text.text-lighten-4 {\n color: #f8bbd0 !important;\n}\n\n.pink-waves.waves-lighten-4 .waves-ripple {\n background-color: #f8bbd0 !important;\n}\n\n.pink.lighten-3 {\n background-color: #f48fb1 !important;\n}\n\n.pink-text.text-lighten-3 {\n color: #f48fb1 !important;\n}\n\n.pink-waves.waves-lighten-3 .waves-ripple {\n background-color: #f48fb1 !important;\n}\n\n.pink.lighten-2 {\n background-color: #f06292 !important;\n}\n\n.pink-text.text-lighten-2 {\n color: #f06292 !important;\n}\n\n.pink-waves.waves-lighten-2 .waves-ripple {\n background-color: #f06292 !important;\n}\n\n.pink.lighten-1 {\n background-color: #ec407a !important;\n}\n\n.pink-text.text-lighten-1 {\n color: #ec407a !important;\n}\n\n.pink-waves.waves-lighten-1 .waves-ripple {\n background-color: #ec407a !important;\n}\n\n.pink.darken-1 {\n background-color: #d81b60 !important;\n}\n\n.pink-text.text-darken-1 {\n color: #d81b60 !important;\n}\n\n.pink-waves.waves-darken-1 .waves-ripple {\n background-color: #d81b60 !important;\n}\n\n.pink.darken-2 {\n background-color: #c2185b !important;\n}\n\n.pink-text.text-darken-2 {\n color: #c2185b !important;\n}\n\n.pink-waves.waves-darken-2 .waves-ripple {\n background-color: #c2185b !important;\n}\n\n.pink.darken-3 {\n background-color: #ad1457 !important;\n}\n\n.pink-text.text-darken-3 {\n color: #ad1457 !important;\n}\n\n.pink-waves.waves-darken-3 .waves-ripple {\n background-color: #ad1457 !important;\n}\n\n.pink.darken-4 {\n background-color: #880e4f !important;\n}\n\n.pink-text.text-darken-4 {\n color: #880e4f !important;\n}\n\n.pink-waves.waves-darken-4 .waves-ripple {\n background-color: #880e4f !important;\n}\n\n.pink.accent-1 {\n background-color: #ff80ab !important;\n}\n\n.pink-text.text-accent-1 {\n color: #ff80ab !important;\n}\n\n.pink-waves.waves-accent-1 .waves-ripple {\n background-color: #ff80ab !important;\n}\n\n.pink.accent-2 {\n background-color: #ff4081 !important;\n}\n\n.pink-text.text-accent-2 {\n color: #ff4081 !important;\n}\n\n.pink-waves.waves-accent-2 .waves-ripple {\n background-color: #ff4081 !important;\n}\n\n.pink.accent-3 {\n background-color: #f50057 !important;\n}\n\n.pink-text.text-accent-3 {\n color: #f50057 !important;\n}\n\n.pink-waves.waves-accent-3 .waves-ripple {\n background-color: #f50057 !important;\n}\n\n.pink.accent-4 {\n background-color: #c51162 !important;\n}\n\n.pink-text.text-accent-4 {\n color: #c51162 !important;\n}\n\n.pink-waves.waves-accent-4 .waves-ripple {\n background-color: #c51162 !important;\n}\n\n.purple {\n background-color: #9c27b0 !important;\n}\n\n.purple-text {\n color: #9c27b0 !important;\n}\n\n.purple-waves .waves-ripple {\n background-color: #9c27b0 !important;\n}\n\n.purple.lighten-5 {\n background-color: #f3e5f5 !important;\n}\n\n.purple-text.text-lighten-5 {\n color: #f3e5f5 !important;\n}\n\n.purple-waves.waves-lighten-5 .waves-ripple {\n background-color: #f3e5f5 !important;\n}\n\n.purple.lighten-4 {\n background-color: #e1bee7 !important;\n}\n\n.purple-text.text-lighten-4 {\n color: #e1bee7 !important;\n}\n\n.purple-waves.waves-lighten-4 .waves-ripple {\n background-color: #e1bee7 !important;\n}\n\n.purple.lighten-3 {\n background-color: #ce93d8 !important;\n}\n\n.purple-text.text-lighten-3 {\n color: #ce93d8 !important;\n}\n\n.purple-waves.waves-lighten-3 .waves-ripple {\n background-color: #ce93d8 !important;\n}\n\n.purple.lighten-2 {\n background-color: #ba68c8 !important;\n}\n\n.purple-text.text-lighten-2 {\n color: #ba68c8 !important;\n}\n\n.purple-waves.waves-lighten-2 .waves-ripple {\n background-color: #ba68c8 !important;\n}\n\n.purple.lighten-1 {\n background-color: #ab47bc !important;\n}\n\n.purple-text.text-lighten-1 {\n color: #ab47bc !important;\n}\n\n.purple-waves.waves-lighten-1 .waves-ripple {\n background-color: #ab47bc !important;\n}\n\n.purple.darken-1 {\n background-color: #8e24aa !important;\n}\n\n.purple-text.text-darken-1 {\n color: #8e24aa !important;\n}\n\n.purple-waves.waves-darken-1 .waves-ripple {\n background-color: #8e24aa !important;\n}\n\n.purple.darken-2 {\n background-color: #7b1fa2 !important;\n}\n\n.purple-text.text-darken-2 {\n color: #7b1fa2 !important;\n}\n\n.purple-waves.waves-darken-2 .waves-ripple {\n background-color: #7b1fa2 !important;\n}\n\n.purple.darken-3 {\n background-color: #6a1b9a !important;\n}\n\n.purple-text.text-darken-3 {\n color: #6a1b9a !important;\n}\n\n.purple-waves.waves-darken-3 .waves-ripple {\n background-color: #6a1b9a !important;\n}\n\n.purple.darken-4 {\n background-color: #4a148c !important;\n}\n\n.purple-text.text-darken-4 {\n color: #4a148c !important;\n}\n\n.purple-waves.waves-darken-4 .waves-ripple {\n background-color: #4a148c !important;\n}\n\n.purple.accent-1 {\n background-color: #ea80fc !important;\n}\n\n.purple-text.text-accent-1 {\n color: #ea80fc !important;\n}\n\n.purple-waves.waves-accent-1 .waves-ripple {\n background-color: #ea80fc !important;\n}\n\n.purple.accent-2 {\n background-color: #e040fb !important;\n}\n\n.purple-text.text-accent-2 {\n color: #e040fb !important;\n}\n\n.purple-waves.waves-accent-2 .waves-ripple {\n background-color: #e040fb !important;\n}\n\n.purple.accent-3 {\n background-color: #d500f9 !important;\n}\n\n.purple-text.text-accent-3 {\n color: #d500f9 !important;\n}\n\n.purple-waves.waves-accent-3 .waves-ripple {\n background-color: #d500f9 !important;\n}\n\n.purple.accent-4 {\n background-color: #aa00ff !important;\n}\n\n.purple-text.text-accent-4 {\n color: #aa00ff !important;\n}\n\n.purple-waves.waves-accent-4 .waves-ripple {\n background-color: #aa00ff !important;\n}\n\n.deep-purple {\n background-color: #673ab7 !important;\n}\n\n.deep-purple-text {\n color: #673ab7 !important;\n}\n\n.deep-purple-waves .waves-ripple {\n background-color: #673ab7 !important;\n}\n\n.deep-purple.lighten-5 {\n background-color: #ede7f6 !important;\n}\n\n.deep-purple-text.text-lighten-5 {\n color: #ede7f6 !important;\n}\n\n.deep-purple-waves.waves-lighten-5 .waves-ripple {\n background-color: #ede7f6 !important;\n}\n\n.deep-purple.lighten-4 {\n background-color: #d1c4e9 !important;\n}\n\n.deep-purple-text.text-lighten-4 {\n color: #d1c4e9 !important;\n}\n\n.deep-purple-waves.waves-lighten-4 .waves-ripple {\n background-color: #d1c4e9 !important;\n}\n\n.deep-purple.lighten-3 {\n background-color: #b39ddb !important;\n}\n\n.deep-purple-text.text-lighten-3 {\n color: #b39ddb !important;\n}\n\n.deep-purple-waves.waves-lighten-3 .waves-ripple {\n background-color: #b39ddb !important;\n}\n\n.deep-purple.lighten-2 {\n background-color: #9575cd !important;\n}\n\n.deep-purple-text.text-lighten-2 {\n color: #9575cd !important;\n}\n\n.deep-purple-waves.waves-lighten-2 .waves-ripple {\n background-color: #9575cd !important;\n}\n\n.deep-purple.lighten-1 {\n background-color: #7e57c2 !important;\n}\n\n.deep-purple-text.text-lighten-1 {\n color: #7e57c2 !important;\n}\n\n.deep-purple-waves.waves-lighten-1 .waves-ripple {\n background-color: #7e57c2 !important;\n}\n\n.deep-purple.darken-1 {\n background-color: #5e35b1 !important;\n}\n\n.deep-purple-text.text-darken-1 {\n color: #5e35b1 !important;\n}\n\n.deep-purple-waves.waves-darken-1 .waves-ripple {\n background-color: #5e35b1 !important;\n}\n\n.deep-purple.darken-2 {\n background-color: #512da8 !important;\n}\n\n.deep-purple-text.text-darken-2 {\n color: #512da8 !important;\n}\n\n.deep-purple-waves.waves-darken-2 .waves-ripple {\n background-color: #512da8 !important;\n}\n\n.deep-purple.darken-3 {\n background-color: #4527a0 !important;\n}\n\n.deep-purple-text.text-darken-3 {\n color: #4527a0 !important;\n}\n\n.deep-purple-waves.waves-darken-3 .waves-ripple {\n background-color: #4527a0 !important;\n}\n\n.deep-purple.darken-4 {\n background-color: #311b92 !important;\n}\n\n.deep-purple-text.text-darken-4 {\n color: #311b92 !important;\n}\n\n.deep-purple-waves.waves-darken-4 .waves-ripple {\n background-color: #311b92 !important;\n}\n\n.deep-purple.accent-1 {\n background-color: #b388ff !important;\n}\n\n.deep-purple-text.text-accent-1 {\n color: #b388ff !important;\n}\n\n.deep-purple-waves.waves-accent-1 .waves-ripple {\n background-color: #b388ff !important;\n}\n\n.deep-purple.accent-2 {\n background-color: #7c4dff !important;\n}\n\n.deep-purple-text.text-accent-2 {\n color: #7c4dff !important;\n}\n\n.deep-purple-waves.waves-accent-2 .waves-ripple {\n background-color: #7c4dff !important;\n}\n\n.deep-purple.accent-3 {\n background-color: #651fff !important;\n}\n\n.deep-purple-text.text-accent-3 {\n color: #651fff !important;\n}\n\n.deep-purple-waves.waves-accent-3 .waves-ripple {\n background-color: #651fff !important;\n}\n\n.deep-purple.accent-4 {\n background-color: #6200ea !important;\n}\n\n.deep-purple-text.text-accent-4 {\n color: #6200ea !important;\n}\n\n.deep-purple-waves.waves-accent-4 .waves-ripple {\n background-color: #6200ea !important;\n}\n\n.indigo {\n background-color: #3f51b5 !important;\n}\n\n.indigo-text {\n color: #3f51b5 !important;\n}\n\n.indigo-waves .waves-ripple {\n background-color: #3f51b5 !important;\n}\n\n.indigo.lighten-5 {\n background-color: #e8eaf6 !important;\n}\n\n.indigo-text.text-lighten-5 {\n color: #e8eaf6 !important;\n}\n\n.indigo-waves.waves-lighten-5 .waves-ripple {\n background-color: #e8eaf6 !important;\n}\n\n.indigo.lighten-4 {\n background-color: #c5cae9 !important;\n}\n\n.indigo-text.text-lighten-4 {\n color: #c5cae9 !important;\n}\n\n.indigo-waves.waves-lighten-4 .waves-ripple {\n background-color: #c5cae9 !important;\n}\n\n.indigo.lighten-3 {\n background-color: #9fa8da !important;\n}\n\n.indigo-text.text-lighten-3 {\n color: #9fa8da !important;\n}\n\n.indigo-waves.waves-lighten-3 .waves-ripple {\n background-color: #9fa8da !important;\n}\n\n.indigo.lighten-2 {\n background-color: #7986cb !important;\n}\n\n.indigo-text.text-lighten-2 {\n color: #7986cb !important;\n}\n\n.indigo-waves.waves-lighten-2 .waves-ripple {\n background-color: #7986cb !important;\n}\n\n.indigo.lighten-1 {\n background-color: #5c6bc0 !important;\n}\n\n.indigo-text.text-lighten-1 {\n color: #5c6bc0 !important;\n}\n\n.indigo-waves.waves-lighten-1 .waves-ripple {\n background-color: #5c6bc0 !important;\n}\n\n.indigo.darken-1 {\n background-color: #3949ab !important;\n}\n\n.indigo-text.text-darken-1 {\n color: #3949ab !important;\n}\n\n.indigo-waves.waves-darken-1 .waves-ripple {\n background-color: #3949ab !important;\n}\n\n.indigo.darken-2 {\n background-color: #303f9f !important;\n}\n\n.indigo-text.text-darken-2 {\n color: #303f9f !important;\n}\n\n.indigo-waves.waves-darken-2 .waves-ripple {\n background-color: #303f9f !important;\n}\n\n.indigo.darken-3 {\n background-color: #283593 !important;\n}\n\n.indigo-text.text-darken-3 {\n color: #283593 !important;\n}\n\n.indigo-waves.waves-darken-3 .waves-ripple {\n background-color: #283593 !important;\n}\n\n.indigo.darken-4 {\n background-color: #1a237e !important;\n}\n\n.indigo-text.text-darken-4 {\n color: #1a237e !important;\n}\n\n.indigo-waves.waves-darken-4 .waves-ripple {\n background-color: #1a237e !important;\n}\n\n.indigo.accent-1 {\n background-color: #8c9eff !important;\n}\n\n.indigo-text.text-accent-1 {\n color: #8c9eff !important;\n}\n\n.indigo-waves.waves-accent-1 .waves-ripple {\n background-color: #8c9eff !important;\n}\n\n.indigo.accent-2 {\n background-color: #536dfe !important;\n}\n\n.indigo-text.text-accent-2 {\n color: #536dfe !important;\n}\n\n.indigo-waves.waves-accent-2 .waves-ripple {\n background-color: #536dfe !important;\n}\n\n.indigo.accent-3 {\n background-color: #3d5afe !important;\n}\n\n.indigo-text.text-accent-3 {\n color: #3d5afe !important;\n}\n\n.indigo-waves.waves-accent-3 .waves-ripple {\n background-color: #3d5afe !important;\n}\n\n.indigo.accent-4 {\n background-color: #304ffe !important;\n}\n\n.indigo-text.text-accent-4 {\n color: #304ffe !important;\n}\n\n.indigo-waves.waves-accent-4 .waves-ripple {\n background-color: #304ffe !important;\n}\n\n.blue {\n background-color: #2196f3 !important;\n}\n\n.blue-text {\n color: #2196f3 !important;\n}\n\n.blue-waves .waves-ripple {\n background-color: #2196f3 !important;\n}\n\n.blue.lighten-5 {\n background-color: #e3f2fd !important;\n}\n\n.blue-text.text-lighten-5 {\n color: #e3f2fd !important;\n}\n\n.blue-waves.waves-lighten-5 .waves-ripple {\n background-color: #e3f2fd !important;\n}\n\n.blue.lighten-4 {\n background-color: #bbdefb !important;\n}\n\n.blue-text.text-lighten-4 {\n color: #bbdefb !important;\n}\n\n.blue-waves.waves-lighten-4 .waves-ripple {\n background-color: #bbdefb !important;\n}\n\n.blue.lighten-3 {\n background-color: #90caf9 !important;\n}\n\n.blue-text.text-lighten-3 {\n color: #90caf9 !important;\n}\n\n.blue-waves.waves-lighten-3 .waves-ripple {\n background-color: #90caf9 !important;\n}\n\n.blue.lighten-2 {\n background-color: #64b5f6 !important;\n}\n\n.blue-text.text-lighten-2 {\n color: #64b5f6 !important;\n}\n\n.blue-waves.waves-lighten-2 .waves-ripple {\n background-color: #64b5f6 !important;\n}\n\n.blue.lighten-1 {\n background-color: #42a5f5 !important;\n}\n\n.blue-text.text-lighten-1 {\n color: #42a5f5 !important;\n}\n\n.blue-waves.waves-lighten-1 .waves-ripple {\n background-color: #42a5f5 !important;\n}\n\n.blue.darken-1 {\n background-color: #1e88e5 !important;\n}\n\n.blue-text.text-darken-1 {\n color: #1e88e5 !important;\n}\n\n.blue-waves.waves-darken-1 .waves-ripple {\n background-color: #1e88e5 !important;\n}\n\n.blue.darken-2 {\n background-color: #1976d2 !important;\n}\n\n.blue-text.text-darken-2 {\n color: #1976d2 !important;\n}\n\n.blue-waves.waves-darken-2 .waves-ripple {\n background-color: #1976d2 !important;\n}\n\n.blue.darken-3 {\n background-color: #1565c0 !important;\n}\n\n.blue-text.text-darken-3 {\n color: #1565c0 !important;\n}\n\n.blue-waves.waves-darken-3 .waves-ripple {\n background-color: #1565c0 !important;\n}\n\n.blue.darken-4 {\n background-color: #0d47a1 !important;\n}\n\n.blue-text.text-darken-4 {\n color: #0d47a1 !important;\n}\n\n.blue-waves.waves-darken-4 .waves-ripple {\n background-color: #0d47a1 !important;\n}\n\n.blue.accent-1 {\n background-color: #82b1ff !important;\n}\n\n.blue-text.text-accent-1 {\n color: #82b1ff !important;\n}\n\n.blue-waves.waves-accent-1 .waves-ripple {\n background-color: #82b1ff !important;\n}\n\n.blue.accent-2 {\n background-color: #448aff !important;\n}\n\n.blue-text.text-accent-2 {\n color: #448aff !important;\n}\n\n.blue-waves.waves-accent-2 .waves-ripple {\n background-color: #448aff !important;\n}\n\n.blue.accent-3 {\n background-color: #2979ff !important;\n}\n\n.blue-text.text-accent-3 {\n color: #2979ff !important;\n}\n\n.blue-waves.waves-accent-3 .waves-ripple {\n background-color: #2979ff !important;\n}\n\n.blue.accent-4 {\n background-color: #2962ff !important;\n}\n\n.blue-text.text-accent-4 {\n color: #2962ff !important;\n}\n\n.blue-waves.waves-accent-4 .waves-ripple {\n background-color: #2962ff !important;\n}\n\n.light-blue {\n background-color: #03a9f4 !important;\n}\n\n.light-blue-text {\n color: #03a9f4 !important;\n}\n\n.light-blue-waves .waves-ripple {\n background-color: #03a9f4 !important;\n}\n\n.light-blue.lighten-5 {\n background-color: #e1f5fe !important;\n}\n\n.light-blue-text.text-lighten-5 {\n color: #e1f5fe !important;\n}\n\n.light-blue-waves.waves-lighten-5 .waves-ripple {\n background-color: #e1f5fe !important;\n}\n\n.light-blue.lighten-4 {\n background-color: #b3e5fc !important;\n}\n\n.light-blue-text.text-lighten-4 {\n color: #b3e5fc !important;\n}\n\n.light-blue-waves.waves-lighten-4 .waves-ripple {\n background-color: #b3e5fc !important;\n}\n\n.light-blue.lighten-3 {\n background-color: #81d4fa !important;\n}\n\n.light-blue-text.text-lighten-3 {\n color: #81d4fa !important;\n}\n\n.light-blue-waves.waves-lighten-3 .waves-ripple {\n background-color: #81d4fa !important;\n}\n\n.light-blue.lighten-2 {\n background-color: #4fc3f7 !important;\n}\n\n.light-blue-text.text-lighten-2 {\n color: #4fc3f7 !important;\n}\n\n.light-blue-waves.waves-lighten-2 .waves-ripple {\n background-color: #4fc3f7 !important;\n}\n\n.light-blue.lighten-1 {\n background-color: #29b6f6 !important;\n}\n\n.light-blue-text.text-lighten-1 {\n color: #29b6f6 !important;\n}\n\n.light-blue-waves.waves-lighten-1 .waves-ripple {\n background-color: #29b6f6 !important;\n}\n\n.light-blue.darken-1 {\n background-color: #039be5 !important;\n}\n\n.light-blue-text.text-darken-1 {\n color: #039be5 !important;\n}\n\n.light-blue-waves.waves-darken-1 .waves-ripple {\n background-color: #039be5 !important;\n}\n\n.light-blue.darken-2 {\n background-color: #0288d1 !important;\n}\n\n.light-blue-text.text-darken-2 {\n color: #0288d1 !important;\n}\n\n.light-blue-waves.waves-darken-2 .waves-ripple {\n background-color: #0288d1 !important;\n}\n\n.light-blue.darken-3 {\n background-color: #0277bd !important;\n}\n\n.light-blue-text.text-darken-3 {\n color: #0277bd !important;\n}\n\n.light-blue-waves.waves-darken-3 .waves-ripple {\n background-color: #0277bd !important;\n}\n\n.light-blue.darken-4 {\n background-color: #01579b !important;\n}\n\n.light-blue-text.text-darken-4 {\n color: #01579b !important;\n}\n\n.light-blue-waves.waves-darken-4 .waves-ripple {\n background-color: #01579b !important;\n}\n\n.light-blue.accent-1 {\n background-color: #80d8ff !important;\n}\n\n.light-blue-text.text-accent-1 {\n color: #80d8ff !important;\n}\n\n.light-blue-waves.waves-accent-1 .waves-ripple {\n background-color: #80d8ff !important;\n}\n\n.light-blue.accent-2 {\n background-color: #40c4ff !important;\n}\n\n.light-blue-text.text-accent-2 {\n color: #40c4ff !important;\n}\n\n.light-blue-waves.waves-accent-2 .waves-ripple {\n background-color: #40c4ff !important;\n}\n\n.light-blue.accent-3 {\n background-color: #00b0ff !important;\n}\n\n.light-blue-text.text-accent-3 {\n color: #00b0ff !important;\n}\n\n.light-blue-waves.waves-accent-3 .waves-ripple {\n background-color: #00b0ff !important;\n}\n\n.light-blue.accent-4 {\n background-color: #0091ea !important;\n}\n\n.light-blue-text.text-accent-4 {\n color: #0091ea !important;\n}\n\n.light-blue-waves.waves-accent-4 .waves-ripple {\n background-color: #0091ea !important;\n}\n\n.cyan {\n background-color: #00bcd4 !important;\n}\n\n.cyan-text {\n color: #00bcd4 !important;\n}\n\n.cyan-waves .waves-ripple {\n background-color: #00bcd4 !important;\n}\n\n.cyan.lighten-5 {\n background-color: #e0f7fa !important;\n}\n\n.cyan-text.text-lighten-5 {\n color: #e0f7fa !important;\n}\n\n.cyan-waves.waves-lighten-5 .waves-ripple {\n background-color: #e0f7fa !important;\n}\n\n.cyan.lighten-4 {\n background-color: #b2ebf2 !important;\n}\n\n.cyan-text.text-lighten-4 {\n color: #b2ebf2 !important;\n}\n\n.cyan-waves.waves-lighten-4 .waves-ripple {\n background-color: #b2ebf2 !important;\n}\n\n.cyan.lighten-3 {\n background-color: #80deea !important;\n}\n\n.cyan-text.text-lighten-3 {\n color: #80deea !important;\n}\n\n.cyan-waves.waves-lighten-3 .waves-ripple {\n background-color: #80deea !important;\n}\n\n.cyan.lighten-2 {\n background-color: #4dd0e1 !important;\n}\n\n.cyan-text.text-lighten-2 {\n color: #4dd0e1 !important;\n}\n\n.cyan-waves.waves-lighten-2 .waves-ripple {\n background-color: #4dd0e1 !important;\n}\n\n.cyan.lighten-1 {\n background-color: #26c6da !important;\n}\n\n.cyan-text.text-lighten-1 {\n color: #26c6da !important;\n}\n\n.cyan-waves.waves-lighten-1 .waves-ripple {\n background-color: #26c6da !important;\n}\n\n.cyan.darken-1 {\n background-color: #00acc1 !important;\n}\n\n.cyan-text.text-darken-1 {\n color: #00acc1 !important;\n}\n\n.cyan-waves.waves-darken-1 .waves-ripple {\n background-color: #00acc1 !important;\n}\n\n.cyan.darken-2 {\n background-color: #0097a7 !important;\n}\n\n.cyan-text.text-darken-2 {\n color: #0097a7 !important;\n}\n\n.cyan-waves.waves-darken-2 .waves-ripple {\n background-color: #0097a7 !important;\n}\n\n.cyan.darken-3 {\n background-color: #00838f !important;\n}\n\n.cyan-text.text-darken-3 {\n color: #00838f !important;\n}\n\n.cyan-waves.waves-darken-3 .waves-ripple {\n background-color: #00838f !important;\n}\n\n.cyan.darken-4 {\n background-color: #006064 !important;\n}\n\n.cyan-text.text-darken-4 {\n color: #006064 !important;\n}\n\n.cyan-waves.waves-darken-4 .waves-ripple {\n background-color: #006064 !important;\n}\n\n.cyan.accent-1 {\n background-color: #84ffff !important;\n}\n\n.cyan-text.text-accent-1 {\n color: #84ffff !important;\n}\n\n.cyan-waves.waves-accent-1 .waves-ripple {\n background-color: #84ffff !important;\n}\n\n.cyan.accent-2 {\n background-color: #18ffff !important;\n}\n\n.cyan-text.text-accent-2 {\n color: #18ffff !important;\n}\n\n.cyan-waves.waves-accent-2 .waves-ripple {\n background-color: #18ffff !important;\n}\n\n.cyan.accent-3 {\n background-color: #00e5ff !important;\n}\n\n.cyan-text.text-accent-3 {\n color: #00e5ff !important;\n}\n\n.cyan-waves.waves-accent-3 .waves-ripple {\n background-color: #00e5ff !important;\n}\n\n.cyan.accent-4 {\n background-color: #00b8d4 !important;\n}\n\n.cyan-text.text-accent-4 {\n color: #00b8d4 !important;\n}\n\n.cyan-waves.waves-accent-4 .waves-ripple {\n background-color: #00b8d4 !important;\n}\n\n.teal {\n background-color: #009688 !important;\n}\n\n.teal-text {\n color: #009688 !important;\n}\n\n.teal-waves .waves-ripple {\n background-color: #009688 !important;\n}\n\n.teal.lighten-5 {\n background-color: #e0f2f1 !important;\n}\n\n.teal-text.text-lighten-5 {\n color: #e0f2f1 !important;\n}\n\n.teal-waves.waves-lighten-5 .waves-ripple {\n background-color: #e0f2f1 !important;\n}\n\n.teal.lighten-4 {\n background-color: #b2dfdb !important;\n}\n\n.teal-text.text-lighten-4 {\n color: #b2dfdb !important;\n}\n\n.teal-waves.waves-lighten-4 .waves-ripple {\n background-color: #b2dfdb !important;\n}\n\n.teal.lighten-3 {\n background-color: #80cbc4 !important;\n}\n\n.teal-text.text-lighten-3 {\n color: #80cbc4 !important;\n}\n\n.teal-waves.waves-lighten-3 .waves-ripple {\n background-color: #80cbc4 !important;\n}\n\n.teal.lighten-2 {\n background-color: #4db6ac !important;\n}\n\n.teal-text.text-lighten-2 {\n color: #4db6ac !important;\n}\n\n.teal-waves.waves-lighten-2 .waves-ripple {\n background-color: #4db6ac !important;\n}\n\n.teal.lighten-1 {\n background-color: #26a69a !important;\n}\n\n.teal-text.text-lighten-1 {\n color: #26a69a !important;\n}\n\n.teal-waves.waves-lighten-1 .waves-ripple {\n background-color: #26a69a !important;\n}\n\n.teal.darken-1 {\n background-color: #00897b !important;\n}\n\n.teal-text.text-darken-1 {\n color: #00897b !important;\n}\n\n.teal-waves.waves-darken-1 .waves-ripple {\n background-color: #00897b !important;\n}\n\n.teal.darken-2 {\n background-color: #00796b !important;\n}\n\n.teal-text.text-darken-2 {\n color: #00796b !important;\n}\n\n.teal-waves.waves-darken-2 .waves-ripple {\n background-color: #00796b !important;\n}\n\n.teal.darken-3 {\n background-color: #00695c !important;\n}\n\n.teal-text.text-darken-3 {\n color: #00695c !important;\n}\n\n.teal-waves.waves-darken-3 .waves-ripple {\n background-color: #00695c !important;\n}\n\n.teal.darken-4 {\n background-color: #004d40 !important;\n}\n\n.teal-text.text-darken-4 {\n color: #004d40 !important;\n}\n\n.teal-waves.waves-darken-4 .waves-ripple {\n background-color: #004d40 !important;\n}\n\n.teal.accent-1 {\n background-color: #a7ffeb !important;\n}\n\n.teal-text.text-accent-1 {\n color: #a7ffeb !important;\n}\n\n.teal-waves.waves-accent-1 .waves-ripple {\n background-color: #a7ffeb !important;\n}\n\n.teal.accent-2 {\n background-color: #64ffda !important;\n}\n\n.teal-text.text-accent-2 {\n color: #64ffda !important;\n}\n\n.teal-waves.waves-accent-2 .waves-ripple {\n background-color: #64ffda !important;\n}\n\n.teal.accent-3 {\n background-color: #1de9b6 !important;\n}\n\n.teal-text.text-accent-3 {\n color: #1de9b6 !important;\n}\n\n.teal-waves.waves-accent-3 .waves-ripple {\n background-color: #1de9b6 !important;\n}\n\n.teal.accent-4 {\n background-color: #00bfa5 !important;\n}\n\n.teal-text.text-accent-4 {\n color: #00bfa5 !important;\n}\n\n.teal-waves.waves-accent-4 .waves-ripple {\n background-color: #00bfa5 !important;\n}\n\n.green {\n background-color: #4caf50 !important;\n}\n\n.green-text {\n color: #4caf50 !important;\n}\n\n.green-waves .waves-ripple {\n background-color: #4caf50 !important;\n}\n\n.green.lighten-5 {\n background-color: #e8f5e9 !important;\n}\n\n.green-text.text-lighten-5 {\n color: #e8f5e9 !important;\n}\n\n.green-waves.waves-lighten-5 .waves-ripple {\n background-color: #e8f5e9 !important;\n}\n\n.green.lighten-4 {\n background-color: #c8e6c9 !important;\n}\n\n.green-text.text-lighten-4 {\n color: #c8e6c9 !important;\n}\n\n.green-waves.waves-lighten-4 .waves-ripple {\n background-color: #c8e6c9 !important;\n}\n\n.green.lighten-3 {\n background-color: #a5d6a7 !important;\n}\n\n.green-text.text-lighten-3 {\n color: #a5d6a7 !important;\n}\n\n.green-waves.waves-lighten-3 .waves-ripple {\n background-color: #a5d6a7 !important;\n}\n\n.green.lighten-2 {\n background-color: #81c784 !important;\n}\n\n.green-text.text-lighten-2 {\n color: #81c784 !important;\n}\n\n.green-waves.waves-lighten-2 .waves-ripple {\n background-color: #81c784 !important;\n}\n\n.green.lighten-1 {\n background-color: #66bb6a !important;\n}\n\n.green-text.text-lighten-1 {\n color: #66bb6a !important;\n}\n\n.green-waves.waves-lighten-1 .waves-ripple {\n background-color: #66bb6a !important;\n}\n\n.green.darken-1 {\n background-color: #43a047 !important;\n}\n\n.green-text.text-darken-1 {\n color: #43a047 !important;\n}\n\n.green-waves.waves-darken-1 .waves-ripple {\n background-color: #43a047 !important;\n}\n\n.green.darken-2 {\n background-color: #388e3c !important;\n}\n\n.green-text.text-darken-2 {\n color: #388e3c !important;\n}\n\n.green-waves.waves-darken-2 .waves-ripple {\n background-color: #388e3c !important;\n}\n\n.green.darken-3 {\n background-color: #2e7d32 !important;\n}\n\n.green-text.text-darken-3 {\n color: #2e7d32 !important;\n}\n\n.green-waves.waves-darken-3 .waves-ripple {\n background-color: #2e7d32 !important;\n}\n\n.green.darken-4 {\n background-color: #1b5e20 !important;\n}\n\n.green-text.text-darken-4 {\n color: #1b5e20 !important;\n}\n\n.green-waves.waves-darken-4 .waves-ripple {\n background-color: #1b5e20 !important;\n}\n\n.green.accent-1 {\n background-color: #b9f6ca !important;\n}\n\n.green-text.text-accent-1 {\n color: #b9f6ca !important;\n}\n\n.green-waves.waves-accent-1 .waves-ripple {\n background-color: #b9f6ca !important;\n}\n\n.green.accent-2 {\n background-color: #69f0ae !important;\n}\n\n.green-text.text-accent-2 {\n color: #69f0ae !important;\n}\n\n.green-waves.waves-accent-2 .waves-ripple {\n background-color: #69f0ae !important;\n}\n\n.green.accent-3 {\n background-color: #00e676 !important;\n}\n\n.green-text.text-accent-3 {\n color: #00e676 !important;\n}\n\n.green-waves.waves-accent-3 .waves-ripple {\n background-color: #00e676 !important;\n}\n\n.green.accent-4 {\n background-color: #00c853 !important;\n}\n\n.green-text.text-accent-4 {\n color: #00c853 !important;\n}\n\n.green-waves.waves-accent-4 .waves-ripple {\n background-color: #00c853 !important;\n}\n\n.light-green {\n background-color: #8bc34a !important;\n}\n\n.light-green-text {\n color: #8bc34a !important;\n}\n\n.light-green-waves .waves-ripple {\n background-color: #8bc34a !important;\n}\n\n.light-green.lighten-5 {\n background-color: #f1f8e9 !important;\n}\n\n.light-green-text.text-lighten-5 {\n color: #f1f8e9 !important;\n}\n\n.light-green-waves.waves-lighten-5 .waves-ripple {\n background-color: #f1f8e9 !important;\n}\n\n.light-green.lighten-4 {\n background-color: #dcedc8 !important;\n}\n\n.light-green-text.text-lighten-4 {\n color: #dcedc8 !important;\n}\n\n.light-green-waves.waves-lighten-4 .waves-ripple {\n background-color: #dcedc8 !important;\n}\n\n.light-green.lighten-3 {\n background-color: #c5e1a5 !important;\n}\n\n.light-green-text.text-lighten-3 {\n color: #c5e1a5 !important;\n}\n\n.light-green-waves.waves-lighten-3 .waves-ripple {\n background-color: #c5e1a5 !important;\n}\n\n.light-green.lighten-2 {\n background-color: #aed581 !important;\n}\n\n.light-green-text.text-lighten-2 {\n color: #aed581 !important;\n}\n\n.light-green-waves.waves-lighten-2 .waves-ripple {\n background-color: #aed581 !important;\n}\n\n.light-green.lighten-1 {\n background-color: #9ccc65 !important;\n}\n\n.light-green-text.text-lighten-1 {\n color: #9ccc65 !important;\n}\n\n.light-green-waves.waves-lighten-1 .waves-ripple {\n background-color: #9ccc65 !important;\n}\n\n.light-green.darken-1 {\n background-color: #7cb342 !important;\n}\n\n.light-green-text.text-darken-1 {\n color: #7cb342 !important;\n}\n\n.light-green-waves.waves-darken-1 .waves-ripple {\n background-color: #7cb342 !important;\n}\n\n.light-green.darken-2 {\n background-color: #689f38 !important;\n}\n\n.light-green-text.text-darken-2 {\n color: #689f38 !important;\n}\n\n.light-green-waves.waves-darken-2 .waves-ripple {\n background-color: #689f38 !important;\n}\n\n.light-green.darken-3 {\n background-color: #558b2f !important;\n}\n\n.light-green-text.text-darken-3 {\n color: #558b2f !important;\n}\n\n.light-green-waves.waves-darken-3 .waves-ripple {\n background-color: #558b2f !important;\n}\n\n.light-green.darken-4 {\n background-color: #33691e !important;\n}\n\n.light-green-text.text-darken-4 {\n color: #33691e !important;\n}\n\n.light-green-waves.waves-darken-4 .waves-ripple {\n background-color: #33691e !important;\n}\n\n.light-green.accent-1 {\n background-color: #ccff90 !important;\n}\n\n.light-green-text.text-accent-1 {\n color: #ccff90 !important;\n}\n\n.light-green-waves.waves-accent-1 .waves-ripple {\n background-color: #ccff90 !important;\n}\n\n.light-green.accent-2 {\n background-color: #b2ff59 !important;\n}\n\n.light-green-text.text-accent-2 {\n color: #b2ff59 !important;\n}\n\n.light-green-waves.waves-accent-2 .waves-ripple {\n background-color: #b2ff59 !important;\n}\n\n.light-green.accent-3 {\n background-color: #76ff03 !important;\n}\n\n.light-green-text.text-accent-3 {\n color: #76ff03 !important;\n}\n\n.light-green-waves.waves-accent-3 .waves-ripple {\n background-color: #76ff03 !important;\n}\n\n.light-green.accent-4 {\n background-color: #64dd17 !important;\n}\n\n.light-green-text.text-accent-4 {\n color: #64dd17 !important;\n}\n\n.light-green-waves.waves-accent-4 .waves-ripple {\n background-color: #64dd17 !important;\n}\n\n.lime {\n background-color: #cddc39 !important;\n}\n\n.lime-text {\n color: #cddc39 !important;\n}\n\n.lime-waves .waves-ripple {\n background-color: #cddc39 !important;\n}\n\n.lime.lighten-5 {\n background-color: #f9fbe7 !important;\n}\n\n.lime-text.text-lighten-5 {\n color: #f9fbe7 !important;\n}\n\n.lime-waves.waves-lighten-5 .waves-ripple {\n background-color: #f9fbe7 !important;\n}\n\n.lime.lighten-4 {\n background-color: #f0f4c3 !important;\n}\n\n.lime-text.text-lighten-4 {\n color: #f0f4c3 !important;\n}\n\n.lime-waves.waves-lighten-4 .waves-ripple {\n background-color: #f0f4c3 !important;\n}\n\n.lime.lighten-3 {\n background-color: #e6ee9c !important;\n}\n\n.lime-text.text-lighten-3 {\n color: #e6ee9c !important;\n}\n\n.lime-waves.waves-lighten-3 .waves-ripple {\n background-color: #e6ee9c !important;\n}\n\n.lime.lighten-2 {\n background-color: #dce775 !important;\n}\n\n.lime-text.text-lighten-2 {\n color: #dce775 !important;\n}\n\n.lime-waves.waves-lighten-2 .waves-ripple {\n background-color: #dce775 !important;\n}\n\n.lime.lighten-1 {\n background-color: #d4e157 !important;\n}\n\n.lime-text.text-lighten-1 {\n color: #d4e157 !important;\n}\n\n.lime-waves.waves-lighten-1 .waves-ripple {\n background-color: #d4e157 !important;\n}\n\n.lime.darken-1 {\n background-color: #c0ca33 !important;\n}\n\n.lime-text.text-darken-1 {\n color: #c0ca33 !important;\n}\n\n.lime-waves.waves-darken-1 .waves-ripple {\n background-color: #c0ca33 !important;\n}\n\n.lime.darken-2 {\n background-color: #afb42b !important;\n}\n\n.lime-text.text-darken-2 {\n color: #afb42b !important;\n}\n\n.lime-waves.waves-darken-2 .waves-ripple {\n background-color: #afb42b !important;\n}\n\n.lime.darken-3 {\n background-color: #9e9d24 !important;\n}\n\n.lime-text.text-darken-3 {\n color: #9e9d24 !important;\n}\n\n.lime-waves.waves-darken-3 .waves-ripple {\n background-color: #9e9d24 !important;\n}\n\n.lime.darken-4 {\n background-color: #827717 !important;\n}\n\n.lime-text.text-darken-4 {\n color: #827717 !important;\n}\n\n.lime-waves.waves-darken-4 .waves-ripple {\n background-color: #827717 !important;\n}\n\n.lime.accent-1 {\n background-color: #f4ff81 !important;\n}\n\n.lime-text.text-accent-1 {\n color: #f4ff81 !important;\n}\n\n.lime-waves.waves-accent-1 .waves-ripple {\n background-color: #f4ff81 !important;\n}\n\n.lime.accent-2 {\n background-color: #eeff41 !important;\n}\n\n.lime-text.text-accent-2 {\n color: #eeff41 !important;\n}\n\n.lime-waves.waves-accent-2 .waves-ripple {\n background-color: #eeff41 !important;\n}\n\n.lime.accent-3 {\n background-color: #c6ff00 !important;\n}\n\n.lime-text.text-accent-3 {\n color: #c6ff00 !important;\n}\n\n.lime-waves.waves-accent-3 .waves-ripple {\n background-color: #c6ff00 !important;\n}\n\n.lime.accent-4 {\n background-color: #aeea00 !important;\n}\n\n.lime-text.text-accent-4 {\n color: #aeea00 !important;\n}\n\n.lime-waves.waves-accent-4 .waves-ripple {\n background-color: #aeea00 !important;\n}\n\n.yellow {\n background-color: #ffeb3b !important;\n}\n\n.yellow-text {\n color: #ffeb3b !important;\n}\n\n.yellow-waves .waves-ripple {\n background-color: #ffeb3b !important;\n}\n\n.yellow.lighten-5 {\n background-color: #fffde7 !important;\n}\n\n.yellow-text.text-lighten-5 {\n color: #fffde7 !important;\n}\n\n.yellow-waves.waves-lighten-5 .waves-ripple {\n background-color: #fffde7 !important;\n}\n\n.yellow.lighten-4 {\n background-color: #fff9c4 !important;\n}\n\n.yellow-text.text-lighten-4 {\n color: #fff9c4 !important;\n}\n\n.yellow-waves.waves-lighten-4 .waves-ripple {\n background-color: #fff9c4 !important;\n}\n\n.yellow.lighten-3 {\n background-color: #fff59d !important;\n}\n\n.yellow-text.text-lighten-3 {\n color: #fff59d !important;\n}\n\n.yellow-waves.waves-lighten-3 .waves-ripple {\n background-color: #fff59d !important;\n}\n\n.yellow.lighten-2 {\n background-color: #fff176 !important;\n}\n\n.yellow-text.text-lighten-2 {\n color: #fff176 !important;\n}\n\n.yellow-waves.waves-lighten-2 .waves-ripple {\n background-color: #fff176 !important;\n}\n\n.yellow.lighten-1 {\n background-color: #ffee58 !important;\n}\n\n.yellow-text.text-lighten-1 {\n color: #ffee58 !important;\n}\n\n.yellow-waves.waves-lighten-1 .waves-ripple {\n background-color: #ffee58 !important;\n}\n\n.yellow.darken-1 {\n background-color: #fdd835 !important;\n}\n\n.yellow-text.text-darken-1 {\n color: #fdd835 !important;\n}\n\n.yellow-waves.waves-darken-1 .waves-ripple {\n background-color: #fdd835 !important;\n}\n\n.yellow.darken-2 {\n background-color: #fbc02d !important;\n}\n\n.yellow-text.text-darken-2 {\n color: #fbc02d !important;\n}\n\n.yellow-waves.waves-darken-2 .waves-ripple {\n background-color: #fbc02d !important;\n}\n\n.yellow.darken-3 {\n background-color: #f9a825 !important;\n}\n\n.yellow-text.text-darken-3 {\n color: #f9a825 !important;\n}\n\n.yellow-waves.waves-darken-3 .waves-ripple {\n background-color: #f9a825 !important;\n}\n\n.yellow.darken-4 {\n background-color: #f57f17 !important;\n}\n\n.yellow-text.text-darken-4 {\n color: #f57f17 !important;\n}\n\n.yellow-waves.waves-darken-4 .waves-ripple {\n background-color: #f57f17 !important;\n}\n\n.yellow.accent-1 {\n background-color: #ffff8d !important;\n}\n\n.yellow-text.text-accent-1 {\n color: #ffff8d !important;\n}\n\n.yellow-waves.waves-accent-1 .waves-ripple {\n background-color: #ffff8d !important;\n}\n\n.yellow.accent-2 {\n background-color: #ffff00 !important;\n}\n\n.yellow-text.text-accent-2 {\n color: #ffff00 !important;\n}\n\n.yellow-waves.waves-accent-2 .waves-ripple {\n background-color: #ffff00 !important;\n}\n\n.yellow.accent-3 {\n background-color: #ffea00 !important;\n}\n\n.yellow-text.text-accent-3 {\n color: #ffea00 !important;\n}\n\n.yellow-waves.waves-accent-3 .waves-ripple {\n background-color: #ffea00 !important;\n}\n\n.yellow.accent-4 {\n background-color: #ffd600 !important;\n}\n\n.yellow-text.text-accent-4 {\n color: #ffd600 !important;\n}\n\n.yellow-waves.waves-accent-4 .waves-ripple {\n background-color: #ffd600 !important;\n}\n\n.amber {\n background-color: #ffc107 !important;\n}\n\n.amber-text {\n color: #ffc107 !important;\n}\n\n.amber-waves .waves-ripple {\n background-color: #ffc107 !important;\n}\n\n.amber.lighten-5 {\n background-color: #fff8e1 !important;\n}\n\n.amber-text.text-lighten-5 {\n color: #fff8e1 !important;\n}\n\n.amber-waves.waves-lighten-5 .waves-ripple {\n background-color: #fff8e1 !important;\n}\n\n.amber.lighten-4 {\n background-color: #ffecb3 !important;\n}\n\n.amber-text.text-lighten-4 {\n color: #ffecb3 !important;\n}\n\n.amber-waves.waves-lighten-4 .waves-ripple {\n background-color: #ffecb3 !important;\n}\n\n.amber.lighten-3 {\n background-color: #ffe082 !important;\n}\n\n.amber-text.text-lighten-3 {\n color: #ffe082 !important;\n}\n\n.amber-waves.waves-lighten-3 .waves-ripple {\n background-color: #ffe082 !important;\n}\n\n.amber.lighten-2 {\n background-color: #ffd54f !important;\n}\n\n.amber-text.text-lighten-2 {\n color: #ffd54f !important;\n}\n\n.amber-waves.waves-lighten-2 .waves-ripple {\n background-color: #ffd54f !important;\n}\n\n.amber.lighten-1 {\n background-color: #ffca28 !important;\n}\n\n.amber-text.text-lighten-1 {\n color: #ffca28 !important;\n}\n\n.amber-waves.waves-lighten-1 .waves-ripple {\n background-color: #ffca28 !important;\n}\n\n.amber.darken-1 {\n background-color: #ffb300 !important;\n}\n\n.amber-text.text-darken-1 {\n color: #ffb300 !important;\n}\n\n.amber-waves.waves-darken-1 .waves-ripple {\n background-color: #ffb300 !important;\n}\n\n.amber.darken-2 {\n background-color: #ffa000 !important;\n}\n\n.amber-text.text-darken-2 {\n color: #ffa000 !important;\n}\n\n.amber-waves.waves-darken-2 .waves-ripple {\n background-color: #ffa000 !important;\n}\n\n.amber.darken-3 {\n background-color: #ff8f00 !important;\n}\n\n.amber-text.text-darken-3 {\n color: #ff8f00 !important;\n}\n\n.amber-waves.waves-darken-3 .waves-ripple {\n background-color: #ff8f00 !important;\n}\n\n.amber.darken-4 {\n background-color: #ff6f00 !important;\n}\n\n.amber-text.text-darken-4 {\n color: #ff6f00 !important;\n}\n\n.amber-waves.waves-darken-4 .waves-ripple {\n background-color: #ff6f00 !important;\n}\n\n.amber.accent-1 {\n background-color: #ffe57f !important;\n}\n\n.amber-text.text-accent-1 {\n color: #ffe57f !important;\n}\n\n.amber-waves.waves-accent-1 .waves-ripple {\n background-color: #ffe57f !important;\n}\n\n.amber.accent-2 {\n background-color: #ffd740 !important;\n}\n\n.amber-text.text-accent-2 {\n color: #ffd740 !important;\n}\n\n.amber-waves.waves-accent-2 .waves-ripple {\n background-color: #ffd740 !important;\n}\n\n.amber.accent-3 {\n background-color: #ffc400 !important;\n}\n\n.amber-text.text-accent-3 {\n color: #ffc400 !important;\n}\n\n.amber-waves.waves-accent-3 .waves-ripple {\n background-color: #ffc400 !important;\n}\n\n.amber.accent-4 {\n background-color: #ffab00 !important;\n}\n\n.amber-text.text-accent-4 {\n color: #ffab00 !important;\n}\n\n.amber-waves.waves-accent-4 .waves-ripple {\n background-color: #ffab00 !important;\n}\n\n.orange {\n background-color: #ff9800 !important;\n}\n\n.orange-text {\n color: #ff9800 !important;\n}\n\n.orange-waves .waves-ripple {\n background-color: #ff9800 !important;\n}\n\n.orange.lighten-5 {\n background-color: #fff3e0 !important;\n}\n\n.orange-text.text-lighten-5 {\n color: #fff3e0 !important;\n}\n\n.orange-waves.waves-lighten-5 .waves-ripple {\n background-color: #fff3e0 !important;\n}\n\n.orange.lighten-4 {\n background-color: #ffe0b2 !important;\n}\n\n.orange-text.text-lighten-4 {\n color: #ffe0b2 !important;\n}\n\n.orange-waves.waves-lighten-4 .waves-ripple {\n background-color: #ffe0b2 !important;\n}\n\n.orange.lighten-3 {\n background-color: #ffcc80 !important;\n}\n\n.orange-text.text-lighten-3 {\n color: #ffcc80 !important;\n}\n\n.orange-waves.waves-lighten-3 .waves-ripple {\n background-color: #ffcc80 !important;\n}\n\n.orange.lighten-2 {\n background-color: #ffb74d !important;\n}\n\n.orange-text.text-lighten-2 {\n color: #ffb74d !important;\n}\n\n.orange-waves.waves-lighten-2 .waves-ripple {\n background-color: #ffb74d !important;\n}\n\n.orange.lighten-1 {\n background-color: #ffa726 !important;\n}\n\n.orange-text.text-lighten-1 {\n color: #ffa726 !important;\n}\n\n.orange-waves.waves-lighten-1 .waves-ripple {\n background-color: #ffa726 !important;\n}\n\n.orange.darken-1 {\n background-color: #fb8c00 !important;\n}\n\n.orange-text.text-darken-1 {\n color: #fb8c00 !important;\n}\n\n.orange-waves.waves-darken-1 .waves-ripple {\n background-color: #fb8c00 !important;\n}\n\n.orange.darken-2 {\n background-color: #f57c00 !important;\n}\n\n.orange-text.text-darken-2 {\n color: #f57c00 !important;\n}\n\n.orange-waves.waves-darken-2 .waves-ripple {\n background-color: #f57c00 !important;\n}\n\n.orange.darken-3 {\n background-color: #ef6c00 !important;\n}\n\n.orange-text.text-darken-3 {\n color: #ef6c00 !important;\n}\n\n.orange-waves.waves-darken-3 .waves-ripple {\n background-color: #ef6c00 !important;\n}\n\n.orange.darken-4 {\n background-color: #e65100 !important;\n}\n\n.orange-text.text-darken-4 {\n color: #e65100 !important;\n}\n\n.orange-waves.waves-darken-4 .waves-ripple {\n background-color: #e65100 !important;\n}\n\n.orange.accent-1 {\n background-color: #ffd180 !important;\n}\n\n.orange-text.text-accent-1 {\n color: #ffd180 !important;\n}\n\n.orange-waves.waves-accent-1 .waves-ripple {\n background-color: #ffd180 !important;\n}\n\n.orange.accent-2 {\n background-color: #ffab40 !important;\n}\n\n.orange-text.text-accent-2 {\n color: #ffab40 !important;\n}\n\n.orange-waves.waves-accent-2 .waves-ripple {\n background-color: #ffab40 !important;\n}\n\n.orange.accent-3 {\n background-color: #ff9100 !important;\n}\n\n.orange-text.text-accent-3 {\n color: #ff9100 !important;\n}\n\n.orange-waves.waves-accent-3 .waves-ripple {\n background-color: #ff9100 !important;\n}\n\n.orange.accent-4 {\n background-color: #ff6d00 !important;\n}\n\n.orange-text.text-accent-4 {\n color: #ff6d00 !important;\n}\n\n.orange-waves.waves-accent-4 .waves-ripple {\n background-color: #ff6d00 !important;\n}\n\n.deep-orange {\n background-color: #ff5722 !important;\n}\n\n.deep-orange-text {\n color: #ff5722 !important;\n}\n\n.deep-orange-waves .waves-ripple {\n background-color: #ff5722 !important;\n}\n\n.deep-orange.lighten-5 {\n background-color: #fbe9e7 !important;\n}\n\n.deep-orange-text.text-lighten-5 {\n color: #fbe9e7 !important;\n}\n\n.deep-orange-waves.waves-lighten-5 .waves-ripple {\n background-color: #fbe9e7 !important;\n}\n\n.deep-orange.lighten-4 {\n background-color: #ffccbc !important;\n}\n\n.deep-orange-text.text-lighten-4 {\n color: #ffccbc !important;\n}\n\n.deep-orange-waves.waves-lighten-4 .waves-ripple {\n background-color: #ffccbc !important;\n}\n\n.deep-orange.lighten-3 {\n background-color: #ffab91 !important;\n}\n\n.deep-orange-text.text-lighten-3 {\n color: #ffab91 !important;\n}\n\n.deep-orange-waves.waves-lighten-3 .waves-ripple {\n background-color: #ffab91 !important;\n}\n\n.deep-orange.lighten-2 {\n background-color: #ff8a65 !important;\n}\n\n.deep-orange-text.text-lighten-2 {\n color: #ff8a65 !important;\n}\n\n.deep-orange-waves.waves-lighten-2 .waves-ripple {\n background-color: #ff8a65 !important;\n}\n\n.deep-orange.lighten-1 {\n background-color: #ff7043 !important;\n}\n\n.deep-orange-text.text-lighten-1 {\n color: #ff7043 !important;\n}\n\n.deep-orange-waves.waves-lighten-1 .waves-ripple {\n background-color: #ff7043 !important;\n}\n\n.deep-orange.darken-1 {\n background-color: #f4511e !important;\n}\n\n.deep-orange-text.text-darken-1 {\n color: #f4511e !important;\n}\n\n.deep-orange-waves.waves-darken-1 .waves-ripple {\n background-color: #f4511e !important;\n}\n\n.deep-orange.darken-2 {\n background-color: #e64a19 !important;\n}\n\n.deep-orange-text.text-darken-2 {\n color: #e64a19 !important;\n}\n\n.deep-orange-waves.waves-darken-2 .waves-ripple {\n background-color: #e64a19 !important;\n}\n\n.deep-orange.darken-3 {\n background-color: #d84315 !important;\n}\n\n.deep-orange-text.text-darken-3 {\n color: #d84315 !important;\n}\n\n.deep-orange-waves.waves-darken-3 .waves-ripple {\n background-color: #d84315 !important;\n}\n\n.deep-orange.darken-4 {\n background-color: #bf360c !important;\n}\n\n.deep-orange-text.text-darken-4 {\n color: #bf360c !important;\n}\n\n.deep-orange-waves.waves-darken-4 .waves-ripple {\n background-color: #bf360c !important;\n}\n\n.deep-orange.accent-1 {\n background-color: #ff9e80 !important;\n}\n\n.deep-orange-text.text-accent-1 {\n color: #ff9e80 !important;\n}\n\n.deep-orange-waves.waves-accent-1 .waves-ripple {\n background-color: #ff9e80 !important;\n}\n\n.deep-orange.accent-2 {\n background-color: #ff6e40 !important;\n}\n\n.deep-orange-text.text-accent-2 {\n color: #ff6e40 !important;\n}\n\n.deep-orange-waves.waves-accent-2 .waves-ripple {\n background-color: #ff6e40 !important;\n}\n\n.deep-orange.accent-3 {\n background-color: #ff3d00 !important;\n}\n\n.deep-orange-text.text-accent-3 {\n color: #ff3d00 !important;\n}\n\n.deep-orange-waves.waves-accent-3 .waves-ripple {\n background-color: #ff3d00 !important;\n}\n\n.deep-orange.accent-4 {\n background-color: #dd2c00 !important;\n}\n\n.deep-orange-text.text-accent-4 {\n color: #dd2c00 !important;\n}\n\n.deep-orange-waves.waves-accent-4 .waves-ripple {\n background-color: #dd2c00 !important;\n}\n\n.brown {\n background-color: #795548 !important;\n}\n\n.brown-text {\n color: #795548 !important;\n}\n\n.brown-waves .waves-ripple {\n background-color: #795548 !important;\n}\n\n.brown.lighten-5 {\n background-color: #efebe9 !important;\n}\n\n.brown-text.text-lighten-5 {\n color: #efebe9 !important;\n}\n\n.brown-waves.waves-lighten-5 .waves-ripple {\n background-color: #efebe9 !important;\n}\n\n.brown.lighten-4 {\n background-color: #d7ccc8 !important;\n}\n\n.brown-text.text-lighten-4 {\n color: #d7ccc8 !important;\n}\n\n.brown-waves.waves-lighten-4 .waves-ripple {\n background-color: #d7ccc8 !important;\n}\n\n.brown.lighten-3 {\n background-color: #bcaaa4 !important;\n}\n\n.brown-text.text-lighten-3 {\n color: #bcaaa4 !important;\n}\n\n.brown-waves.waves-lighten-3 .waves-ripple {\n background-color: #bcaaa4 !important;\n}\n\n.brown.lighten-2 {\n background-color: #a1887f !important;\n}\n\n.brown-text.text-lighten-2 {\n color: #a1887f !important;\n}\n\n.brown-waves.waves-lighten-2 .waves-ripple {\n background-color: #a1887f !important;\n}\n\n.brown.lighten-1 {\n background-color: #8d6e63 !important;\n}\n\n.brown-text.text-lighten-1 {\n color: #8d6e63 !important;\n}\n\n.brown-waves.waves-lighten-1 .waves-ripple {\n background-color: #8d6e63 !important;\n}\n\n.brown.darken-1 {\n background-color: #6d4c41 !important;\n}\n\n.brown-text.text-darken-1 {\n color: #6d4c41 !important;\n}\n\n.brown-waves.waves-darken-1 .waves-ripple {\n background-color: #6d4c41 !important;\n}\n\n.brown.darken-2 {\n background-color: #5d4037 !important;\n}\n\n.brown-text.text-darken-2 {\n color: #5d4037 !important;\n}\n\n.brown-waves.waves-darken-2 .waves-ripple {\n background-color: #5d4037 !important;\n}\n\n.brown.darken-3 {\n background-color: #4e342e !important;\n}\n\n.brown-text.text-darken-3 {\n color: #4e342e !important;\n}\n\n.brown-waves.waves-darken-3 .waves-ripple {\n background-color: #4e342e !important;\n}\n\n.brown.darken-4 {\n background-color: #3e2723 !important;\n}\n\n.brown-text.text-darken-4 {\n color: #3e2723 !important;\n}\n\n.brown-waves.waves-darken-4 .waves-ripple {\n background-color: #3e2723 !important;\n}\n\n.blue-grey {\n background-color: #607d8b !important;\n}\n\n.blue-grey-text {\n color: #607d8b !important;\n}\n\n.blue-grey-waves .waves-ripple {\n background-color: #607d8b !important;\n}\n\n.blue-grey.lighten-5 {\n background-color: #eceff1 !important;\n}\n\n.blue-grey-text.text-lighten-5 {\n color: #eceff1 !important;\n}\n\n.blue-grey-waves.waves-lighten-5 .waves-ripple {\n background-color: #eceff1 !important;\n}\n\n.blue-grey.lighten-4 {\n background-color: #cfd8dc !important;\n}\n\n.blue-grey-text.text-lighten-4 {\n color: #cfd8dc !important;\n}\n\n.blue-grey-waves.waves-lighten-4 .waves-ripple {\n background-color: #cfd8dc !important;\n}\n\n.blue-grey.lighten-3 {\n background-color: #b0bec5 !important;\n}\n\n.blue-grey-text.text-lighten-3 {\n color: #b0bec5 !important;\n}\n\n.blue-grey-waves.waves-lighten-3 .waves-ripple {\n background-color: #b0bec5 !important;\n}\n\n.blue-grey.lighten-2 {\n background-color: #90a4ae !important;\n}\n\n.blue-grey-text.text-lighten-2 {\n color: #90a4ae !important;\n}\n\n.blue-grey-waves.waves-lighten-2 .waves-ripple {\n background-color: #90a4ae !important;\n}\n\n.blue-grey.lighten-1 {\n background-color: #78909c !important;\n}\n\n.blue-grey-text.text-lighten-1 {\n color: #78909c !important;\n}\n\n.blue-grey-waves.waves-lighten-1 .waves-ripple {\n background-color: #78909c !important;\n}\n\n.blue-grey.darken-1 {\n background-color: #546e7a !important;\n}\n\n.blue-grey-text.text-darken-1 {\n color: #546e7a !important;\n}\n\n.blue-grey-waves.waves-darken-1 .waves-ripple {\n background-color: #546e7a !important;\n}\n\n.blue-grey.darken-2 {\n background-color: #455a64 !important;\n}\n\n.blue-grey-text.text-darken-2 {\n color: #455a64 !important;\n}\n\n.blue-grey-waves.waves-darken-2 .waves-ripple {\n background-color: #455a64 !important;\n}\n\n.blue-grey.darken-3 {\n background-color: #37474f !important;\n}\n\n.blue-grey-text.text-darken-3 {\n color: #37474f !important;\n}\n\n.blue-grey-waves.waves-darken-3 .waves-ripple {\n background-color: #37474f !important;\n}\n\n.blue-grey.darken-4 {\n background-color: #263238 !important;\n}\n\n.blue-grey-text.text-darken-4 {\n color: #263238 !important;\n}\n\n.blue-grey-waves.waves-darken-4 .waves-ripple {\n background-color: #263238 !important;\n}\n\n.grey {\n background-color: #9e9e9e !important;\n}\n\n.grey-text {\n color: #9e9e9e !important;\n}\n\n.grey-waves .waves-ripple {\n background-color: #9e9e9e !important;\n}\n\n.grey.lighten-5 {\n background-color: #fafafa !important;\n}\n\n.grey-text.text-lighten-5 {\n color: #fafafa !important;\n}\n\n.grey-waves.waves-lighten-5 .waves-ripple {\n background-color: #fafafa !important;\n}\n\n.grey.lighten-4 {\n background-color: #f5f5f5 !important;\n}\n\n.grey-text.text-lighten-4 {\n color: #f5f5f5 !important;\n}\n\n.grey-waves.waves-lighten-4 .waves-ripple {\n background-color: #f5f5f5 !important;\n}\n\n.grey.lighten-3 {\n background-color: #eeeeee !important;\n}\n\n.grey-text.text-lighten-3 {\n color: #eeeeee !important;\n}\n\n.grey-waves.waves-lighten-3 .waves-ripple {\n background-color: #eeeeee !important;\n}\n\n.grey.lighten-2 {\n background-color: #e0e0e0 !important;\n}\n\n.grey-text.text-lighten-2 {\n color: #e0e0e0 !important;\n}\n\n.grey-waves.waves-lighten-2 .waves-ripple {\n background-color: #e0e0e0 !important;\n}\n\n.grey.lighten-1 {\n background-color: #bdbdbd !important;\n}\n\n.grey-text.text-lighten-1 {\n color: #bdbdbd !important;\n}\n\n.grey-waves.waves-lighten-1 .waves-ripple {\n background-color: #bdbdbd !important;\n}\n\n.grey.darken-1 {\n background-color: #757575 !important;\n}\n\n.grey-text.text-darken-1 {\n color: #757575 !important;\n}\n\n.grey-waves.waves-darken-1 .waves-ripple {\n background-color: #757575 !important;\n}\n\n.grey.darken-2 {\n background-color: #616161 !important;\n}\n\n.grey-text.text-darken-2 {\n color: #616161 !important;\n}\n\n.grey-waves.waves-darken-2 .waves-ripple {\n background-color: #616161 !important;\n}\n\n.grey.darken-3 {\n background-color: #424242 !important;\n}\n\n.grey-text.text-darken-3 {\n color: #424242 !important;\n}\n\n.grey-waves.waves-darken-3 .waves-ripple {\n background-color: #424242 !important;\n}\n\n.grey.darken-4 {\n background-color: #212121 !important;\n}\n\n.grey-text.text-darken-4 {\n color: #212121 !important;\n}\n\n.grey-waves.waves-darken-4 .waves-ripple {\n background-color: #212121 !important;\n}\n\n.black {\n background-color: #000000 !important;\n}\n\n.black-text {\n color: #000000 !important;\n}\n\n.white {\n background-color: #ffffff !important;\n}\n\n.white-text {\n color: #ffffff !important;\n}\n\n.transparent {\n background-color: transparent !important;\n}\n\n.transparent-text {\n color: transparent !important;\n}\n\n/**\n * prism.js Twilight theme\n * Based (more or less) on the Twilight theme originally of Textmate fame.\n * @author Remy Bach\n */\ncode[class*=language-],\npre[class*=language-] {\n color: white;\n background: none;\n font-family: Consolas, Monaco, \"Andale Mono\", \"Ubuntu Mono\", monospace;\n text-align: left;\n text-shadow: 0 -0.1em 0.2em black;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n line-height: 1.5;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n}\n\npre[class*=language-],\n:not(pre) > code[class*=language-] {\n background: hsl(0deg, 0%, 8%); /* #141414 */\n}\n\n/* Code blocks */\npre[class*=language-] {\n border-radius: 0.5em;\n border: 0.3em solid hsl(0deg, 0%, 33%); /* #282A2B */\n box-shadow: 1px 1px 0.5em black inset;\n margin: 0.5em 0;\n overflow: auto;\n padding: 1em;\n}\n\npre[class*=language-]::-moz-selection {\n /* Firefox */\n background: hsl(200deg, 4%, 16%); /* #282A2B */\n}\n\npre[class*=language-]::selection {\n /* Safari */\n background: hsl(200deg, 4%, 16%); /* #282A2B */\n}\n\n/* Text Selection colour */\npre[class*=language-]::-moz-selection, pre[class*=language-] ::-moz-selection,\ncode[class*=language-]::-moz-selection, code[class*=language-] ::-moz-selection {\n text-shadow: none;\n background: hsla(0deg, 0%, 93%, 0.15); /* #EDEDED */\n}\n\npre[class*=language-]::selection, pre[class*=language-] ::selection,\ncode[class*=language-]::selection, code[class*=language-] ::selection {\n text-shadow: none;\n background: hsla(0deg, 0%, 93%, 0.15); /* #EDEDED */\n}\n\n/* Inline code */\n:not(pre) > code[class*=language-] {\n border-radius: 0.3em;\n border: 0.13em solid hsl(0deg, 0%, 33%); /* #545454 */\n box-shadow: 1px 1px 0.3em -0.1em black inset;\n padding: 0.15em 0.2em 0.05em;\n white-space: normal;\n}\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n color: hsl(0deg, 0%, 47%); /* #777777 */\n}\n\n.token.punctuation {\n opacity: 0.7;\n}\n\n.namespace {\n opacity: 0.7;\n}\n\n.token.tag,\n.token.boolean,\n.token.number,\n.token.deleted {\n color: hsl(14deg, 58%, 55%); /* #CF6A4C */\n}\n\n.token.keyword,\n.token.property,\n.token.selector,\n.token.constant,\n.token.symbol,\n.token.builtin {\n color: hsl(53deg, 89%, 79%); /* #F9EE98 */\n}\n\n.token.attr-name,\n.token.attr-value,\n.token.string,\n.token.char,\n.token.operator,\n.token.entity,\n.token.url,\n.language-css .token.string,\n.style .token.string,\n.token.variable,\n.token.inserted {\n color: hsl(76deg, 21%, 52%); /* #8F9D6A */\n}\n\n.token.atrule {\n color: hsl(218deg, 22%, 55%); /* #7587A6 */\n}\n\n.token.regex,\n.token.important {\n color: hsl(42deg, 75%, 65%); /* #E9C062 */\n}\n\n.token.important,\n.token.bold {\n font-weight: bold;\n}\n\n.token.italic {\n font-style: italic;\n}\n\n.token.entity {\n cursor: help;\n}\n\npre[data-line] {\n padding: 1em 0 1em 3em;\n position: relative;\n}\n\n/* Markup */\n.language-markup .token.tag,\n.language-markup .token.attr-name,\n.language-markup .token.punctuation {\n color: hsl(33deg, 33%, 52%); /* #AC885B */\n}\n\n/* Make the tokens sit above the line highlight so the colours don't look faded. */\n.token {\n position: relative;\n z-index: 1;\n}\n\n.line-highlight {\n background: hsla(0deg, 0%, 33%, 0.25); /* #545454 */\n background: linear-gradient(to right, hsla(0deg, 0%, 33%, 0.1) 70%, hsla(0deg, 0%, 33%, 0)); /* #545454 */\n border-bottom: 1px dashed hsl(0deg, 0%, 33%); /* #545454 */\n border-top: 1px dashed hsl(0deg, 0%, 33%); /* #545454 */\n left: 0;\n line-height: inherit;\n margin-top: 0.75em; /* Same as .prism’s padding-top */\n padding: inherit 0;\n pointer-events: none;\n position: absolute;\n right: 0;\n white-space: pre;\n z-index: 0;\n}\n\n.line-highlight:before,\n.line-highlight[data-end]:after {\n background-color: hsl(215deg, 15%, 59%); /* #8794A6 */\n border-radius: 999px;\n box-shadow: 0 1px white;\n color: hsl(24deg, 20%, 95%); /* #F5F2F0 */\n content: attr(data-start);\n font: bold 65%/1.5 sans-serif;\n left: 0.6em;\n min-width: 1em;\n padding: 0 0.5em;\n position: absolute;\n text-align: center;\n text-shadow: none;\n top: 0.4em;\n vertical-align: 0.3em;\n}\n\n.line-highlight[data-end]:after {\n bottom: 0.4em;\n content: attr(data-end);\n top: auto;\n}\n\n.window {\n font-family: \"Ubuntu\", sans-serif;\n font-size: 17px;\n width: 600px;\n margin: 75px auto;\n background: #2c3e50;\n height: 350px;\n border-radius: 5px;\n display: relative;\n box-shadow: 10px 10px 10px #888888;\n}\n\n.afterclose {\n color: #34495e;\n display: none;\n text-align: center;\n}\n\n.open {\n color: #fff;\n padding: 15px;\n background: #2ecc71;\n border-radius: 4px;\n border: none;\n}\n\n.bash {\n width: 600px;\n background: #34495e;\n height: 310px;\n border-radius: 5px;\n top: 40px;\n display: absolute;\n color: #fff;\n text-align: left;\n}\n.bash .command::before {\n content: \"user@machine $ : \";\n color: #2ecc71;\n}\n.bash .resulta::before {\n content: \">>\";\n color: #2ecc71;\n}\n\n/* effected by controllers */\n.windowmax {\n width: 100%;\n margin: auto;\n background: #2c3e50;\n height: 1000px;\n border-radius: 5px;\n display: relative;\n}\n\n.windowmin {\n width: 300px;\n height: 45px;\n background: #2c3e50;\n border-radius: 5px;\n bottom: 0;\n position: fixed;\n}\n\n.bashmax {\n display: absolute;\n width: 100%;\n background: #34495e;\n height: 960px;\n border-radius: 5px;\n bottom: 0;\n color: #fff;\n}\n\n/* !--end--! */\n.buttons {\n width: 15px;\n height: 15px;\n border-radius: 50%;\n float: right;\n margin: 13px 4px;\n border: none;\n}\n\n.close {\n background: #e74c3c;\n}\n\n.maximize {\n background: #f1c40f;\n}\n\n.minimize {\n background: #2ecc71;\n}\n\n.result {\n display: none;\n}\n\n.controls {\n height: 40px;\n top: 0;\n}\n\n.title {\n color: #fff;\n font-weight: bold;\n padding: 10px;\n}\n\n.material-tooltip {\n padding: 10px 8px;\n font-size: 1rem;\n z-index: 2000;\n border-radius: 2px;\n color: #fff;\n min-height: 36px;\n line-height: 120%;\n opacity: 0;\n position: absolute;\n text-align: center;\n max-width: calc(100% - 4px);\n overflow: hidden;\n left: 0;\n top: 0;\n pointer-events: none;\n visibility: hidden;\n background-color: #323232;\n}\n\n.backdrop {\n position: absolute;\n opacity: 0;\n height: 7px;\n width: 14px;\n border-radius: 0 0 50% 50%;\n background-color: #323232;\n z-index: -1;\n transform-origin: 50% 0%;\n visibility: hidden;\n}\n\n.shadow-0 {\n box-shadow: none !important;\n}\n\n/* 2dp elevation modified*/\n.shadow-1, nav, .dropdown-content, .card, .card-panel, .btn-floating, .btn, .btn-small, .btn-large, .collapsible {\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);\n}\n\n.shadow-1-half, .btn-floating:hover, .btn:hover, .btn-small:hover, .btn-large:hover {\n box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2);\n}\n\n/* 6dp elevation modified*/\n.shadow-2 {\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);\n}\n\n/* 12dp elevation modified*/\n.shadow-3 {\n box-shadow: 0 8px 17px 2px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2);\n}\n\n/* 16dp elevation */\n.shadow-4 {\n box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -7px rgba(0, 0, 0, 0.2);\n}\n\n/* 24dp elevation */\n.shadow-5, .modal {\n box-shadow: 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12), 0 11px 15px -7px rgba(0, 0, 0, 0.2);\n}\n\n/* 24dp elevation */\n.invert-shadow-5 {\n box-shadow: 38px 0 0 0 rgba(0, 0, 0, 0.14), 46px 0 0 0 rgba(0, 0, 0, 0.12), 15px 0 0 0 rgba(0, 0, 0, 0.2);\n}\n\n.hoverable {\n transition: box-shadow 0.25s;\n}\n.hoverable:hover {\n box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n}\n\n/*!\n * Waves v0.6.0\n * http://fian.my.id/Waves\n *\n * Copyright 2014 Alfiana E. Sibuea and other contributors\n * Released under the MIT license\n * https://github.com/fians/Waves/blob/master/LICENSE\n */\n.waves-effect {\n position: relative;\n cursor: pointer;\n display: inline-block;\n overflow: hidden;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n vertical-align: middle;\n z-index: 1;\n transition: 0.3s ease-out;\n}\n.waves-effect .waves-ripple {\n position: absolute;\n border-radius: 50%;\n width: 20px;\n height: 20px;\n margin-top: -10px;\n margin-left: -10px;\n opacity: 0;\n background: rgba(0, 0, 0, 0.2);\n transition: all 0.7s ease-out;\n transition-property: transform, opacity;\n transform: scale(0);\n pointer-events: none;\n}\n.waves-effect.waves-light .waves-ripple {\n background-color: rgba(255, 255, 255, 0.45);\n}\n.waves-effect.waves-red .waves-ripple {\n background-color: rgba(244, 67, 54, 0.7);\n}\n.waves-effect.waves-yellow .waves-ripple {\n background-color: rgba(255, 235, 59, 0.7);\n}\n.waves-effect.waves-orange .waves-ripple {\n background-color: rgba(255, 152, 0, 0.7);\n}\n.waves-effect.waves-purple .waves-ripple {\n background-color: rgba(156, 39, 176, 0.7);\n}\n.waves-effect.waves-green .waves-ripple {\n background-color: rgba(76, 175, 80, 0.7);\n}\n.waves-effect.waves-teal .waves-ripple {\n background-color: rgba(0, 150, 136, 0.7);\n}\n.waves-effect input[type=button], .waves-effect input[type=reset], .waves-effect input[type=submit] {\n border: 0;\n font-style: normal;\n font-size: inherit;\n text-transform: inherit;\n background: none;\n}\n.waves-effect img {\n position: relative;\n z-index: -1;\n}\n\n.waves-notransition {\n transition: none !important;\n}\n\n.waves-circle {\n transform: translateZ(0);\n -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);\n}\n\n.waves-input-wrapper {\n border-radius: 0.2em;\n vertical-align: bottom;\n}\n.waves-input-wrapper .waves-button-input {\n position: relative;\n top: 0;\n left: 0;\n z-index: 1;\n}\n\n.waves-circle {\n text-align: center;\n width: 2.5em;\n height: 2.5em;\n line-height: 2.5em;\n border-radius: 50%;\n -webkit-mask-image: none;\n}\n\n.waves-block {\n display: block;\n}\n\n/* Firefox Bug: link not triggered */\n.waves-effect .waves-ripple {\n z-index: -1;\n}\n\n.modal {\n position: fixed;\n left: 0;\n right: 0;\n background-color: #fafafa;\n padding: 0;\n max-height: 70%;\n width: 55%;\n margin: auto;\n overflow-y: auto;\n border-radius: 2px;\n will-change: top, opacity;\n}\n.modal:focus {\n outline: none;\n}\n@media only screen and (max-width : 992px) {\n .modal {\n width: 80%;\n }\n}\n.modal h1, .modal h2, .modal h3, .modal h4 {\n margin-top: 0;\n}\n.modal .modal-content {\n padding: 24px;\n}\n.modal .modal-close {\n cursor: pointer;\n}\n.modal .modal-footer {\n border-radius: 0 0 2px 2px;\n background-color: #fafafa;\n padding: 4px 6px;\n height: 56px;\n width: 100%;\n text-align: right;\n}\n.modal .modal-footer .btn, .modal .modal-footer .btn-small, .modal .modal-footer .btn-large, .modal .modal-footer .btn-flat {\n margin: 6px 0;\n}\n.modal .modal-header {\n border-radius: 2px 2px 0 0;\n background-color: #fafafa;\n padding: 6px 4px;\n height: 56px;\n width: 100%;\n text-align: right;\n}\n.modal .modal-header .btn, .modal .modal-header .btn-small, .modal .modal-header .btn-large, .modal .modal-header .btn-flat {\n margin: 6px 0;\n}\n\n.modal-overlay {\n position: fixed;\n z-index: 999;\n top: -25%;\n left: 0;\n bottom: 0;\n right: 0;\n height: 125%;\n width: 100%;\n background: #000;\n display: none;\n will-change: opacity;\n}\n\n.modal.modal-fixed-footer {\n padding: 0;\n height: 70%;\n}\n.modal.modal-fixed-footer .modal-content {\n position: absolute;\n height: calc(100% - 56px);\n max-height: 100%;\n width: 100%;\n overflow-y: auto;\n}\n.modal.modal-fixed-footer .modal-footer {\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n position: absolute;\n bottom: 0;\n}\n\n.modal.bottom-sheet {\n top: auto;\n bottom: -100%;\n margin: 0;\n width: 100%;\n max-height: 45%;\n border-radius: 0;\n will-change: bottom, opacity;\n}\n\nhtml,\nbody,\n#root {\n margin: 0;\n height: 100%;\n}\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\n.noselect {\n -webkit-touch-callout: none; /* iOS Safari */\n -webkit-user-select: none; /* Safari */\n -khtml-user-select: none; /* Konqueror HTML */\n -moz-user-select: none; /* Old versions of Firefox */\n -ms-user-select: none; /* Internet Explorer/Edge */\n user-select: none;\n /* Non-prefixed version, currently\n supported by Chrome, Edge, Opera and Firefox */\n}\n\nul:not(.browser-default) {\n padding-left: 0;\n list-style-type: none;\n}\nul:not(.browser-default) > li {\n list-style-type: none;\n}\n\na {\n color: #039be5;\n text-decoration: none;\n -webkit-tap-highlight-color: transparent;\n}\n\n.w-100 {\n width: 100%;\n}\n\n.right-align {\n text-align: right;\n}\n\n.center-align {\n text-align: center;\n}\n\n.v-center {\n display: flex;\n align-items: center;\n}\n\n.mb1 {\n margin-bottom: 10px;\n}\n\n.collection {\n margin: 0.3333333333rem 0 0.6666666667rem 0;\n border: 1px solid #e0e0e0;\n border-radius: 2px;\n overflow: hidden;\n position: relative;\n}\n.collection .collection-item {\n background-color: #fff;\n line-height: 1.5rem;\n padding: 10px 20px;\n margin: 0;\n border-bottom: 1px solid #e0e0e0;\n}\n.collection .collection-item.hover:hover {\n background-color: #ddd;\n}\n.collection .collection-item.avatar {\n min-height: 84px;\n padding-left: 72px;\n position: relative;\n}\n.collection .collection-item.avatar:not(.circle-clipper) > .circle,\n.collection .collection-item.avatar :not(.circle-clipper) > .circle {\n position: absolute;\n width: 42px;\n height: 42px;\n overflow: hidden;\n left: 15px;\n display: inline-block;\n vertical-align: middle;\n}\n.collection .collection-item.avatar i.circle {\n font-size: 18px;\n line-height: 42px;\n color: #fff;\n background-color: #999;\n text-align: center;\n}\n.collection .collection-item.avatar .title {\n font-size: 16px;\n}\n.collection .collection-item.avatar p {\n margin: 0;\n}\n.collection .collection-item.avatar .secondary-content {\n position: absolute;\n top: 16px;\n right: 16px;\n}\n.collection .collection-item:last-child {\n border-bottom: none;\n}\n.collection .collection-item.active {\n background-color: #26a69a;\n color: #eafaf9;\n}\n.collection .collection-item.active .secondary-content {\n color: #fff;\n}\n.collection a.collection-item {\n display: block;\n transition: 0.25s;\n color: #26a69a;\n}\n.collection a.collection-item:not(.active):hover {\n background-color: #ddd;\n}\n.collection.with-header .collection-header {\n background-color: #fff;\n border-bottom: 1px solid #e0e0e0;\n padding: 10px 20px;\n}\n.collection.with-header .collection-item {\n padding-left: 30px;\n}\n.collection.with-header .collection-item.avatar {\n padding-left: 72px;\n}\n\n.secondary-content {\n float: right;\n color: #26a69a;\n}\n\n.collapsible .collection {\n margin: 0;\n border: none;\n}\n\n.modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: 100vh;\n width: 100vw;\n padding: 20px 0 20px 0;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 999;\n display: flex;\n justify-content: center;\n}\n.modal-overlay .innerform {\n max-width: 650px;\n}\n.modal-overlay .innerform form {\n overflow: hidden;\n}\n\n/*********************\n Media Query Classes\n**********************/\n@media only screen and (max-width : 600px) {\n .hide-on-small-only, .hide-on-small-and-down {\n display: none !important;\n }\n}\n\n@media only screen and (max-width : 992px) {\n .hide-on-med-and-down {\n display: none !important;\n }\n}\n\n@media only screen and (min-width : 601px) {\n .hide-on-med-and-up {\n display: none !important;\n }\n}\n\n@media only screen and (min-width: 600px) and (max-width: 992px) {\n .hide-on-med-only {\n display: none !important;\n }\n}\n\n@media only screen and (min-width : 993px) {\n .hide-on-large-only {\n display: none !important;\n }\n}\n\n@media only screen and (min-width : 1201px) {\n .hide-on-extra-large-only {\n display: none !important;\n }\n}\n\n@media only screen and (min-width : 1201px) {\n .show-on-extra-large {\n display: block !important;\n }\n}\n\n@media only screen and (min-width : 993px) {\n .show-on-large {\n display: block !important;\n }\n}\n\n@media only screen and (min-width: 600px) and (max-width: 992px) {\n .show-on-medium {\n display: block !important;\n }\n}\n\n@media only screen and (max-width : 600px) {\n .show-on-small {\n display: block !important;\n }\n}\n\n@media only screen and (min-width : 601px) {\n .show-on-medium-and-up {\n display: block !important;\n }\n}\n\n@media only screen and (max-width : 992px) {\n .show-on-medium-and-down {\n display: block !important;\n }\n}\n\n@media only screen and (max-width : 600px) {\n .center-on-small-only {\n text-align: center;\n }\n}\n\n/*******************\n Utility Classes\n*******************/\n.hide {\n display: none !important;\n}\n\n.left-align {\n text-align: left;\n}\n\n.right-align {\n text-align: right;\n}\n\n.center, .center-align {\n text-align: center;\n}\n\n.left {\n float: left !important;\n}\n\n.right {\n float: right !important;\n}\n\n.no-select {\n user-select: none;\n}\n\n.circle {\n border-radius: 50%;\n}\n\n.center-block {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n\n.truncate {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.no-padding {\n padding: 0 !important;\n}\n\nspan.badge {\n min-width: 3rem;\n padding: 0 6px;\n margin-left: 14px;\n text-align: center;\n font-size: 1rem;\n line-height: 22px;\n height: 22px;\n color: #757575;\n float: right;\n box-sizing: border-box;\n}\nspan.badge.new {\n font-weight: 300;\n font-size: 0.8rem;\n color: #fff;\n background-color: #26a69a;\n border-radius: 2px;\n}\nspan.badge.new:after {\n content: \" new\";\n}\nspan.badge[data-badge-caption]::after {\n content: \" \" attr(data-badge-caption);\n}\n\nnav ul a span.badge {\n display: inline-block;\n float: none;\n margin-left: 4px;\n line-height: 22px;\n height: 22px;\n -webkit-font-smoothing: auto;\n}\n\n.collection-item span.badge {\n margin-top: calc(0.75rem - 11px);\n}\n\n.collapsible span.badge {\n margin-left: auto;\n}\n\n.sidenav span.badge {\n margin-top: 11.5px;\n}\n\ntable span.badge {\n display: inline-block;\n float: none;\n margin-left: auto;\n}\n\n.chip {\n display: inline-block;\n height: 32px;\n font-size: 13px;\n font-weight: 500;\n color: rgba(0, 0, 0, 0.6);\n line-height: 32px;\n padding: 0 12px;\n border-radius: 16px;\n background-color: #e4e4e4;\n margin-bottom: 5px;\n margin-right: 5px;\n}\n.chip:focus {\n outline: none;\n background-color: #26a69a;\n color: #fff;\n}\n.chip > img {\n float: left;\n margin: 0 8px 0 -12px;\n height: 32px;\n width: 32px;\n border-radius: 50%;\n}\n.chip .close {\n cursor: pointer;\n float: right;\n font-size: 16px;\n line-height: 32px;\n padding-left: 8px;\n}\n\n.chips {\n border: none;\n border-bottom: 1px solid #9e9e9e;\n box-shadow: none;\n margin: 0 0 8px 0;\n min-height: 45px;\n outline: none;\n transition: all 0.3s;\n}\n.chips.focus {\n border-bottom: 1px solid #26a69a;\n box-shadow: 0 1px 0 0 #26a69a;\n}\n.chips:hover {\n cursor: text;\n}\n.chips .input {\n background: none;\n border: 0;\n color: rgba(0, 0, 0, 0.6);\n display: inline-block;\n font-size: 16px;\n height: 56px;\n line-height: 32px;\n outline: 0;\n margin: 0;\n padding: 0 !important;\n width: 120px !important;\n}\n.chips .input:focus {\n border: 0 !important;\n box-shadow: none !important;\n}\n.chips .autocomplete-content {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.prefix ~ .chips {\n margin-left: 3rem;\n width: 92%;\n width: calc(100% - 3rem);\n}\n\n.chips:empty ~ label {\n font-size: 0.8rem;\n transform: translateY(-140%);\n}\n\n.collapsible {\n border-top: 1px solid #ddd;\n border-right: 1px solid #ddd;\n border-left: 1px solid #ddd;\n margin: 0.3333333333rem 0 0.6666666667rem 0;\n}\n\n.collapsible-header {\n display: flex;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n line-height: 1.5;\n padding: 1rem;\n background-color: #fff;\n border-bottom: 1px solid #ddd;\n}\n.collapsible-header:focus {\n outline: 0;\n}\n.collapsible-header i {\n width: 2rem;\n font-size: 1.6rem;\n display: inline-block;\n text-align: center;\n margin-right: 1rem;\n}\n\n.keyboard-focused .collapsible-header:focus {\n background-color: #eee;\n}\n\n.collapsible-body {\n display: none;\n border-bottom: 1px solid #ddd;\n box-sizing: border-box;\n padding: 2rem;\n}\n\n.sidenav .collapsible,\n.sidenav.fixed .collapsible {\n border: none;\n box-shadow: none;\n}\n.sidenav .collapsible li,\n.sidenav.fixed .collapsible li {\n padding: 0;\n}\n.sidenav .collapsible-header,\n.sidenav.fixed .collapsible-header {\n background-color: transparent;\n border: none;\n line-height: inherit;\n height: inherit;\n padding: 0 15px;\n}\n.sidenav .collapsible-header:hover,\n.sidenav.fixed .collapsible-header:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.sidenav .collapsible-header i,\n.sidenav.fixed .collapsible-header i {\n line-height: inherit;\n}\n.sidenav .collapsible-body,\n.sidenav.fixed .collapsible-body {\n border: 0;\n background-color: #fff;\n}\n.sidenav .collapsible-body li a,\n.sidenav.fixed .collapsible-body li a {\n padding: 0 22.5px 0 30px;\n}\n\n.collapsible.popout {\n border: none;\n box-shadow: none;\n}\n.collapsible.popout > li {\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\n margin: 0 24px;\n transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n}\n.collapsible.popout > li.active {\n box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);\n margin: 16px 0;\n}\n\n.collection {\n margin: 0.3333333333rem 0 0.6666666667rem 0;\n border: 1px solid #e0e0e0;\n border-radius: 2px;\n overflow: hidden;\n position: relative;\n}\n.collection .collection-item {\n background-color: #fff;\n line-height: 1.5rem;\n padding: 10px 20px;\n margin: 0;\n border-bottom: 1px solid #e0e0e0;\n}\n.collection .collection-item.avatar {\n min-height: 84px;\n padding-left: 72px;\n position: relative;\n}\n.collection .collection-item.avatar:not(.circle-clipper) > .circle,\n.collection .collection-item.avatar :not(.circle-clipper) > .circle {\n position: absolute;\n width: 42px;\n height: 42px;\n overflow: hidden;\n left: 15px;\n display: inline-block;\n vertical-align: middle;\n}\n.collection .collection-item.avatar i.circle {\n font-size: 18px;\n line-height: 42px;\n color: #fff;\n background-color: #999;\n text-align: center;\n}\n.collection .collection-item.avatar .title {\n font-size: 16px;\n}\n.collection .collection-item.avatar p {\n margin: 0;\n}\n.collection .collection-item.avatar .secondary-content {\n position: absolute;\n top: 16px;\n right: 16px;\n}\n.collection .collection-item:last-child {\n border-bottom: none;\n}\n.collection .collection-item.active {\n background-color: #26a69a;\n color: #eafaf9;\n}\n.collection .collection-item.active .secondary-content {\n color: #fff;\n}\n.collection a.collection-item {\n display: block;\n transition: 0.25s;\n color: #26a69a;\n}\n.collection a.collection-item:not(.active):hover {\n background-color: #ddd;\n}\n.collection.with-header .collection-header {\n background-color: #fff;\n border-bottom: 1px solid #e0e0e0;\n padding: 10px 20px;\n}\n.collection.with-header .collection-item {\n padding-left: 30px;\n}\n.collection.with-header .collection-item.avatar {\n padding-left: 72px;\n}\n.collection .secondary-content {\n float: right;\n color: #26a69a;\n}\n\nselect:focus {\n outline: 1px solid #c9f3ef;\n}\n\nbutton:focus {\n outline: none;\n background-color: #2ab7a9;\n}\n\nlabel {\n font-size: 0.8rem;\n color: #9e9e9e;\n}\n\n/* Text Inputs + Textarea\n ========================================================================== */\n/* Style Placeholders */\n::placeholder {\n color: #d1d1d1;\n}\n\n/* Text inputs */\ninput:not([type]),\ninput[type=text]:not(.browser-default),\ninput[type=password]:not(.browser-default),\ninput[type=email]:not(.browser-default),\ninput[type=url]:not(.browser-default),\ninput[type=time]:not(.browser-default),\ninput[type=date]:not(.browser-default),\ninput[type=datetime]:not(.browser-default),\ninput[type=datetime-local]:not(.browser-default),\ninput[type=tel]:not(.browser-default),\ninput[type=number]:not(.browser-default),\ninput[type=search]:not(.browser-default),\ntextarea.textarea {\n background-color: transparent;\n border: none;\n border-bottom: 1px solid #9e9e9e;\n border-radius: 0;\n outline: none;\n height: 56px;\n width: 100%;\n font-size: 16px;\n margin: 0 0 8px 0;\n padding: 0;\n box-shadow: none;\n box-sizing: content-box;\n transition: box-shadow 0.3s, border 0.3s;\n}\ninput:not([type]):disabled, input:not([type])[readonly=readonly],\ninput[type=text]:not(.browser-default):disabled,\ninput[type=text]:not(.browser-default)[readonly=readonly],\ninput[type=password]:not(.browser-default):disabled,\ninput[type=password]:not(.browser-default)[readonly=readonly],\ninput[type=email]:not(.browser-default):disabled,\ninput[type=email]:not(.browser-default)[readonly=readonly],\ninput[type=url]:not(.browser-default):disabled,\ninput[type=url]:not(.browser-default)[readonly=readonly],\ninput[type=time]:not(.browser-default):disabled,\ninput[type=time]:not(.browser-default)[readonly=readonly],\ninput[type=date]:not(.browser-default):disabled,\ninput[type=date]:not(.browser-default)[readonly=readonly],\ninput[type=datetime]:not(.browser-default):disabled,\ninput[type=datetime]:not(.browser-default)[readonly=readonly],\ninput[type=datetime-local]:not(.browser-default):disabled,\ninput[type=datetime-local]:not(.browser-default)[readonly=readonly],\ninput[type=tel]:not(.browser-default):disabled,\ninput[type=tel]:not(.browser-default)[readonly=readonly],\ninput[type=number]:not(.browser-default):disabled,\ninput[type=number]:not(.browser-default)[readonly=readonly],\ninput[type=search]:not(.browser-default):disabled,\ninput[type=search]:not(.browser-default)[readonly=readonly],\ntextarea.textarea:disabled,\ntextarea.textarea[readonly=readonly] {\n color: rgba(0, 0, 0, 0.42);\n border-bottom: 1px dotted rgba(0, 0, 0, 0.42);\n}\ninput:not([type]):disabled + label, input:not([type])[readonly=readonly] + label,\ninput[type=text]:not(.browser-default):disabled + label,\ninput[type=text]:not(.browser-default)[readonly=readonly] + label,\ninput[type=password]:not(.browser-default):disabled + label,\ninput[type=password]:not(.browser-default)[readonly=readonly] + label,\ninput[type=email]:not(.browser-default):disabled + label,\ninput[type=email]:not(.browser-default)[readonly=readonly] + label,\ninput[type=url]:not(.browser-default):disabled + label,\ninput[type=url]:not(.browser-default)[readonly=readonly] + label,\ninput[type=time]:not(.browser-default):disabled + label,\ninput[type=time]:not(.browser-default)[readonly=readonly] + label,\ninput[type=date]:not(.browser-default):disabled + label,\ninput[type=date]:not(.browser-default)[readonly=readonly] + label,\ninput[type=datetime]:not(.browser-default):disabled + label,\ninput[type=datetime]:not(.browser-default)[readonly=readonly] + label,\ninput[type=datetime-local]:not(.browser-default):disabled + label,\ninput[type=datetime-local]:not(.browser-default)[readonly=readonly] + label,\ninput[type=tel]:not(.browser-default):disabled + label,\ninput[type=tel]:not(.browser-default)[readonly=readonly] + label,\ninput[type=number]:not(.browser-default):disabled + label,\ninput[type=number]:not(.browser-default)[readonly=readonly] + label,\ninput[type=search]:not(.browser-default):disabled + label,\ninput[type=search]:not(.browser-default)[readonly=readonly] + label,\ntextarea.textarea:disabled + label,\ntextarea.textarea[readonly=readonly] + label {\n color: rgba(0, 0, 0, 0.42);\n}\ninput:not([type]):focus:not([readonly]),\ninput[type=text]:not(.browser-default):focus:not([readonly]),\ninput[type=password]:not(.browser-default):focus:not([readonly]),\ninput[type=email]:not(.browser-default):focus:not([readonly]),\ninput[type=url]:not(.browser-default):focus:not([readonly]),\ninput[type=time]:not(.browser-default):focus:not([readonly]),\ninput[type=date]:not(.browser-default):focus:not([readonly]),\ninput[type=datetime]:not(.browser-default):focus:not([readonly]),\ninput[type=datetime-local]:not(.browser-default):focus:not([readonly]),\ninput[type=tel]:not(.browser-default):focus:not([readonly]),\ninput[type=number]:not(.browser-default):focus:not([readonly]),\ninput[type=search]:not(.browser-default):focus:not([readonly]),\ntextarea.textarea:focus:not([readonly]) {\n border-bottom: 1px solid #26a69a;\n box-shadow: 0 1px 0 0 #26a69a;\n}\ninput:not([type]):focus:not([readonly]) + label,\ninput[type=text]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=password]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=email]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=url]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=time]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=date]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=datetime]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=datetime-local]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=tel]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=number]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=search]:not(.browser-default):focus:not([readonly]) + label,\ntextarea.textarea:focus:not([readonly]) + label {\n color: #26a69a;\n}\ninput:not([type]):focus.valid ~ label,\ninput[type=text]:not(.browser-default):focus.valid ~ label,\ninput[type=password]:not(.browser-default):focus.valid ~ label,\ninput[type=email]:not(.browser-default):focus.valid ~ label,\ninput[type=url]:not(.browser-default):focus.valid ~ label,\ninput[type=time]:not(.browser-default):focus.valid ~ label,\ninput[type=date]:not(.browser-default):focus.valid ~ label,\ninput[type=datetime]:not(.browser-default):focus.valid ~ label,\ninput[type=datetime-local]:not(.browser-default):focus.valid ~ label,\ninput[type=tel]:not(.browser-default):focus.valid ~ label,\ninput[type=number]:not(.browser-default):focus.valid ~ label,\ninput[type=search]:not(.browser-default):focus.valid ~ label,\ntextarea.textarea:focus.valid ~ label {\n color: #4caf50;\n}\ninput:not([type]):focus.invalid ~ label,\ninput[type=text]:not(.browser-default):focus.invalid ~ label,\ninput[type=password]:not(.browser-default):focus.invalid ~ label,\ninput[type=email]:not(.browser-default):focus.invalid ~ label,\ninput[type=url]:not(.browser-default):focus.invalid ~ label,\ninput[type=time]:not(.browser-default):focus.invalid ~ label,\ninput[type=date]:not(.browser-default):focus.invalid ~ label,\ninput[type=datetime]:not(.browser-default):focus.invalid ~ label,\ninput[type=datetime-local]:not(.browser-default):focus.invalid ~ label,\ninput[type=tel]:not(.browser-default):focus.invalid ~ label,\ninput[type=number]:not(.browser-default):focus.invalid ~ label,\ninput[type=search]:not(.browser-default):focus.invalid ~ label,\ntextarea.textarea:focus.invalid ~ label {\n color: #f44336;\n}\ninput:not([type]).validate + label,\ninput[type=text]:not(.browser-default).validate + label,\ninput[type=password]:not(.browser-default).validate + label,\ninput[type=email]:not(.browser-default).validate + label,\ninput[type=url]:not(.browser-default).validate + label,\ninput[type=time]:not(.browser-default).validate + label,\ninput[type=date]:not(.browser-default).validate + label,\ninput[type=datetime]:not(.browser-default).validate + label,\ninput[type=datetime-local]:not(.browser-default).validate + label,\ninput[type=tel]:not(.browser-default).validate + label,\ninput[type=number]:not(.browser-default).validate + label,\ninput[type=search]:not(.browser-default).validate + label,\ntextarea.textarea.validate + label {\n width: 100%;\n}\n/* Validation Sass Placeholders */\n.select-wrapper.valid > input.select-dropdown, input:not([type]).valid, input:not([type]):focus.valid,\ninput[type=text]:not(.browser-default).valid,\ninput[type=text]:not(.browser-default):focus.valid,\ninput[type=password]:not(.browser-default).valid,\ninput[type=password]:not(.browser-default):focus.valid,\ninput[type=email]:not(.browser-default).valid,\ninput[type=email]:not(.browser-default):focus.valid,\ninput[type=url]:not(.browser-default).valid,\ninput[type=url]:not(.browser-default):focus.valid,\ninput[type=time]:not(.browser-default).valid,\ninput[type=time]:not(.browser-default):focus.valid,\ninput[type=date]:not(.browser-default).valid,\ninput[type=date]:not(.browser-default):focus.valid,\ninput[type=datetime]:not(.browser-default).valid,\ninput[type=datetime]:not(.browser-default):focus.valid,\ninput[type=datetime-local]:not(.browser-default).valid,\ninput[type=datetime-local]:not(.browser-default):focus.valid,\ninput[type=tel]:not(.browser-default).valid,\ninput[type=tel]:not(.browser-default):focus.valid,\ninput[type=number]:not(.browser-default).valid,\ninput[type=number]:not(.browser-default):focus.valid,\ninput[type=search]:not(.browser-default).valid,\ninput[type=search]:not(.browser-default):focus.valid,\ntextarea.textarea.valid,\ntextarea.textarea:focus.valid {\n border-bottom: 1px solid #4caf50;\n box-shadow: 0 1px 0 0 #4caf50;\n}\n\n.select-wrapper.invalid > input.select-dropdown, .select-wrapper.invalid > input.select-dropdown:focus, input:not([type]).invalid, input:not([type]):focus.invalid,\ninput[type=text]:not(.browser-default).invalid,\ninput[type=text]:not(.browser-default):focus.invalid,\ninput[type=password]:not(.browser-default).invalid,\ninput[type=password]:not(.browser-default):focus.invalid,\ninput[type=email]:not(.browser-default).invalid,\ninput[type=email]:not(.browser-default):focus.invalid,\ninput[type=url]:not(.browser-default).invalid,\ninput[type=url]:not(.browser-default):focus.invalid,\ninput[type=time]:not(.browser-default).invalid,\ninput[type=time]:not(.browser-default):focus.invalid,\ninput[type=date]:not(.browser-default).invalid,\ninput[type=date]:not(.browser-default):focus.invalid,\ninput[type=datetime]:not(.browser-default).invalid,\ninput[type=datetime]:not(.browser-default):focus.invalid,\ninput[type=datetime-local]:not(.browser-default).invalid,\ninput[type=datetime-local]:not(.browser-default):focus.invalid,\ninput[type=tel]:not(.browser-default).invalid,\ninput[type=tel]:not(.browser-default):focus.invalid,\ninput[type=number]:not(.browser-default).invalid,\ninput[type=number]:not(.browser-default):focus.invalid,\ninput[type=search]:not(.browser-default).invalid,\ninput[type=search]:not(.browser-default):focus.invalid,\ntextarea.textarea.invalid,\ntextarea.textarea:focus.invalid {\n border-bottom: 1px solid #f44336;\n box-shadow: 0 1px 0 0 #f44336;\n}\n\n.select-wrapper.valid .helper-text[data-success], .select-wrapper.invalid ~ .helper-text[data-error], input:not([type]).valid ~ .helper-text[data-success], input:not([type]):focus.valid ~ .helper-text[data-success], input:not([type]).invalid ~ .helper-text[data-error], input:not([type]):focus.invalid ~ .helper-text[data-error],\ninput[type=text]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=text]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=text]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=text]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=password]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=password]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=password]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=password]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=email]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=email]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=email]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=email]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=url]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=url]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=url]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=url]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=time]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=time]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=time]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=time]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=date]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=date]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=date]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=date]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=datetime]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=datetime]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=datetime]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=datetime-local]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=datetime-local]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=tel]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=tel]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=tel]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=tel]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=number]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=number]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=number]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=number]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=search]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=search]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=search]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=search]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ntextarea.textarea.valid ~ .helper-text[data-success],\ntextarea.textarea:focus.valid ~ .helper-text[data-success],\ntextarea.textarea.invalid ~ .helper-text[data-error],\ntextarea.textarea:focus.invalid ~ .helper-text[data-error] {\n color: transparent;\n user-select: none;\n pointer-events: none;\n}\n\n.select-wrapper.valid ~ .helper-text:after, input:not([type]).valid ~ .helper-text:after, input:not([type]):focus.valid ~ .helper-text:after,\ninput[type=text]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=text]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=password]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=password]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=email]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=email]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=url]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=url]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=time]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=time]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=date]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=date]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=datetime]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=datetime]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=datetime-local]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=tel]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=tel]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=number]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=number]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=search]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=search]:not(.browser-default):focus.valid ~ .helper-text:after,\ntextarea.textarea.valid ~ .helper-text:after,\ntextarea.textarea:focus.valid ~ .helper-text:after {\n content: attr(data-success);\n color: #4caf50;\n}\n\n.select-wrapper.invalid ~ .helper-text:after, input:not([type]).invalid ~ .helper-text:after, input:not([type]):focus.invalid ~ .helper-text:after,\ninput[type=text]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=text]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=password]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=password]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=email]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=email]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=url]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=url]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=time]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=time]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=date]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=date]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=datetime]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=datetime-local]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=tel]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=tel]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=number]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=number]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=search]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=search]:not(.browser-default):focus.invalid ~ .helper-text:after,\ntextarea.textarea.invalid ~ .helper-text:after,\ntextarea.textarea:focus.invalid ~ .helper-text:after {\n content: attr(data-error);\n color: #f44336;\n}\n\n.select-wrapper + label:after, input:not([type]) + label:after,\ninput[type=text]:not(.browser-default) + label:after,\ninput[type=password]:not(.browser-default) + label:after,\ninput[type=email]:not(.browser-default) + label:after,\ninput[type=url]:not(.browser-default) + label:after,\ninput[type=time]:not(.browser-default) + label:after,\ninput[type=date]:not(.browser-default) + label:after,\ninput[type=datetime]:not(.browser-default) + label:after,\ninput[type=datetime-local]:not(.browser-default) + label:after,\ninput[type=tel]:not(.browser-default) + label:after,\ninput[type=number]:not(.browser-default) + label:after,\ninput[type=search]:not(.browser-default) + label:after,\ntextarea.textarea + label:after {\n display: block;\n content: \"\";\n position: absolute;\n top: 100%;\n left: 0;\n opacity: 0;\n transition: 0.2s opacity ease-out, 0.2s color ease-out;\n}\n\n.input-field {\n position: relative;\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n.input-field.inline {\n display: inline-block;\n vertical-align: middle;\n margin-left: 5px;\n}\n.input-field.inline input,\n.input-field.inline .select-dropdown {\n margin-bottom: 1rem;\n}\n.input-field.col label {\n left: 0.5rem;\n}\n.input-field.col .prefix ~ label,\n.input-field.col .prefix ~ .validate ~ label {\n width: calc(100% - 3rem - 1rem);\n}\n.input-field > label {\n color: #9e9e9e;\n position: absolute;\n top: 0;\n left: 0;\n font-size: 1rem;\n cursor: text;\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n transform-origin: 0% 100%;\n text-align: initial;\n transform: translateY(12px);\n}\n.input-field > label:not(.label-icon).active {\n transform: translateY(-14px) scale(0.8);\n transform-origin: 0 0;\n}\n.input-field > input[type]:-webkit-autofill:not(.browser-default):not([type=search]) + label, .input-field > input[type=date]:not(.browser-default) + label, .input-field > input[type=time]:not(.browser-default) + label {\n transform: translateY(-14px) scale(0.8);\n transform-origin: 0 0;\n}\n.input-field .helper-text {\n position: relative;\n min-height: 18px;\n display: block;\n font-size: 12px;\n color: rgba(0, 0, 0, 0.54);\n}\n.input-field .helper-text::after {\n opacity: 1;\n position: absolute;\n top: 0;\n left: 0;\n}\n.input-field .prefix {\n position: absolute;\n width: 56px;\n font-size: 2rem;\n transition: color 0.2s;\n}\n.input-field .prefix.active {\n color: #26a69a;\n}\n.input-field .prefix ~ input,\n.input-field .prefix ~ textarea,\n.input-field .prefix ~ label,\n.input-field .prefix ~ .validate ~ label,\n.input-field .prefix ~ .helper-text,\n.input-field .prefix ~ .autocomplete-content {\n margin-left: 3rem;\n width: 92%;\n width: calc(100% - 3rem);\n}\n.input-field .prefix ~ label {\n margin-left: 3rem;\n}\n@media only screen and (max-width : 992px) {\n .input-field .prefix ~ input {\n width: 86%;\n width: calc(100% - 3rem);\n }\n}\n@media only screen and (max-width : 600px) {\n .input-field .prefix ~ input {\n width: 80%;\n width: calc(100% - 3rem);\n }\n}\n\n/* Search Field */\n.input-field input[type=search] {\n display: block;\n line-height: inherit;\n transition: 0.3s background-color;\n}\n.nav-wrapper .input-field input[type=search] {\n height: inherit;\n padding-left: 4rem;\n width: calc(100% - 4rem);\n border: 0;\n box-shadow: none;\n}\n.input-field input[type=search]:focus:not(.browser-default) {\n background-color: #fff;\n border: 0;\n box-shadow: none;\n color: #444;\n}\n.input-field input[type=search]:focus:not(.browser-default) + label i, .input-field input[type=search]:focus:not(.browser-default) ~ .mdi-navigation-close, .input-field input[type=search]:focus:not(.browser-default) ~ .material-icons {\n color: #444;\n}\n.input-field input[type=search] + .label-icon {\n transform: none;\n left: 1rem;\n}\n.input-field input[type=search] ~ .mdi-navigation-close, .input-field input[type=search] ~ .material-icons {\n position: absolute;\n top: 0;\n right: 1rem;\n color: transparent;\n cursor: pointer;\n font-size: 2rem;\n transition: 0.3s color;\n}\n\n/* Textarea */\ntextarea {\n width: 100%;\n height: 56px;\n background-color: transparent;\n}\ntextarea.textarea {\n line-height: normal;\n overflow-y: hidden; /* prevents scroll bar flash */\n padding: 0.8rem 0 0.8rem 0; /* prevents text jump on Enter keypress */\n resize: none;\n min-height: 56px;\n box-sizing: border-box;\n}\n\n.hiddendiv {\n visibility: hidden;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: break-word; /* future version of deprecated 'word-wrap' */\n padding-top: 1.2rem; /* prevents text jump on Enter keypress */\n position: absolute;\n top: 0;\n z-index: -1;\n}\n\n/* Autocomplete */\n.autocomplete-content li .highlight {\n color: #444;\n}\n.autocomplete-content li img {\n margin: 5px 15px;\n}\n\n/* Character Counter */\n.character-counter {\n min-height: 18px;\n}\n\n/* Radio Buttons\n ========================================================================== */\n[type=radio]:not(:checked),\n[type=radio]:checked {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n}\n\n[type=radio]:not(:checked) + span,\n[type=radio]:checked + span {\n position: relative;\n padding-left: 35px;\n cursor: pointer;\n display: inline-block;\n height: 25px;\n line-height: 25px;\n font-size: 1rem;\n transition: 0.28s ease;\n user-select: none;\n}\n\n[type=radio] + span:before,\n[type=radio] + span:after {\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n margin: 4px;\n width: 16px;\n height: 16px;\n z-index: 0;\n transition: 0.28s ease;\n}\n\n/* Unchecked styles */\n[type=radio]:not(:checked) + span:before,\n[type=radio]:not(:checked) + span:after,\n[type=radio]:checked + span:before,\n[type=radio]:checked + span:after,\n[type=radio].with-gap:checked + span:before,\n[type=radio].with-gap:checked + span:after {\n border-radius: 50%;\n}\n\n[type=radio]:not(:checked) + span:before,\n[type=radio]:not(:checked) + span:after {\n border: 2px solid #5a5a5a;\n}\n\n[type=radio]:not(:checked) + span:after {\n transform: scale(0);\n}\n\n/* Checked styles */\n[type=radio]:checked + span:before {\n border: 2px solid transparent;\n}\n\n[type=radio]:checked + span:after,\n[type=radio].with-gap:checked + span:before,\n[type=radio].with-gap:checked + span:after {\n border: 2px solid #26a69a;\n}\n\n[type=radio]:checked + span:after,\n[type=radio].with-gap:checked + span:after {\n background-color: #26a69a;\n}\n\n[type=radio]:checked + span:after {\n transform: scale(1.02);\n}\n\n/* Radio With gap */\n[type=radio].with-gap:checked + span:after {\n transform: scale(0.5);\n}\n\n/* Focused styles */\n[type=radio].tabbed:focus + span:before {\n box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);\n}\n\n/* Disabled Radio With gap */\n[type=radio].with-gap:disabled:checked + span:before {\n border: 2px solid rgba(0, 0, 0, 0.42);\n}\n\n[type=radio].with-gap:disabled:checked + span:after {\n border: none;\n background-color: rgba(0, 0, 0, 0.42);\n}\n\n/* Disabled style */\n[type=radio]:disabled:not(:checked) + span:before,\n[type=radio]:disabled:checked + span:before {\n background-color: transparent;\n border-color: rgba(0, 0, 0, 0.42);\n}\n\n[type=radio]:disabled + span {\n color: rgba(0, 0, 0, 0.42);\n}\n\n[type=radio]:disabled:not(:checked) + span:before {\n border-color: rgba(0, 0, 0, 0.42);\n}\n\n[type=radio]:disabled:checked + span:after {\n background-color: rgba(0, 0, 0, 0.42);\n border-color: #949494;\n}\n\n/* Checkboxes\n ========================================================================== */\n/* Remove default checkbox */\n[type=checkbox]:not(:checked),\n[type=checkbox]:checked {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n}\n\n[type=checkbox] {\n /* checkbox aspect */\n}\n[type=checkbox] + span:not(.lever) {\n position: relative;\n padding-left: 35px;\n cursor: pointer;\n display: inline-block;\n height: 25px;\n line-height: 25px;\n font-size: 1rem;\n user-select: none;\n}\n[type=checkbox] + span:not(.lever):before, [type=checkbox]:not(.filled-in) + span:not(.lever):after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 18px;\n height: 18px;\n z-index: 0;\n border: 2px solid #5a5a5a;\n border-radius: 1px;\n margin-top: 3px;\n transition: 0.2s;\n}\n[type=checkbox]:not(.filled-in) + span:not(.lever):after {\n border: 0;\n transform: scale(0);\n}\n[type=checkbox]:not(:checked):disabled + span:not(.lever):before {\n border: none;\n background-color: rgba(0, 0, 0, 0.42);\n}\n[type=checkbox].tabbed:focus + span:not(.lever):after {\n transform: scale(1);\n border: 0;\n border-radius: 50%;\n box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);\n background-color: rgba(0, 0, 0, 0.1);\n}\n\n[type=checkbox]:checked + span:not(.lever):before {\n top: -4px;\n left: -5px;\n width: 12px;\n height: 22px;\n border-top: 2px solid transparent;\n border-left: 2px solid transparent;\n border-right: 2px solid #26a69a;\n border-bottom: 2px solid #26a69a;\n transform: rotate(40deg);\n backface-visibility: hidden;\n transform-origin: 100% 100%;\n}\n[type=checkbox]:checked:disabled + span:before {\n border-right: 2px solid rgba(0, 0, 0, 0.42);\n border-bottom: 2px solid rgba(0, 0, 0, 0.42);\n}\n\n/* Indeterminate checkbox */\n[type=checkbox]:indeterminate + span:not(.lever):before {\n top: -11px;\n left: -12px;\n width: 10px;\n height: 22px;\n border-top: none;\n border-left: none;\n border-right: 2px solid #26a69a;\n border-bottom: none;\n transform: rotate(90deg);\n backface-visibility: hidden;\n transform-origin: 100% 100%;\n}\n[type=checkbox]:indeterminate:disabled + span:not(.lever):before {\n border-right: 2px solid rgba(0, 0, 0, 0.42);\n background-color: transparent;\n}\n\n[type=checkbox].filled-in + span:not(.lever):after {\n border-radius: 2px;\n}\n[type=checkbox].filled-in + span:not(.lever):before,\n[type=checkbox].filled-in + span:not(.lever):after {\n content: \"\";\n left: 0;\n position: absolute;\n /* .1s delay is for check animation */\n transition: border 0.25s, background-color 0.25s, width 0.2s 0.1s, height 0.2s 0.1s, top 0.2s 0.1s, left 0.2s 0.1s;\n z-index: 1;\n}\n[type=checkbox].filled-in:not(:checked) + span:not(.lever):before {\n width: 0;\n height: 0;\n border: 3px solid transparent;\n left: 6px;\n top: 10px;\n transform: rotateZ(37deg);\n transform-origin: 100% 100%;\n}\n[type=checkbox].filled-in:not(:checked) + span:not(.lever):after {\n height: 20px;\n width: 20px;\n background-color: transparent;\n border: 2px solid #5a5a5a;\n top: 0px;\n z-index: 0;\n}\n[type=checkbox].filled-in:checked + span:not(.lever):before {\n top: 0;\n left: 1px;\n width: 8px;\n height: 13px;\n border-top: 2px solid transparent;\n border-left: 2px solid transparent;\n border-right: 2px solid #fff;\n border-bottom: 2px solid #fff;\n transform: rotateZ(37deg);\n transform-origin: 100% 100%;\n}\n[type=checkbox].filled-in:checked + span:not(.lever):after {\n top: 0;\n width: 20px;\n height: 20px;\n border: 2px solid #26a69a;\n background-color: #26a69a;\n z-index: 0;\n}\n[type=checkbox].filled-in.tabbed:focus + span:not(.lever):after {\n border-radius: 2px;\n border-color: #5a5a5a;\n background-color: rgba(0, 0, 0, 0.1);\n}\n[type=checkbox].filled-in.tabbed:checked:focus + span:not(.lever):after {\n border-radius: 2px;\n background-color: #26a69a;\n border-color: #26a69a;\n}\n[type=checkbox].filled-in:disabled:not(:checked) + span:not(.lever):before {\n background-color: transparent;\n border: 2px solid transparent;\n}\n[type=checkbox].filled-in:disabled:not(:checked) + span:not(.lever):after {\n border-color: transparent;\n background-color: #949494;\n}\n[type=checkbox].filled-in:disabled:checked + span:not(.lever):before {\n background-color: transparent;\n}\n[type=checkbox].filled-in:disabled:checked + span:not(.lever):after {\n background-color: #949494;\n border-color: #949494;\n}\n\n/* Switch\n ========================================================================== */\n.switch,\n.switch * {\n -webkit-tap-highlight-color: transparent;\n user-select: none;\n}\n\n.switch label {\n cursor: pointer;\n}\n\n.switch label input[type=checkbox] {\n opacity: 0;\n width: 0;\n height: 0;\n}\n.switch label input[type=checkbox]:checked + .lever {\n background-color: #84c7c1;\n}\n.switch label input[type=checkbox]:checked + .lever:before, .switch label input[type=checkbox]:checked + .lever:after {\n left: 18px;\n}\n.switch label input[type=checkbox]:checked + .lever:after {\n background-color: #26a69a;\n}\n\n.switch label .lever {\n content: \"\";\n display: inline-block;\n position: relative;\n width: 36px;\n height: 14px;\n background-color: rgba(0, 0, 0, 0.38);\n border-radius: 15px;\n transition: background 0.3s ease;\n vertical-align: middle;\n margin: 0 16px;\n}\n.switch label .lever:before, .switch label .lever:after {\n content: \"\";\n position: absolute;\n display: inline-block;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n left: 0;\n top: -3px;\n transition: left 0.3s ease, background 0.3s ease, box-shadow 0.1s ease, transform 0.1s ease;\n}\n.switch label .lever:before {\n background-color: rgba(38, 166, 154, 0.15);\n}\n.switch label .lever:after {\n background-color: #F1F1F1;\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n\ninput[type=checkbox]:checked:not(:disabled) ~ .lever:active::before,\ninput[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::before {\n transform: scale(2.4);\n background-color: rgba(38, 166, 154, 0.15);\n}\n\ninput[type=checkbox]:not(:disabled) ~ .lever:active:before,\ninput[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::before {\n transform: scale(2.4);\n background-color: rgba(0, 0, 0, 0.08);\n}\n\n.switch input[type=checkbox][disabled] + .lever {\n cursor: default;\n background-color: rgba(0, 0, 0, 0.12);\n}\n\n.switch label input[type=checkbox][disabled] + .lever:after,\n.switch label input[type=checkbox][disabled]:checked + .lever:after {\n background-color: #949494;\n}\n\n/* Select Field\n ========================================================================== */\nselect {\n display: none;\n}\n\nselect.browser-default {\n display: block;\n}\n\nselect {\n background-color: rgba(255, 255, 255, 0.9);\n width: 100%;\n padding: 5px;\n border: 1px solid #f2f2f2;\n border-radius: 2px;\n height: 56px;\n}\n\n.select-label {\n position: absolute;\n}\n\n.select-wrapper {\n position: relative;\n}\n.select-wrapper.valid + label, .select-wrapper.invalid + label {\n width: 100%;\n pointer-events: none;\n}\n.select-wrapper input.select-dropdown {\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: none;\n border-bottom: 1px solid #9e9e9e;\n outline: none;\n height: 56px;\n line-height: 56px;\n width: 100%;\n font-size: 16px;\n margin: 0 0 8px 0;\n padding: 0;\n display: block;\n user-select: none;\n z-index: 1;\n}\n.select-wrapper input.select-dropdown:focus {\n border-bottom: 1px solid #26a69a;\n}\n.select-wrapper .caret {\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n margin: auto 0;\n z-index: 0;\n fill: rgba(0, 0, 0, 0.87);\n}\n.select-wrapper + label {\n position: absolute;\n top: -26px;\n font-size: 0.8rem;\n}\n\nselect:disabled {\n color: rgba(0, 0, 0, 0.42);\n}\n\n.select-wrapper.disabled + label {\n color: rgba(0, 0, 0, 0.42);\n}\n.select-wrapper.disabled .caret {\n fill: rgba(0, 0, 0, 0.42);\n}\n\n.select-wrapper input.select-dropdown:disabled {\n color: rgba(0, 0, 0, 0.42);\n cursor: default;\n user-select: none;\n}\n\n.select-wrapper i {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.select-dropdown li.disabled,\n.select-dropdown li.disabled > span,\n.select-dropdown li.optgroup {\n color: rgba(0, 0, 0, 0.3);\n background-color: transparent;\n}\n\nbody.keyboard-focused .select-dropdown.dropdown-content li:focus {\n background-color: rgba(0, 0, 0, 0.08);\n}\n\n.select-dropdown.dropdown-content li:hover {\n background-color: rgba(0, 0, 0, 0.08);\n}\n.select-dropdown.dropdown-content li.selected {\n background-color: rgba(0, 0, 0, 0.03);\n}\n\n.prefix ~ .select-wrapper {\n margin-left: 3rem;\n width: 92%;\n width: calc(100% - 3rem);\n}\n\n.prefix ~ label {\n margin-left: 3rem;\n}\n\n.select-dropdown li img {\n margin: 5px 15px;\n float: right;\n}\n\n.select-dropdown li.optgroup.selected > span {\n color: rgba(0, 0, 0, 0.7);\n}\n.select-dropdown li.optgroup > span {\n color: rgba(0, 0, 0, 0.4);\n}\n.select-dropdown li.optgroup ~ li.optgroup-option {\n padding-left: 1rem;\n}\n\n/* File Input\n ========================================================================== */\n.file-field {\n position: relative;\n}\n.file-field .file-path-wrapper {\n overflow: hidden;\n padding-left: 10px;\n}\n.file-field input.file-path {\n width: 100%;\n}\n.file-field .btn, .file-field .btn-small, .file-field .btn-large {\n float: left;\n height: 56px;\n line-height: 56px;\n}\n.file-field span {\n cursor: pointer;\n}\n.file-field input[type=file] {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n margin: 0;\n padding: 0;\n font-size: 20px;\n cursor: pointer;\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.file-field input[type=file]::-webkit-file-upload-button {\n display: none;\n}\n\n/* Range\n ========================================================================== */\n.range-field {\n position: relative;\n}\n\ninput[type=range],\ninput[type=range] + .thumb {\n cursor: pointer;\n}\n\ninput[type=range] {\n position: relative;\n background-color: transparent;\n border: none;\n outline: none;\n width: 100%;\n margin: 15px 0;\n padding: 0;\n}\ninput[type=range]:focus {\n outline: none;\n}\n\ninput[type=range] + .thumb {\n position: absolute;\n top: 10px;\n left: 0;\n border: none;\n height: 0;\n width: 0;\n border-radius: 50%;\n background-color: #26a69a;\n margin-left: 7px;\n transform-origin: 50% 50%;\n transform: rotate(-45deg);\n}\ninput[type=range] + .thumb .value {\n display: block;\n width: 30px;\n text-align: center;\n color: #26a69a;\n font-size: 0;\n transform: rotate(45deg);\n}\ninput[type=range] + .thumb.active {\n border-radius: 50% 50% 50% 0;\n}\ninput[type=range] + .thumb.active .value {\n color: #fff;\n margin-left: -1px;\n margin-top: 8px;\n font-size: 10px;\n}\n\ninput[type=range] {\n -webkit-appearance: none;\n}\n\ninput[type=range]::-webkit-slider-runnable-track {\n height: 3px;\n background: #c2c0c2;\n border: none;\n}\n\ninput[type=range]::-webkit-slider-thumb {\n border: none;\n height: 14px;\n width: 14px;\n border-radius: 50%;\n background: #26a69a;\n transition: box-shadow 0.3s;\n -webkit-appearance: none;\n background-color: #26a69a;\n transform-origin: 50% 50%;\n margin: -5px 0 0 0;\n}\n\n.keyboard-focused input[type=range]:focus:not(.active)::-webkit-slider-thumb {\n box-shadow: 0 0 0 10px rgba(38, 166, 154, 0.26);\n}\n\ninput[type=range] {\n /* fix for FF unable to apply focus style bug */\n border: 1px solid white;\n /*required for proper track sizing in FF*/\n}\n\ninput[type=range]::-moz-range-track {\n height: 3px;\n background: #c2c0c2;\n border: none;\n}\n\ninput[type=range]::-moz-focus-inner {\n border: 0;\n}\n\ninput[type=range]::-moz-range-thumb {\n border: none;\n height: 14px;\n width: 14px;\n border-radius: 50%;\n background: #26a69a;\n transition: box-shadow 0.3s;\n margin-top: -5px;\n}\n\ninput[type=range]:-moz-focusring {\n outline: 1px solid #fff;\n outline-offset: -1px;\n}\n\n.keyboard-focused input[type=range]:focus:not(.active)::-moz-range-thumb {\n box-shadow: 0 0 0 10px rgba(38, 166, 154, 0.26);\n}\n\ninput[type=range]::-ms-track {\n height: 3px;\n background: transparent;\n border-color: transparent;\n border-width: 6px 0;\n /*remove default tick marks*/\n color: transparent;\n}\n\ninput[type=range]::-ms-fill-lower {\n background: #777;\n}\n\ninput[type=range]::-ms-fill-upper {\n background: #ddd;\n}\n\ninput[type=range]::-ms-thumb {\n border: none;\n height: 14px;\n width: 14px;\n border-radius: 50%;\n background: #26a69a;\n transition: box-shadow 0.3s;\n}\n\n.keyboard-focused input[type=range]:focus:not(.active)::-ms-thumb {\n box-shadow: 0 0 0 10px rgba(38, 166, 154, 0.26);\n}\n\n.parallax {\n /* Set a specific height */\n min-height: 500px;\n /* Create the parallax scrolling effect */\n background-attachment: fixed;\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n}\n\n* {\n box-sizing: border-box;\n}\n\nbody {\n font-family: sans-serif;\n}\n\n.scene {\n width: 200px;\n height: 200px;\n border: 1px solid #CCC;\n margin: 80px;\n perspective: 400px;\n}\n\n.cube {\n width: 200px;\n height: 200px;\n position: relative;\n transform-style: preserve-3d;\n transform: translateZ(-400px);\n transition: transform 1s;\n}\n\n.cube.show-front {\n transform: translateZ(-10px) rotateY(0deg);\n}\n\n.cube.show-right {\n transform: translateZ(-10px) rotateY(-90deg);\n}\n\n.cube.show-back {\n transform: translateZ(-10px) rotateY(-180deg);\n}\n\n.cube.show-left {\n transform: translateZ(-10px) rotateY(90deg);\n}\n\n.cube.show-top {\n transform: translateZ(-10px) rotateX(-90deg);\n}\n\n.cube.show-bottom {\n transform: translateZ(-10px) rotateX(90deg);\n}\n\n.cube__face {\n position: absolute;\n width: 200px;\n height: 200px;\n border: 2px solid black;\n line-height: 200px;\n font-size: 40px;\n font-weight: bold;\n color: white;\n text-align: center;\n}\n\n.cube__face--front {\n background: hsla(0deg, 100%, 50%, 0.7);\n}\n\n.cube__face--right {\n background: hsla(60deg, 100%, 50%, 0.7);\n}\n\n.cube__face--back {\n background: hsla(120deg, 100%, 50%, 0.7);\n}\n\n.cube__face--left {\n background: hsla(180deg, 100%, 50%, 0.7);\n}\n\n.cube__face--top {\n background: hsla(240deg, 100%, 50%, 0.7);\n}\n\n.cube__face--bottom {\n background: hsla(300deg, 100%, 50%, 0.7);\n}\n\n.cube__face--front {\n transform: rotateY(0deg) translateZ(100px);\n}\n\n.cube__face--right {\n transform: rotateY(90deg) translateZ(100px);\n}\n\n.cube__face--back {\n transform: rotateY(180deg) translateZ(100px);\n}\n\n.cube__face--left {\n transform: rotateY(-90deg) translateZ(100px);\n}\n\n.cube__face--top {\n transform: rotateX(90deg) translateZ(100px);\n}\n\n.cube__face--bottom {\n transform: rotateX(-90deg) translateZ(100px);\n}\n\nlabel {\n margin-right: 10px;\n}\n\n.container {\n margin: 0 auto;\n max-width: 1280px;\n width: 90%;\n}\n\n@media only screen and (min-width : 601px) {\n .container {\n width: 85%;\n }\n}\n@media only screen and (min-width : 993px) {\n .container {\n width: 70%;\n }\n}\n.col .row {\n margin-left: -0.5rem;\n margin-right: -0.5rem;\n}\n\n.section {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.section.no-pad {\n padding: 0;\n}\n.section.no-pad-bot {\n padding-bottom: 0;\n}\n.section.no-pad-top {\n padding-top: 0;\n}\n\n.row {\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 20px;\n}\n.row:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.row .col {\n float: left;\n box-sizing: border-box;\n padding: 0 0.5rem;\n min-height: 1px;\n}\n.row .col[class*=push-], .row .col[class*=pull-] {\n position: relative;\n}\n.row .col.s1 {\n width: 8.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s2 {\n width: 16.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s3 {\n width: 25%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s4 {\n width: 33.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s5 {\n width: 41.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s6 {\n width: 50%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s7 {\n width: 58.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s8 {\n width: 66.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s9 {\n width: 75%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s10 {\n width: 83.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s11 {\n width: 91.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s12 {\n width: 100%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.offset-s1 {\n margin-left: 8.3333333333%;\n}\n.row .col.pull-s1 {\n right: 8.3333333333%;\n}\n.row .col.push-s1 {\n left: 8.3333333333%;\n}\n.row .col.offset-s2 {\n margin-left: 16.6666666667%;\n}\n.row .col.pull-s2 {\n right: 16.6666666667%;\n}\n.row .col.push-s2 {\n left: 16.6666666667%;\n}\n.row .col.offset-s3 {\n margin-left: 25%;\n}\n.row .col.pull-s3 {\n right: 25%;\n}\n.row .col.push-s3 {\n left: 25%;\n}\n.row .col.offset-s4 {\n margin-left: 33.3333333333%;\n}\n.row .col.pull-s4 {\n right: 33.3333333333%;\n}\n.row .col.push-s4 {\n left: 33.3333333333%;\n}\n.row .col.offset-s5 {\n margin-left: 41.6666666667%;\n}\n.row .col.pull-s5 {\n right: 41.6666666667%;\n}\n.row .col.push-s5 {\n left: 41.6666666667%;\n}\n.row .col.offset-s6 {\n margin-left: 50%;\n}\n.row .col.pull-s6 {\n right: 50%;\n}\n.row .col.push-s6 {\n left: 50%;\n}\n.row .col.offset-s7 {\n margin-left: 58.3333333333%;\n}\n.row .col.pull-s7 {\n right: 58.3333333333%;\n}\n.row .col.push-s7 {\n left: 58.3333333333%;\n}\n.row .col.offset-s8 {\n margin-left: 66.6666666667%;\n}\n.row .col.pull-s8 {\n right: 66.6666666667%;\n}\n.row .col.push-s8 {\n left: 66.6666666667%;\n}\n.row .col.offset-s9 {\n margin-left: 75%;\n}\n.row .col.pull-s9 {\n right: 75%;\n}\n.row .col.push-s9 {\n left: 75%;\n}\n.row .col.offset-s10 {\n margin-left: 83.3333333333%;\n}\n.row .col.pull-s10 {\n right: 83.3333333333%;\n}\n.row .col.push-s10 {\n left: 83.3333333333%;\n}\n.row .col.offset-s11 {\n margin-left: 91.6666666667%;\n}\n.row .col.pull-s11 {\n right: 91.6666666667%;\n}\n.row .col.push-s11 {\n left: 91.6666666667%;\n}\n.row .col.offset-s12 {\n margin-left: 100%;\n}\n.row .col.pull-s12 {\n right: 100%;\n}\n.row .col.push-s12 {\n left: 100%;\n}\n@media only screen and (min-width : 601px) {\n .row .col.m1 {\n width: 8.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m2 {\n width: 16.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m3 {\n width: 25%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m4 {\n width: 33.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m5 {\n width: 41.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m6 {\n width: 50%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m7 {\n width: 58.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m8 {\n width: 66.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m9 {\n width: 75%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m10 {\n width: 83.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m11 {\n width: 91.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m12 {\n width: 100%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.offset-m1 {\n margin-left: 8.3333333333%;\n }\n .row .col.pull-m1 {\n right: 8.3333333333%;\n }\n .row .col.push-m1 {\n left: 8.3333333333%;\n }\n .row .col.offset-m2 {\n margin-left: 16.6666666667%;\n }\n .row .col.pull-m2 {\n right: 16.6666666667%;\n }\n .row .col.push-m2 {\n left: 16.6666666667%;\n }\n .row .col.offset-m3 {\n margin-left: 25%;\n }\n .row .col.pull-m3 {\n right: 25%;\n }\n .row .col.push-m3 {\n left: 25%;\n }\n .row .col.offset-m4 {\n margin-left: 33.3333333333%;\n }\n .row .col.pull-m4 {\n right: 33.3333333333%;\n }\n .row .col.push-m4 {\n left: 33.3333333333%;\n }\n .row .col.offset-m5 {\n margin-left: 41.6666666667%;\n }\n .row .col.pull-m5 {\n right: 41.6666666667%;\n }\n .row .col.push-m5 {\n left: 41.6666666667%;\n }\n .row .col.offset-m6 {\n margin-left: 50%;\n }\n .row .col.pull-m6 {\n right: 50%;\n }\n .row .col.push-m6 {\n left: 50%;\n }\n .row .col.offset-m7 {\n margin-left: 58.3333333333%;\n }\n .row .col.pull-m7 {\n right: 58.3333333333%;\n }\n .row .col.push-m7 {\n left: 58.3333333333%;\n }\n .row .col.offset-m8 {\n margin-left: 66.6666666667%;\n }\n .row .col.pull-m8 {\n right: 66.6666666667%;\n }\n .row .col.push-m8 {\n left: 66.6666666667%;\n }\n .row .col.offset-m9 {\n margin-left: 75%;\n }\n .row .col.pull-m9 {\n right: 75%;\n }\n .row .col.push-m9 {\n left: 75%;\n }\n .row .col.offset-m10 {\n margin-left: 83.3333333333%;\n }\n .row .col.pull-m10 {\n right: 83.3333333333%;\n }\n .row .col.push-m10 {\n left: 83.3333333333%;\n }\n .row .col.offset-m11 {\n margin-left: 91.6666666667%;\n }\n .row .col.pull-m11 {\n right: 91.6666666667%;\n }\n .row .col.push-m11 {\n left: 91.6666666667%;\n }\n .row .col.offset-m12 {\n margin-left: 100%;\n }\n .row .col.pull-m12 {\n right: 100%;\n }\n .row .col.push-m12 {\n left: 100%;\n }\n}\n@media only screen and (min-width : 993px) {\n .row .col.l1 {\n width: 8.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l2 {\n width: 16.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l3 {\n width: 25%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l4 {\n width: 33.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l5 {\n width: 41.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l6 {\n width: 50%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l7 {\n width: 58.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l8 {\n width: 66.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l9 {\n width: 75%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l10 {\n width: 83.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l11 {\n width: 91.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l12 {\n width: 100%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.offset-l1 {\n margin-left: 8.3333333333%;\n }\n .row .col.pull-l1 {\n right: 8.3333333333%;\n }\n .row .col.push-l1 {\n left: 8.3333333333%;\n }\n .row .col.offset-l2 {\n margin-left: 16.6666666667%;\n }\n .row .col.pull-l2 {\n right: 16.6666666667%;\n }\n .row .col.push-l2 {\n left: 16.6666666667%;\n }\n .row .col.offset-l3 {\n margin-left: 25%;\n }\n .row .col.pull-l3 {\n right: 25%;\n }\n .row .col.push-l3 {\n left: 25%;\n }\n .row .col.offset-l4 {\n margin-left: 33.3333333333%;\n }\n .row .col.pull-l4 {\n right: 33.3333333333%;\n }\n .row .col.push-l4 {\n left: 33.3333333333%;\n }\n .row .col.offset-l5 {\n margin-left: 41.6666666667%;\n }\n .row .col.pull-l5 {\n right: 41.6666666667%;\n }\n .row .col.push-l5 {\n left: 41.6666666667%;\n }\n .row .col.offset-l6 {\n margin-left: 50%;\n }\n .row .col.pull-l6 {\n right: 50%;\n }\n .row .col.push-l6 {\n left: 50%;\n }\n .row .col.offset-l7 {\n margin-left: 58.3333333333%;\n }\n .row .col.pull-l7 {\n right: 58.3333333333%;\n }\n .row .col.push-l7 {\n left: 58.3333333333%;\n }\n .row .col.offset-l8 {\n margin-left: 66.6666666667%;\n }\n .row .col.pull-l8 {\n right: 66.6666666667%;\n }\n .row .col.push-l8 {\n left: 66.6666666667%;\n }\n .row .col.offset-l9 {\n margin-left: 75%;\n }\n .row .col.pull-l9 {\n right: 75%;\n }\n .row .col.push-l9 {\n left: 75%;\n }\n .row .col.offset-l10 {\n margin-left: 83.3333333333%;\n }\n .row .col.pull-l10 {\n right: 83.3333333333%;\n }\n .row .col.push-l10 {\n left: 83.3333333333%;\n }\n .row .col.offset-l11 {\n margin-left: 91.6666666667%;\n }\n .row .col.pull-l11 {\n right: 91.6666666667%;\n }\n .row .col.push-l11 {\n left: 91.6666666667%;\n }\n .row .col.offset-l12 {\n margin-left: 100%;\n }\n .row .col.pull-l12 {\n right: 100%;\n }\n .row .col.push-l12 {\n left: 100%;\n }\n}\n@media only screen and (min-width : 1201px) {\n .row .col.xl1 {\n width: 8.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl2 {\n width: 16.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl3 {\n width: 25%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl4 {\n width: 33.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl5 {\n width: 41.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl6 {\n width: 50%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl7 {\n width: 58.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl8 {\n width: 66.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl9 {\n width: 75%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl10 {\n width: 83.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl11 {\n width: 91.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl12 {\n width: 100%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.offset-xl1 {\n margin-left: 8.3333333333%;\n }\n .row .col.pull-xl1 {\n right: 8.3333333333%;\n }\n .row .col.push-xl1 {\n left: 8.3333333333%;\n }\n .row .col.offset-xl2 {\n margin-left: 16.6666666667%;\n }\n .row .col.pull-xl2 {\n right: 16.6666666667%;\n }\n .row .col.push-xl2 {\n left: 16.6666666667%;\n }\n .row .col.offset-xl3 {\n margin-left: 25%;\n }\n .row .col.pull-xl3 {\n right: 25%;\n }\n .row .col.push-xl3 {\n left: 25%;\n }\n .row .col.offset-xl4 {\n margin-left: 33.3333333333%;\n }\n .row .col.pull-xl4 {\n right: 33.3333333333%;\n }\n .row .col.push-xl4 {\n left: 33.3333333333%;\n }\n .row .col.offset-xl5 {\n margin-left: 41.6666666667%;\n }\n .row .col.pull-xl5 {\n right: 41.6666666667%;\n }\n .row .col.push-xl5 {\n left: 41.6666666667%;\n }\n .row .col.offset-xl6 {\n margin-left: 50%;\n }\n .row .col.pull-xl6 {\n right: 50%;\n }\n .row .col.push-xl6 {\n left: 50%;\n }\n .row .col.offset-xl7 {\n margin-left: 58.3333333333%;\n }\n .row .col.pull-xl7 {\n right: 58.3333333333%;\n }\n .row .col.push-xl7 {\n left: 58.3333333333%;\n }\n .row .col.offset-xl8 {\n margin-left: 66.6666666667%;\n }\n .row .col.pull-xl8 {\n right: 66.6666666667%;\n }\n .row .col.push-xl8 {\n left: 66.6666666667%;\n }\n .row .col.offset-xl9 {\n margin-left: 75%;\n }\n .row .col.pull-xl9 {\n right: 75%;\n }\n .row .col.push-xl9 {\n left: 75%;\n }\n .row .col.offset-xl10 {\n margin-left: 83.3333333333%;\n }\n .row .col.pull-xl10 {\n right: 83.3333333333%;\n }\n .row .col.push-xl10 {\n left: 83.3333333333%;\n }\n .row .col.offset-xl11 {\n margin-left: 91.6666666667%;\n }\n .row .col.pull-xl11 {\n right: 91.6666666667%;\n }\n .row .col.push-xl11 {\n left: 91.6666666667%;\n }\n .row .col.offset-xl12 {\n margin-left: 100%;\n }\n .row .col.pull-xl12 {\n right: 100%;\n }\n .row .col.push-xl12 {\n left: 100%;\n }\n}\n\n.sidenav {\n position: fixed;\n width: 300px;\n left: 0;\n top: 0;\n margin: 0;\n height: 100%;\n height: calc(100% + 60px);\n height: -moz-calc(100%);\n padding-bottom: 60px;\n background-color: #fff;\n z-index: 999;\n overflow-y: auto;\n will-change: transform;\n backface-visibility: hidden;\n transform: translateX(-105%);\n transition: transform 1s;\n}\n.sidenav.right-aligned {\n right: 0;\n left: auto;\n transform: translateX(100%);\n}\n.sidenav .collapsible {\n margin: 0;\n}\n.sidenav li {\n float: none;\n}\n.sidenav li .iconSideLink {\n display: flex;\n align-items: center;\n}\n.sidenav li .iconSideLink svg {\n stroke: rgba(0, 0, 0, 0.2);\n width: 30px;\n}\n.sidenav li.active {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.sidenav li.active svg {\n stroke: white !important;\n width: 30px;\n}\n.sidenav li.last {\n position: sticky;\n top: calc(100% - 45px - 35px);\n}\n.sidenav li > a {\n color: rgba(0, 0, 0, 0.87);\n display: flex;\n font-size: 14px;\n font-weight: 700;\n height: 45px;\n line-height: 45px;\n padding: 0 30px;\n}\n.sidenav li > a:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.sidenav li > a.btn, .sidenav li > a.btn-small, .sidenav li > a.btn-large, .sidenav li > a.btn-flat, .sidenav li > a.btn-floating {\n margin: 10px 15px;\n}\n.sidenav li > a.btn, .sidenav li > a.btn-small, .sidenav li > a.btn-large, .sidenav li > a.btn-floating {\n color: #fff;\n}\n.sidenav li > a.btn-flat {\n color: #343434;\n}\n.sidenav li > a.btn:hover, .sidenav li > a.btn-small:hover, .sidenav li > a.btn-large:hover {\n background-color: #414141;\n}\n.sidenav li > a.btn-floating:hover {\n background-color: #343434;\n}\n.sidenav li > a > i, .sidenav li > a > [class^=mdi-],\n.sidenav li > a li > a > [class*=mdi-], .sidenav li > a > i.s-icon {\n float: left;\n height: 45px;\n line-height: 45px;\n margin: 0 30px 0 0;\n width: 22.5px;\n color: rgba(0, 0, 0, 0.54);\n}\n.sidenav .divider {\n margin: 7.5px 0 0 0;\n}\n.sidenav .subheader {\n cursor: initial;\n pointer-events: none;\n color: rgba(0, 0, 0, 0.54);\n font-size: 14px;\n font-weight: 500;\n line-height: 45px;\n}\n.sidenav .subheader:hover {\n background-color: transparent;\n}\n.sidenav .user-view {\n position: relative;\n padding: 30px 30px 0;\n margin-bottom: 7.5px;\n}\n.sidenav .user-view > a {\n height: auto;\n padding: 0;\n}\n.sidenav .user-view > a:hover {\n background-color: transparent;\n}\n.sidenav .user-view .background {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n}\n.sidenav .user-view .circle,\n.sidenav .user-view .name,\n.sidenav .user-view .email {\n display: block;\n}\n.sidenav .user-view .circle {\n height: 64px;\n width: 64px;\n}\n.sidenav .user-view .name,\n.sidenav .user-view .email {\n font-size: 14px;\n line-height: 22.5px;\n}\n.sidenav .user-view .name {\n margin-top: 16px;\n font-weight: 500;\n}\n.sidenav .user-view .email {\n padding-bottom: 16px;\n font-weight: 400;\n}\n\n.drag-target {\n height: 100%;\n width: 10px;\n position: fixed;\n top: 0;\n z-index: 998;\n}\n.drag-target.right-aligned {\n right: 0;\n}\n\n.sidenav.sidenav-fixed {\n left: 0;\n transform: translateX(0);\n position: fixed;\n}\n.sidenav.sidenav-fixed.right-aligned {\n right: 0;\n left: auto;\n}\n\n@media only screen and (max-width : 992px) {\n .sidenav.sidenav-fixed {\n transform: translateX(-105%);\n }\n .sidenav.sidenav-fixed.right-aligned {\n transform: translateX(105%);\n }\n .sidenav > a {\n padding: 0 15px;\n }\n .sidenav .user-view {\n padding: 15px 15px 0;\n }\n}\n.sidenav .collapsible-body > ul:not(.collapsible) > li.active,\n.sidenav.sidenav-fixed .collapsible-body > ul:not(.collapsible) > li.active {\n background-color: #90caf9;\n}\n.sidenav .collapsible-body > ul:not(.collapsible) > li.active a,\n.sidenav.sidenav-fixed .collapsible-body > ul:not(.collapsible) > li.active a {\n color: #fff;\n}\n\n.sidenav .collapsible-body {\n padding: 0;\n}\n\n.sidenav-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n opacity: 0;\n height: 120vh;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 997;\n display: none;\n}\n\n.with-side-nav-open {\n padding-left: 300px;\n transition: padding 1s;\n}\n\n.btn, .btn-small, .btn-large,\n.btn-flat {\n border: none;\n border-radius: 2px;\n display: inline-block;\n height: 36px;\n line-height: 36px;\n padding: 0 16px;\n text-transform: uppercase;\n vertical-align: middle;\n -webkit-tap-highlight-color: transparent;\n}\n\n.btn.disabled,\n.btn-floating.disabled,\n.btn-large.disabled,\n.btn-small.disabled,\n.btn-flat.disabled,\n.btn:disabled,\n.btn-floating:disabled,\n.btn-large:disabled,\n.btn-small:disabled,\n.btn-flat:disabled,\n.btn[disabled],\n.btn-floating[disabled],\n.btn-large[disabled],\n.btn-small[disabled],\n.btn-flat[disabled] {\n pointer-events: none;\n background-color: #DFDFDF !important;\n box-shadow: none;\n color: #9F9F9F !important;\n cursor: default;\n}\n.btn.disabled:hover,\n.btn-floating.disabled:hover,\n.btn-large.disabled:hover,\n.btn-small.disabled:hover,\n.btn-flat.disabled:hover,\n.btn:disabled:hover,\n.btn-floating:disabled:hover,\n.btn-large:disabled:hover,\n.btn-small:disabled:hover,\n.btn-flat:disabled:hover,\n.btn[disabled]:hover,\n.btn-floating[disabled]:hover,\n.btn-large[disabled]:hover,\n.btn-small[disabled]:hover,\n.btn-flat[disabled]:hover {\n background-color: #DFDFDF !important;\n color: #9F9F9F !important;\n}\n\n.btn,\n.btn-small,\n.btn-large,\n.btn-floating,\n.btn-flat {\n font-size: 14px;\n outline: 0;\n}\n.btn i,\n.btn-floating i,\n.btn-large i,\n.btn-small i,\n.btn-flat i {\n font-size: 1.3rem;\n line-height: inherit;\n}\n\n.btn:focus, .btn-small:focus, .btn-large:focus,\n.btn-floating:focus {\n background-color: #1b1b1b;\n}\n\n.btn, .btn-small, .btn-large {\n text-decoration: none;\n color: #fff;\n background-color: #343434;\n text-align: center;\n letter-spacing: 0.5px;\n transition: background-color 0.2s ease-out;\n cursor: pointer;\n}\n.btn:hover, .btn-small:hover, .btn-large:hover {\n background-color: #414141;\n}\n\n.btn-floating {\n display: inline-block;\n color: #fff;\n position: relative;\n overflow: hidden;\n z-index: 1;\n width: 40px;\n height: 40px;\n line-height: 40px;\n padding: 0;\n background-color: #26a69a;\n border-radius: 50%;\n transition: background-color 0.3s;\n cursor: pointer;\n vertical-align: middle;\n}\n.btn-floating:hover {\n background-color: #26a69a;\n}\n.btn-floating:before {\n border-radius: 0;\n}\n.btn-floating.btn-large {\n width: 56px;\n height: 56px;\n padding: 0;\n}\n.btn-floating.btn-large.halfway-fab {\n bottom: 28px;\n}\n.btn-floating.btn-large i {\n line-height: 56px;\n}\n.btn-floating.btn-small {\n width: 32.4px;\n height: 32.4px;\n}\n.btn-floating.btn-small.halfway-fab {\n bottom: 16.2px;\n}\n.btn-floating.btn-small i {\n line-height: 32.4px;\n}\n.btn-floating.halfway-fab {\n position: absolute;\n right: 24px;\n bottom: 20px;\n}\n.btn-floating.halfway-fab.left {\n right: auto;\n left: 24px;\n}\n.btn-floating i {\n width: inherit;\n display: inline-block;\n text-align: center;\n color: #fff;\n font-size: 1.6rem;\n line-height: 40px;\n}\n\nbutton.btn-floating {\n border: none;\n}\n\n.fixed-action-btn {\n position: fixed;\n right: 23px;\n bottom: 23px;\n padding-top: 15px;\n margin-bottom: 0;\n z-index: 997;\n}\n.fixed-action-btn.active ul {\n visibility: visible;\n}\n.fixed-action-btn.direction-left, .fixed-action-btn.direction-right {\n padding: 0 0 0 15px;\n}\n.fixed-action-btn.direction-left ul, .fixed-action-btn.direction-right ul {\n text-align: right;\n right: 64px;\n top: 50%;\n transform: translateY(-50%);\n height: 100%;\n left: auto;\n /*width 100% only goes to width of button container */\n width: 500px;\n}\n.fixed-action-btn.direction-left ul li, .fixed-action-btn.direction-right ul li {\n display: inline-block;\n margin: 7.5px 15px 0 0;\n}\n.fixed-action-btn.direction-right {\n padding: 0 15px 0 0;\n}\n.fixed-action-btn.direction-right ul {\n text-align: left;\n direction: rtl;\n left: 64px;\n right: auto;\n}\n.fixed-action-btn.direction-right ul li {\n margin: 7.5px 0 0 15px;\n}\n.fixed-action-btn.direction-bottom {\n padding: 0 0 15px 0;\n}\n.fixed-action-btn.direction-bottom ul {\n top: 64px;\n bottom: auto;\n display: flex;\n flex-direction: column-reverse;\n}\n.fixed-action-btn.direction-bottom ul li {\n margin: 15px 0 0 0;\n}\n.fixed-action-btn.toolbar {\n padding: 0;\n height: 56px;\n}\n.fixed-action-btn.toolbar.active > a i {\n opacity: 0;\n}\n.fixed-action-btn.toolbar ul {\n display: flex;\n top: 0;\n bottom: 0;\n z-index: 1;\n}\n.fixed-action-btn.toolbar ul li {\n flex: 1;\n display: inline-block;\n margin: 0;\n height: 100%;\n transition: none;\n}\n.fixed-action-btn.toolbar ul li a {\n display: block;\n overflow: hidden;\n position: relative;\n width: 100%;\n height: 100%;\n background-color: transparent;\n box-shadow: none;\n color: #fff;\n line-height: 56px;\n z-index: 1;\n}\n.fixed-action-btn.toolbar ul li a i {\n line-height: inherit;\n}\n.fixed-action-btn ul {\n left: 0;\n right: 0;\n text-align: center;\n position: absolute;\n bottom: 64px;\n margin: 0;\n visibility: hidden;\n}\n.fixed-action-btn ul li {\n margin-bottom: 15px;\n}\n.fixed-action-btn ul a.btn-floating {\n opacity: 0;\n}\n.fixed-action-btn .fab-backdrop {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: 40px;\n height: 40px;\n background-color: #26a69a;\n border-radius: 50%;\n transform: scale(0);\n}\n\n.btn-flat {\n box-shadow: none;\n background-color: transparent;\n color: #343434;\n cursor: pointer;\n transition: background-color 0.2s;\n}\n.btn-flat:focus, .btn-flat:hover {\n box-shadow: none;\n}\n.btn-flat:focus {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.btn-flat.disabled, .btn-flat.btn-flat[disabled] {\n background-color: transparent !important;\n color: #b3b3b3 !important;\n cursor: default;\n}\n\n.btn-large {\n height: 54px;\n line-height: 54px;\n font-size: 15px;\n padding: 0 28px;\n}\n.btn-large i {\n font-size: 1.6rem;\n}\n\n.btn-small {\n height: 32.4px;\n line-height: 32.4px;\n font-size: 13px;\n}\n.btn-small i {\n font-size: 1.2rem;\n}\n\n.btn-block {\n display: block;\n}\n\n.communTabHeader, .tabs.activeTab-2 .tab-header-over2 .tab-header, .tabs.activeTab-2 .tab-header-over1 .tab-header, .tabs.activeTab-2 .tab-header-over0 .tab-header, .tabs.activeTab-1 .tab-header-over2 .tab-header, .tabs.activeTab-1 .tab-header-over1 .tab-header, .tabs.activeTab-1 .tab-header-over0 .tab-header, .tabs.activeTab-0 .tab-header-over2 .tab-header, .tabs.activeTab-0 .tab-header-over1 .tab-header, .tabs.activeTab-0 .tab-header-over0 .tab-header {\n height: 100px;\n padding: 40px;\n}\n\n.tabs {\n min-height: calc(100% - 150px);\n margin-top: 30px;\n padding: 0 !important;\n border-radius: 40px !important;\n}\n.tabs .innerpage {\n min-height: 70VH !important;\n}\n.tabs .tabs-header-overlay {\n display: flex;\n height: 100px;\n}\n.tabs.activeTab-0 .tab-header-over0 {\n flex: 1;\n background-color: #80c4fd;\n border-radius: 40px 0 0 0;\n}\n.tabs.activeTab-0 .tab-header-over0 .tab-header {\n background-color: #cbe7fe;\n border-radius: 40px 40px 0 0;\n}\n.tabs.activeTab-0 .tab-header-over1 {\n flex: 1;\n background: linear-gradient(0.25turn, #cbe7fe, #35a2fb);\n border-radius: 0 0 0 0;\n}\n.tabs.activeTab-0 .tab-header-over1 .tab-header {\n background-color: #80c4fd;\n border-radius: 0 40px 0 40px;\n}\n.tabs.activeTab-0 .tab-header-over2 {\n flex: 1;\n background-color: #80c4fd;\n border-radius: 0 40px 0 0;\n}\n.tabs.activeTab-0 .tab-header-over2 .tab-header {\n background-color: #35a2fb;\n border-radius: 0 40px 0 40px;\n}\n.tabs.activeTab-1 .tab-header-over0 {\n flex: 1;\n background-color: #cbe7fe;\n border-radius: 40px 0 0 0;\n}\n.tabs.activeTab-1 .tab-header-over0 .tab-header {\n background-color: #80c4fd;\n border-radius: 40px 0 40px 0;\n}\n.tabs.activeTab-1 .tab-header-over1 {\n flex: 1;\n background: linear-gradient(0.25turn, #80c4fd, #35a2fb);\n border-radius: 0 0 0 0;\n}\n.tabs.activeTab-1 .tab-header-over1 .tab-header {\n background-color: #cbe7fe;\n border-radius: 40px 40px 0 0;\n}\n.tabs.activeTab-1 .tab-header-over2 {\n flex: 1;\n background-color: #cbe7fe;\n border-radius: 0 40px 0 0;\n}\n.tabs.activeTab-1 .tab-header-over2 .tab-header {\n background-color: #35a2fb;\n border-radius: 0 40px 0 40px;\n}\n.tabs.activeTab-2 .tab-header-over0 {\n flex: 1;\n background-color: #35a2fb;\n border-radius: 40px 0 0 0;\n}\n.tabs.activeTab-2 .tab-header-over0 .tab-header {\n background-color: #80c4fd;\n border-radius: 40px 0 40px 0;\n}\n.tabs.activeTab-2 .tab-header-over1 {\n flex: 1;\n background: linear-gradient(0.25turn, #80c4fd, #cbe7fe);\n border-radius: 0 0 0 0;\n}\n.tabs.activeTab-2 .tab-header-over1 .tab-header {\n background-color: #35a2fb;\n border-radius: 40px 0 40px 0;\n}\n.tabs.activeTab-2 .tab-header-over2 {\n flex: 1;\n background-color: #35a2fb;\n border-radius: 0 40px 0 0;\n}\n.tabs.activeTab-2 .tab-header-over2 .tab-header {\n background-color: #cbe7fe;\n border-radius: 40px 40px 0 0;\n}\n.tabs .tab-content {\n background-color: #cbe7fe;\n padding: 10px;\n border-top: 0;\n min-height: 70vh;\n border-radius: 0 0 40px 40px;\n padding-bottom: 20px;\n}\n\n.loader-overlay {\n z-index: 999;\n position: absolute;\n height: 100vh;\n width: 100vw;\n top: 0;\n left: 0;\n background-color: rgba(102, 100, 100, 0.603);\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n}\n.loader-overlay .loader {\n border: 7px solid #f3f3f3; /* Light grey */\n border-top: 7px solid #2ea2cc; /* Blue */\n border-radius: 50%;\n width: 70px;\n height: 70px;\n animation: spin 2s linear infinite;\n}\n.loader-overlay .loader-text {\n margin-top: 20px;\n font-size: 25px;\n color: #2ea2cc;\n}\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.card-panel {\n transition: box-shadow 0.25s;\n padding: 24px;\n margin: 0.3333333333rem 0 0.6666666667rem 0;\n border-radius: 2px;\n background-color: #fff;\n}\n\n.card {\n position: relative;\n margin: 0.3333333333rem 0 0.6666666667rem 0;\n background-color: #fff;\n transition: box-shadow 0.25s;\n border-radius: 2px;\n}\n.card .card-title {\n font-size: 24px;\n font-weight: 300;\n}\n.card .card-title.activator {\n cursor: pointer;\n}\n.card.small, .card.medium, .card.large {\n position: relative;\n}\n.card.small .card-image, .card.medium .card-image, .card.large .card-image {\n max-height: 60%;\n overflow: hidden;\n}\n.card.small .card-image + .card-content, .card.medium .card-image + .card-content, .card.large .card-image + .card-content {\n max-height: 40%;\n}\n.card.small .card-content, .card.medium .card-content, .card.large .card-content {\n max-height: 100%;\n overflow: hidden;\n}\n.card.small .card-action, .card.medium .card-action, .card.large .card-action {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n}\n.card.small {\n height: 300px;\n}\n.card.medium {\n height: 400px;\n}\n.card.large {\n height: 500px;\n}\n.card.horizontal {\n display: flex;\n}\n.card.horizontal.small .card-image, .card.horizontal.medium .card-image, .card.horizontal.large .card-image {\n height: 100%;\n max-height: none;\n overflow: visible;\n}\n.card.horizontal.small .card-image img, .card.horizontal.medium .card-image img, .card.horizontal.large .card-image img {\n height: 100%;\n}\n.card.horizontal .card-image {\n max-width: 50%;\n}\n.card.horizontal .card-image img {\n border-radius: 2px 0 0 2px;\n max-width: 100%;\n width: auto;\n}\n.card.horizontal .card-stacked {\n display: flex;\n flex-direction: column;\n flex: 1;\n position: relative;\n}\n.card.horizontal .card-stacked .card-content {\n flex-grow: 1;\n}\n.card.sticky-action .card-action {\n z-index: 2;\n}\n.card.sticky-action .card-reveal {\n z-index: 1;\n padding-bottom: 64px;\n}\n.card .card-image {\n position: relative;\n}\n.card .card-image img {\n display: block;\n border-radius: 2px 2px 0 0;\n position: relative;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n width: 100%;\n}\n.card .card-image .card-title {\n color: #fff;\n position: absolute;\n bottom: 0;\n left: 0;\n max-width: 100%;\n padding: 24px;\n}\n.card .card-content {\n padding: 24px;\n border-radius: 0 0 2px 2px;\n}\n.card .card-content p {\n margin: 0;\n}\n.card .card-content .card-title {\n display: block;\n line-height: 32px;\n margin-bottom: 8px;\n}\n.card .card-content .card-title i {\n line-height: 32px;\n}\n.card .card-action {\n background-color: inherit;\n border-top: 1px solid rgba(160, 160, 160, 0.2);\n position: relative;\n padding: 16px 24px;\n}\n.card .card-action:last-child {\n border-radius: 0 0 2px 2px;\n}\n.card .card-action a:not(.btn):not(.btn-large):not(.btn-small):not(.btn-large):not(.btn-floating) {\n color: #ffab40;\n margin-right: 24px;\n transition: color 0.3s ease;\n text-transform: uppercase;\n}\n.card .card-action a:not(.btn):not(.btn-large):not(.btn-small):not(.btn-large):not(.btn-floating):hover {\n color: #ffd8a6;\n}\n.card .card-reveal {\n padding: 24px;\n position: absolute;\n background-color: #fff;\n width: 100%;\n overflow-y: auto;\n left: 0;\n top: 100%;\n height: 100%;\n z-index: 3;\n display: none;\n}\n.card .card-reveal .card-title {\n cursor: pointer;\n display: block;\n}\n\n/*\n @license\n Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n Code distributed by Google as part of the polymer project is also\n subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n/**************************/\n/* STYLES FOR THE SPINNER */\n/**************************/\n/*\n * Constants:\n * STROKEWIDTH = 3px\n * ARCSIZE = 270 degrees (amount of circle the arc takes up)\n * ARCTIME = 1333ms (time it takes to expand and contract arc)\n * ARCSTARTROT = 216 degrees (how much the start location of the arc\n * should rotate each time, 216 gives us a\n * 5 pointed star shape (it's 360/5 * 3).\n * For a 7 pointed star, we might do\n * 360/7 * 3 = 154.286)\n * CONTAINERWIDTH = 28px\n * SHRINK_TIME = 400ms\n */\n.preloader-wrapper {\n display: inline-block;\n position: relative;\n width: 50px;\n height: 50px;\n}\n.preloader-wrapper.small {\n width: 36px;\n height: 36px;\n}\n.preloader-wrapper.big {\n width: 64px;\n height: 64px;\n}\n.preloader-wrapper.active {\n /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */\n -webkit-animation: container-rotate 1568ms linear infinite;\n animation: container-rotate 1568ms linear infinite;\n}\n\n@-webkit-keyframes container-rotate {\n to {\n -webkit-transform: rotate(360deg);\n }\n}\n@keyframes container-rotate {\n to {\n transform: rotate(360deg);\n }\n}\n.spinner-layer {\n position: absolute;\n width: 100%;\n height: 100%;\n opacity: 0;\n border-color: #26a69a;\n}\n\n.spinner-blue,\n.spinner-blue-only {\n border-color: #4285f4;\n}\n\n.spinner-red,\n.spinner-red-only {\n border-color: #db4437;\n}\n\n.spinner-yellow,\n.spinner-yellow-only {\n border-color: #f4b400;\n}\n\n.spinner-green,\n.spinner-green-only {\n border-color: #0f9d58;\n}\n\n/**\n * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):\n *\n * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't\n * guarantee that the animation will start _exactly_ after that value. So we avoid using\n * animation-delay and instead set custom keyframes for each color (as redundant as it\n * seems).\n *\n * We write out each animation in full (instead of separating animation-name,\n * animation-duration, etc.) because under the polyfill, Safari does not recognize those\n * specific properties properly, treats them as -webkit-animation, and overrides the\n * other animation rules. See https://github.com/Polymer/platform/issues/53.\n */\n.active .spinner-layer.spinner-blue {\n /* durations: 4 * ARCTIME */\n -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;\n 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;\n}\n\n.active .spinner-layer.spinner-red {\n /* durations: 4 * ARCTIME */\n -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;\n 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;\n}\n\n.active .spinner-layer.spinner-yellow {\n /* durations: 4 * ARCTIME */\n -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;\n 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;\n}\n\n.active .spinner-layer.spinner-green {\n /* durations: 4 * ARCTIME */\n -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;\n 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;\n}\n\n.active .spinner-layer,\n.active .spinner-layer.spinner-blue-only,\n.active .spinner-layer.spinner-red-only,\n.active .spinner-layer.spinner-yellow-only,\n.active .spinner-layer.spinner-green-only {\n /* durations: 4 * ARCTIME */\n opacity: 1;\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n@-webkit-keyframes fill-unfill-rotate {\n 12.5% {\n -webkit-transform: rotate(135deg);\n } /* 0.5 * ARCSIZE */\n 25% {\n -webkit-transform: rotate(270deg);\n } /* 1 * ARCSIZE */\n 37.5% {\n -webkit-transform: rotate(405deg);\n } /* 1.5 * ARCSIZE */\n 50% {\n -webkit-transform: rotate(540deg);\n } /* 2 * ARCSIZE */\n 62.5% {\n -webkit-transform: rotate(675deg);\n } /* 2.5 * ARCSIZE */\n 75% {\n -webkit-transform: rotate(810deg);\n } /* 3 * ARCSIZE */\n 87.5% {\n -webkit-transform: rotate(945deg);\n } /* 3.5 * ARCSIZE */\n to {\n -webkit-transform: rotate(1080deg);\n } /* 4 * ARCSIZE */\n}\n@keyframes fill-unfill-rotate {\n 12.5% {\n transform: rotate(135deg);\n } /* 0.5 * ARCSIZE */\n 25% {\n transform: rotate(270deg);\n } /* 1 * ARCSIZE */\n 37.5% {\n transform: rotate(405deg);\n } /* 1.5 * ARCSIZE */\n 50% {\n transform: rotate(540deg);\n } /* 2 * ARCSIZE */\n 62.5% {\n transform: rotate(675deg);\n } /* 2.5 * ARCSIZE */\n 75% {\n transform: rotate(810deg);\n } /* 3 * ARCSIZE */\n 87.5% {\n transform: rotate(945deg);\n } /* 3.5 * ARCSIZE */\n to {\n transform: rotate(1080deg);\n } /* 4 * ARCSIZE */\n}\n@-webkit-keyframes blue-fade-in-out {\n from {\n opacity: 1;\n }\n 25% {\n opacity: 1;\n }\n 26% {\n opacity: 0;\n }\n 89% {\n opacity: 0;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes blue-fade-in-out {\n from {\n opacity: 1;\n }\n 25% {\n opacity: 1;\n }\n 26% {\n opacity: 0;\n }\n 89% {\n opacity: 0;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 1;\n }\n}\n@-webkit-keyframes red-fade-in-out {\n from {\n opacity: 0;\n }\n 15% {\n opacity: 0;\n }\n 25% {\n opacity: 1;\n }\n 50% {\n opacity: 1;\n }\n 51% {\n opacity: 0;\n }\n}\n@keyframes red-fade-in-out {\n from {\n opacity: 0;\n }\n 15% {\n opacity: 0;\n }\n 25% {\n opacity: 1;\n }\n 50% {\n opacity: 1;\n }\n 51% {\n opacity: 0;\n }\n}\n@-webkit-keyframes yellow-fade-in-out {\n from {\n opacity: 0;\n }\n 40% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 75% {\n opacity: 1;\n }\n 76% {\n opacity: 0;\n }\n}\n@keyframes yellow-fade-in-out {\n from {\n opacity: 0;\n }\n 40% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 75% {\n opacity: 1;\n }\n 76% {\n opacity: 0;\n }\n}\n@-webkit-keyframes green-fade-in-out {\n from {\n opacity: 0;\n }\n 65% {\n opacity: 0;\n }\n 75% {\n opacity: 1;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n@keyframes green-fade-in-out {\n from {\n opacity: 0;\n }\n 65% {\n opacity: 0;\n }\n 75% {\n opacity: 1;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n/**\n * Patch the gap that appear between the two adjacent div.circle-clipper while the\n * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11).\n */\n.gap-patch {\n position: absolute;\n top: 0;\n left: 45%;\n width: 10%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n}\n\n.gap-patch .circle {\n width: 1000%;\n left: -450%;\n}\n\n.circle-clipper {\n display: inline-block;\n position: relative;\n width: 50%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n}\n.circle-clipper .circle {\n width: 200%;\n height: 100%;\n border-width: 3px; /* STROKEWIDTH */\n border-style: solid;\n border-color: inherit;\n border-bottom-color: transparent !important;\n border-radius: 50%;\n -webkit-animation: none;\n animation: none;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n}\n.circle-clipper.left .circle {\n left: 0;\n border-right-color: transparent !important;\n -webkit-transform: rotate(129deg);\n transform: rotate(129deg);\n}\n.circle-clipper.right .circle {\n left: -100%;\n border-left-color: transparent !important;\n -webkit-transform: rotate(-129deg);\n transform: rotate(-129deg);\n}\n\n.active .circle-clipper.left .circle {\n /* duration: ARCTIME */\n -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .circle-clipper.right .circle {\n /* duration: ARCTIME */\n -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n@-webkit-keyframes left-spin {\n from {\n -webkit-transform: rotate(130deg);\n }\n 50% {\n -webkit-transform: rotate(-5deg);\n }\n to {\n -webkit-transform: rotate(130deg);\n }\n}\n@keyframes left-spin {\n from {\n transform: rotate(130deg);\n }\n 50% {\n transform: rotate(-5deg);\n }\n to {\n transform: rotate(130deg);\n }\n}\n@-webkit-keyframes right-spin {\n from {\n -webkit-transform: rotate(-130deg);\n }\n 50% {\n -webkit-transform: rotate(5deg);\n }\n to {\n -webkit-transform: rotate(-130deg);\n }\n}\n@keyframes right-spin {\n from {\n transform: rotate(-130deg);\n }\n 50% {\n transform: rotate(5deg);\n }\n to {\n transform: rotate(-130deg);\n }\n}\n#spinnerContainer.cooldown {\n /* duration: SHRINK_TIME */\n -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);\n animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n@-webkit-keyframes fade-out {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n@keyframes fade-out {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n.progress {\n position: relative;\n height: 4px;\n display: block;\n width: 100%;\n background-color: #acece6;\n border-radius: 2px;\n margin: 0.3333333333rem 0 0.6666666667rem 0;\n overflow: hidden;\n}\n.progress .determinate {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n background-color: #26a69a;\n transition: width 0.3s linear;\n}\n.progress .indeterminate {\n background-color: #26a69a;\n}\n.progress .indeterminate:before {\n content: \"\";\n position: absolute;\n background-color: inherit;\n top: 0;\n left: 0;\n bottom: 0;\n will-change: left, right;\n animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\n}\n.progress .indeterminate:after {\n content: \"\";\n position: absolute;\n background-color: inherit;\n top: 0;\n left: 0;\n bottom: 0;\n will-change: left, right;\n animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;\n animation-delay: 1.15s;\n}\n\n@keyframes indeterminate {\n 0% {\n left: -35%;\n right: 100%;\n }\n 60% {\n left: 100%;\n right: -90%;\n }\n 100% {\n left: 100%;\n right: -90%;\n }\n}\n@keyframes indeterminate-short {\n 0% {\n left: -200%;\n right: 100%;\n }\n 60% {\n left: 107%;\n right: -8%;\n }\n 100% {\n left: 107%;\n right: -8%;\n }\n}\n.flash-message {\n position: absolute;\n padding: 2px 10px;\n border-radius: 5px;\n z-index: 99999;\n right: 0;\n bottom: 0;\n font-size: 14px;\n}\n.flash-message.info {\n background-color: #beddbe;\n border: 1px solid #728f72;\n}\n.flash-message.warn {\n background-color: #f5e6d0;\n border: 1px solid #ea7d17;\n}\n.flash-message.error {\n background-color: #e5b2bc;\n border: 1px solid #e33257;\n}\n\n@keyframes messageIn {\n from {\n right: 80%;\n }\n to {\n right: 0;\n }\n}\n.pulse {\n overflow: visible;\n position: relative;\n}\n.pulse::before {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background-color: inherit;\n border-radius: inherit;\n transition: opacity 0.3s, transform 0.3s;\n animation: pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;\n}\n\n@keyframes pulse-animation {\n 0% {\n opacity: 1;\n transform: scale(1);\n }\n 50% {\n opacity: 0;\n transform: scale(1.5);\n }\n 100% {\n opacity: 0;\n transform: scale(1.5);\n }\n}\n.dropdown-content {\n background-color: #fff;\n margin: 0;\n display: flow;\n min-width: 100px;\n overflow-y: auto;\n position: absolute;\n left: 0;\n top: 0;\n z-index: 9999;\n transform-origin: 0 0;\n}\n.dropdown-content:focus {\n outline: 0;\n}\n.dropdown-content li {\n clear: both;\n color: rgba(0, 0, 0, 0.87);\n cursor: pointer;\n min-height: 50px;\n line-height: 1.5rem;\n width: 100%;\n text-align: left;\n}\n.dropdown-content li:hover, .dropdown-content li.active {\n background-color: #eee;\n}\n.dropdown-content li:focus {\n outline: none;\n}\n.dropdown-content li.divider {\n min-height: 0;\n height: 1px;\n}\n.dropdown-content li > a, .dropdown-content li > span {\n font-size: 16px;\n color: #26a69a;\n display: block;\n line-height: 22px;\n padding: 14px 16px;\n}\n.dropdown-content li > span > label {\n top: 1px;\n left: 0;\n height: 18px;\n}\n.dropdown-content li > a > i {\n height: inherit;\n line-height: inherit;\n float: left;\n margin: 0 24px 0 0;\n width: 24px;\n}\n\nbody.keyboard-focused .dropdown-content li:focus {\n background-color: #dadada;\n}\n\n.input-field.col .dropdown-content [type=checkbox] + label {\n top: 1px;\n left: 0;\n height: 18px;\n transform: none;\n}\n\n.dropdown-trigger {\n cursor: pointer;\n}\n\nnav {\n color: #fff;\n background-color: #90caf9;\n width: 100%;\n height: 56px;\n line-height: 56px;\n}\nnav.nav-extended {\n height: auto;\n}\nnav.nav-extended .nav-wrapper {\n display: flex;\n align-items: center;\n min-height: 56px;\n height: auto;\n}\nnav.nav-extended .nav-content {\n position: relative;\n line-height: normal;\n}\nnav a {\n color: #fff;\n}\nnav i,\nnav [class^=mdi-], nav [class*=mdi-],\nnav i.s-icons {\n display: block;\n font-size: 24px;\n height: 56px;\n line-height: 56px;\n}\nnav .nav-wrapper {\n position: relative;\n height: 100%;\n}\n@media only screen and (min-width : 993px) {\n nav a.sidenav-trigger {\n display: none;\n }\n}\nnav .sidenav-trigger {\n float: left;\n position: relative;\n z-index: 1;\n height: 56px;\n margin: 0 18px;\n}\nnav .sidenav-trigger i {\n height: 56px;\n line-height: 56px;\n}\nnav .brand-logo {\n position: absolute;\n color: #fff;\n display: inline-block;\n font-size: 2.1rem;\n padding: 0;\n}\nnav .brand-logo img.circle {\n height: 32px;\n width: 32px;\n}\nnav .brand-logo.center {\n left: 50%;\n transform: translateX(-50%);\n}\n@media only screen and (max-width : 992px) {\n nav .brand-logo {\n left: 50%;\n transform: translateX(-50%);\n }\n nav .brand-logo.left, nav .brand-logo.right {\n padding: 0;\n transform: none;\n }\n nav .brand-logo.left {\n left: 0.5rem;\n }\n nav .brand-logo.right {\n right: 0.5rem;\n left: auto;\n }\n}\nnav .brand-logo.right {\n right: 0.5rem;\n padding: 0;\n}\nnav .brand-logo i,\nnav .brand-logo [class^=mdi-], nav .brand-logo [class*=mdi-],\nnav .brand-logo i.s-icons {\n float: left;\n margin-right: 15px;\n}\nnav .nav-title {\n display: inline-block;\n font-size: 32px;\n padding: 28px 0;\n}\nnav ul {\n margin: 0;\n}\nnav ul li {\n transition: background-color 0.3s;\n float: left;\n padding: 0;\n}\nnav ul li.active {\n background-color: rgba(0, 0, 0, 0.1);\n}\nnav ul a {\n transition: background-color 0.3s;\n font-size: 1rem;\n color: #fff;\n display: block;\n padding: 0 15px;\n cursor: pointer;\n}\nnav ul a.btn, nav ul a.btn-small, nav ul a.btn-large, nav ul a.btn-flat, nav ul a.btn-floating {\n margin-top: -2px;\n margin-left: 15px;\n margin-right: 15px;\n}\nnav ul a.btn > .material-icons, nav ul a.btn-small > .material-icons, nav ul a.btn-large > .material-icons, nav ul a.btn-flat > .material-icons, nav ul a.btn-floating > .material-icons {\n height: inherit;\n line-height: inherit;\n}\nnav ul a:hover {\n background-color: rgba(0, 0, 0, 0.1);\n}\nnav ul.left {\n float: left;\n}\nnav form {\n height: 100%;\n}\nnav .input-field {\n margin: 0;\n height: 100%;\n}\nnav .input-field input {\n height: 100%;\n font-size: 1.2rem;\n border: none;\n padding-left: 2rem;\n}\nnav .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 {\n border: none;\n box-shadow: none;\n}\nnav .input-field label {\n top: 0;\n left: 0;\n}\nnav .input-field label i {\n color: rgba(255, 255, 255, 0.7);\n transition: color 0.3s;\n}\nnav .input-field label.active i {\n color: #fff;\n}\n\n.navbar-fixed {\n position: relative;\n height: 56px;\n z-index: 997;\n}\n.navbar-fixed nav {\n position: fixed;\n}\n\n@media only screen and (min-width : 601px) {\n nav.nav-extended .nav-wrapper {\n min-height: 64px;\n }\n nav, nav .nav-wrapper i, nav a.sidenav-trigger, nav a.sidenav-trigger i {\n height: 64px;\n line-height: 64px;\n }\n .navbar-fixed {\n height: 64px;\n }\n}", "",{"version":3,"sources":["webpack://./src/sass/d3v4pp.scss","webpack://./src/sass/icons/SweetcomIcons.scss","webpack://./src/sass/_colors.scss","webpack://./src/sass/_code-dark.scss","webpack://./src/sass/_terminal.scss","webpack://./src/sass/_tooltip.scss","webpack://./src/sass/_shadows.scss","webpack://./src/sass/_waves.scss","webpack://./src/sass/_modal.scss","webpack://./src/sass/_global.scss","webpack://./src/sass/_variables.scss","webpack://./src/sass/_badges.scss","webpack://./src/sass/_chips.scss","webpack://./src/sass/_collapsible.scss","webpack://./src/sass/_collection.scss","webpack://./src/sass/forms/_forms.scss","webpack://./src/sass/forms/_input-fields.scss","webpack://./src/sass/forms/_radio-buttons.scss","webpack://./src/sass/forms/_checkboxes.scss","webpack://./src/sass/forms/_switches.scss","webpack://./src/sass/forms/_select.scss","webpack://./src/sass/forms/_file-input.scss","webpack://./src/sass/forms/_range.scss","webpack://./src/sass/_paralax.scss","webpack://./src/sass/_cube.scss","webpack://./src/sass/_grid.scss","webpack://./src/sass/_sidenav.scss","webpack://./src/sass/_buttons.scss","webpack://./src/sass/_tabs.scss","webpack://./src/sass/_loader.scss","webpack://./src/sass/_cards.scss","webpack://./src/sass/_preloader.scss","webpack://./src/sass/_progress.scss","webpack://./src/sass/_flash-message.scss","webpack://./src/sass/_pulse.scss","webpack://./src/sass/_dropdown.scss","webpack://./src/sass/_navbar.scss"],"names":[],"mappings":"AAAA,gBAAgB;ACAhB;EACE,uBAAA;EACA,kBAAA;EACA,gBAAA;EACA,4CAAA;EACA,gLAAA;ADGF;ACKA;;;;EAIE,mCAAA;EACA,mBAAA;EACA,kBAAA;EACA,eAAA;EACA,cAAA;EACA,sBAAA;EACA,oBAAA;EACA,qBAAA;EACA,mBAAA;EACA,iBAAA;EACA,cAAA;EACA,mCAAA;EACA,kCAAA;EACA,kCAAA;EACA,qCAAA;EACA,oCAAA;EACA,kCAAA;EACA,6BAAA;EACA,kBAAA;ADHF;;AE3BM;EACE,oCAAA;AF8BR;;AE5BM;EACE,yBAAA;AF+BR;;AE7BM;EACE,oCAAA;AFgCR;;AE7BM;EACE,oCAAA;AFgCR;;AE9BM;EACE,yBAAA;AFiCR;;AE/BM;EACE,oCAAA;AFkCR;;AEzCM;EACE,oCAAA;AF4CR;;AE1CM;EACE,yBAAA;AF6CR;;AE3CM;EACE,oCAAA;AF8CR;;AErDM;EACE,oCAAA;AFwDR;;AEtDM;EACE,yBAAA;AFyDR;;AEvDM;EACE,oCAAA;AF0DR;;AEjEM;EACE,oCAAA;AFoER;;AElEM;EACE,yBAAA;AFqER;;AEnEM;EACE,oCAAA;AFsER;;AE7EM;EACE,oCAAA;AFgFR;;AE9EM;EACE,yBAAA;AFiFR;;AE/EM;EACE,oCAAA;AFkFR;;AEzFM;EACE,oCAAA;AF4FR;;AE1FM;EACE,yBAAA;AF6FR;;AE3FM;EACE,oCAAA;AF8FR;;AErGM;EACE,oCAAA;AFwGR;;AEtGM;EACE,yBAAA;AFyGR;;AEvGM;EACE,oCAAA;AF0GR;;AEjHM;EACE,oCAAA;AFoHR;;AElHM;EACE,yBAAA;AFqHR;;AEnHM;EACE,oCAAA;AFsHR;;AE7HM;EACE,oCAAA;AFgIR;;AE9HM;EACE,yBAAA;AFiIR;;AE/HM;EACE,oCAAA;AFkIR;;AEzIM;EACE,oCAAA;AF4IR;;AE1IM;EACE,yBAAA;AF6IR;;AE3IM;EACE,oCAAA;AF8IR;;AErJM;EACE,oCAAA;AFwJR;;AEtJM;EACE,yBAAA;AFyJR;;AEvJM;EACE,oCAAA;AF0JR;;AEjKM;EACE,oCAAA;AFoKR;;AElKM;EACE,yBAAA;AFqKR;;AEnKM;EACE,oCAAA;AFsKR;;AE7KM;EACE,oCAAA;AFgLR;;AE9KM;EACE,yBAAA;AFiLR;;AE/KM;EACE,oCAAA;AFkLR;;AEnMM;EACE,oCAAA;AFsMR;;AEpMM;EACE,yBAAA;AFuMR;;AErMM;EACE,oCAAA;AFwMR;;AErMM;EACE,oCAAA;AFwMR;;AEtMM;EACE,yBAAA;AFyMR;;AEvMM;EACE,oCAAA;AF0MR;;AEjNM;EACE,oCAAA;AFoNR;;AElNM;EACE,yBAAA;AFqNR;;AEnNM;EACE,oCAAA;AFsNR;;AE7NM;EACE,oCAAA;AFgOR;;AE9NM;EACE,yBAAA;AFiOR;;AE/NM;EACE,oCAAA;AFkOR;;AEzOM;EACE,oCAAA;AF4OR;;AE1OM;EACE,yBAAA;AF6OR;;AE3OM;EACE,oCAAA;AF8OR;;AErPM;EACE,oCAAA;AFwPR;;AEtPM;EACE,yBAAA;AFyPR;;AEvPM;EACE,oCAAA;AF0PR;;AEjQM;EACE,oCAAA;AFoQR;;AElQM;EACE,yBAAA;AFqQR;;AEnQM;EACE,oCAAA;AFsQR;;AE7QM;EACE,oCAAA;AFgRR;;AE9QM;EACE,yBAAA;AFiRR;;AE/QM;EACE,oCAAA;AFkRR;;AEzRM;EACE,oCAAA;AF4RR;;AE1RM;EACE,yBAAA;AF6RR;;AE3RM;EACE,oCAAA;AF8RR;;AErSM;EACE,oCAAA;AFwSR;;AEtSM;EACE,yBAAA;AFySR;;AEvSM;EACE,oCAAA;AF0SR;;AEjTM;EACE,oCAAA;AFoTR;;AElTM;EACE,yBAAA;AFqTR;;AEnTM;EACE,oCAAA;AFsTR;;AE7TM;EACE,oCAAA;AFgUR;;AE9TM;EACE,yBAAA;AFiUR;;AE/TM;EACE,oCAAA;AFkUR;;AEzUM;EACE,oCAAA;AF4UR;;AE1UM;EACE,yBAAA;AF6UR;;AE3UM;EACE,oCAAA;AF8UR;;AErVM;EACE,oCAAA;AFwVR;;AEtVM;EACE,yBAAA;AFyVR;;AEvVM;EACE,oCAAA;AF0VR;;AE3WM;EACE,oCAAA;AF8WR;;AE5WM;EACE,yBAAA;AF+WR;;AE7WM;EACE,oCAAA;AFgXR;;AE7WM;EACE,oCAAA;AFgXR;;AE9WM;EACE,yBAAA;AFiXR;;AE/WM;EACE,oCAAA;AFkXR;;AEzXM;EACE,oCAAA;AF4XR;;AE1XM;EACE,yBAAA;AF6XR;;AE3XM;EACE,oCAAA;AF8XR;;AErYM;EACE,oCAAA;AFwYR;;AEtYM;EACE,yBAAA;AFyYR;;AEvYM;EACE,oCAAA;AF0YR;;AEjZM;EACE,oCAAA;AFoZR;;AElZM;EACE,yBAAA;AFqZR;;AEnZM;EACE,oCAAA;AFsZR;;AE7ZM;EACE,oCAAA;AFgaR;;AE9ZM;EACE,yBAAA;AFiaR;;AE/ZM;EACE,oCAAA;AFkaR;;AEzaM;EACE,oCAAA;AF4aR;;AE1aM;EACE,yBAAA;AF6aR;;AE3aM;EACE,oCAAA;AF8aR;;AErbM;EACE,oCAAA;AFwbR;;AEtbM;EACE,yBAAA;AFybR;;AEvbM;EACE,oCAAA;AF0bR;;AEjcM;EACE,oCAAA;AFocR;;AElcM;EACE,yBAAA;AFqcR;;AEncM;EACE,oCAAA;AFscR;;AE7cM;EACE,oCAAA;AFgdR;;AE9cM;EACE,yBAAA;AFidR;;AE/cM;EACE,oCAAA;AFkdR;;AEzdM;EACE,oCAAA;AF4dR;;AE1dM;EACE,yBAAA;AF6dR;;AE3dM;EACE,oCAAA;AF8dR;;AEreM;EACE,oCAAA;AFweR;;AEteM;EACE,yBAAA;AFyeR;;AEveM;EACE,oCAAA;AF0eR;;AEjfM;EACE,oCAAA;AFofR;;AElfM;EACE,yBAAA;AFqfR;;AEnfM;EACE,oCAAA;AFsfR;;AE7fM;EACE,oCAAA;AFggBR;;AE9fM;EACE,yBAAA;AFigBR;;AE/fM;EACE,oCAAA;AFkgBR;;AEnhBM;EACE,oCAAA;AFshBR;;AEphBM;EACE,yBAAA;AFuhBR;;AErhBM;EACE,oCAAA;AFwhBR;;AErhBM;EACE,oCAAA;AFwhBR;;AEthBM;EACE,yBAAA;AFyhBR;;AEvhBM;EACE,oCAAA;AF0hBR;;AEjiBM;EACE,oCAAA;AFoiBR;;AEliBM;EACE,yBAAA;AFqiBR;;AEniBM;EACE,oCAAA;AFsiBR;;AE7iBM;EACE,oCAAA;AFgjBR;;AE9iBM;EACE,yBAAA;AFijBR;;AE/iBM;EACE,oCAAA;AFkjBR;;AEzjBM;EACE,oCAAA;AF4jBR;;AE1jBM;EACE,yBAAA;AF6jBR;;AE3jBM;EACE,oCAAA;AF8jBR;;AErkBM;EACE,oCAAA;AFwkBR;;AEtkBM;EACE,yBAAA;AFykBR;;AEvkBM;EACE,oCAAA;AF0kBR;;AEjlBM;EACE,oCAAA;AFolBR;;AEllBM;EACE,yBAAA;AFqlBR;;AEnlBM;EACE,oCAAA;AFslBR;;AE7lBM;EACE,oCAAA;AFgmBR;;AE9lBM;EACE,yBAAA;AFimBR;;AE/lBM;EACE,oCAAA;AFkmBR;;AEzmBM;EACE,oCAAA;AF4mBR;;AE1mBM;EACE,yBAAA;AF6mBR;;AE3mBM;EACE,oCAAA;AF8mBR;;AErnBM;EACE,oCAAA;AFwnBR;;AEtnBM;EACE,yBAAA;AFynBR;;AEvnBM;EACE,oCAAA;AF0nBR;;AEjoBM;EACE,oCAAA;AFooBR;;AEloBM;EACE,yBAAA;AFqoBR;;AEnoBM;EACE,oCAAA;AFsoBR;;AE7oBM;EACE,oCAAA;AFgpBR;;AE9oBM;EACE,yBAAA;AFipBR;;AE/oBM;EACE,oCAAA;AFkpBR;;AEzpBM;EACE,oCAAA;AF4pBR;;AE1pBM;EACE,yBAAA;AF6pBR;;AE3pBM;EACE,oCAAA;AF8pBR;;AErqBM;EACE,oCAAA;AFwqBR;;AEtqBM;EACE,yBAAA;AFyqBR;;AEvqBM;EACE,oCAAA;AF0qBR;;AE3rBM;EACE,oCAAA;AF8rBR;;AE5rBM;EACE,yBAAA;AF+rBR;;AE7rBM;EACE,oCAAA;AFgsBR;;AE7rBM;EACE,oCAAA;AFgsBR;;AE9rBM;EACE,yBAAA;AFisBR;;AE/rBM;EACE,oCAAA;AFksBR;;AEzsBM;EACE,oCAAA;AF4sBR;;AE1sBM;EACE,yBAAA;AF6sBR;;AE3sBM;EACE,oCAAA;AF8sBR;;AErtBM;EACE,oCAAA;AFwtBR;;AEttBM;EACE,yBAAA;AFytBR;;AEvtBM;EACE,oCAAA;AF0tBR;;AEjuBM;EACE,oCAAA;AFouBR;;AEluBM;EACE,yBAAA;AFquBR;;AEnuBM;EACE,oCAAA;AFsuBR;;AE7uBM;EACE,oCAAA;AFgvBR;;AE9uBM;EACE,yBAAA;AFivBR;;AE/uBM;EACE,oCAAA;AFkvBR;;AEzvBM;EACE,oCAAA;AF4vBR;;AE1vBM;EACE,yBAAA;AF6vBR;;AE3vBM;EACE,oCAAA;AF8vBR;;AErwBM;EACE,oCAAA;AFwwBR;;AEtwBM;EACE,yBAAA;AFywBR;;AEvwBM;EACE,oCAAA;AF0wBR;;AEjxBM;EACE,oCAAA;AFoxBR;;AElxBM;EACE,yBAAA;AFqxBR;;AEnxBM;EACE,oCAAA;AFsxBR;;AE7xBM;EACE,oCAAA;AFgyBR;;AE9xBM;EACE,yBAAA;AFiyBR;;AE/xBM;EACE,oCAAA;AFkyBR;;AEzyBM;EACE,oCAAA;AF4yBR;;AE1yBM;EACE,yBAAA;AF6yBR;;AE3yBM;EACE,oCAAA;AF8yBR;;AErzBM;EACE,oCAAA;AFwzBR;;AEtzBM;EACE,yBAAA;AFyzBR;;AEvzBM;EACE,oCAAA;AF0zBR;;AEj0BM;EACE,oCAAA;AFo0BR;;AEl0BM;EACE,yBAAA;AFq0BR;;AEn0BM;EACE,oCAAA;AFs0BR;;AE70BM;EACE,oCAAA;AFg1BR;;AE90BM;EACE,yBAAA;AFi1BR;;AE/0BM;EACE,oCAAA;AFk1BR;;AEn2BM;EACE,oCAAA;AFs2BR;;AEp2BM;EACE,yBAAA;AFu2BR;;AEr2BM;EACE,oCAAA;AFw2BR;;AEr2BM;EACE,oCAAA;AFw2BR;;AEt2BM;EACE,yBAAA;AFy2BR;;AEv2BM;EACE,oCAAA;AF02BR;;AEj3BM;EACE,oCAAA;AFo3BR;;AEl3BM;EACE,yBAAA;AFq3BR;;AEn3BM;EACE,oCAAA;AFs3BR;;AE73BM;EACE,oCAAA;AFg4BR;;AE93BM;EACE,yBAAA;AFi4BR;;AE/3BM;EACE,oCAAA;AFk4BR;;AEz4BM;EACE,oCAAA;AF44BR;;AE14BM;EACE,yBAAA;AF64BR;;AE34BM;EACE,oCAAA;AF84BR;;AEr5BM;EACE,oCAAA;AFw5BR;;AEt5BM;EACE,yBAAA;AFy5BR;;AEv5BM;EACE,oCAAA;AF05BR;;AEj6BM;EACE,oCAAA;AFo6BR;;AEl6BM;EACE,yBAAA;AFq6BR;;AEn6BM;EACE,oCAAA;AFs6BR;;AE76BM;EACE,oCAAA;AFg7BR;;AE96BM;EACE,yBAAA;AFi7BR;;AE/6BM;EACE,oCAAA;AFk7BR;;AEz7BM;EACE,oCAAA;AF47BR;;AE17BM;EACE,yBAAA;AF67BR;;AE37BM;EACE,oCAAA;AF87BR;;AEr8BM;EACE,oCAAA;AFw8BR;;AEt8BM;EACE,yBAAA;AFy8BR;;AEv8BM;EACE,oCAAA;AF08BR;;AEj9BM;EACE,oCAAA;AFo9BR;;AEl9BM;EACE,yBAAA;AFq9BR;;AEn9BM;EACE,oCAAA;AFs9BR;;AE79BM;EACE,oCAAA;AFg+BR;;AE99BM;EACE,yBAAA;AFi+BR;;AE/9BM;EACE,oCAAA;AFk+BR;;AEz+BM;EACE,oCAAA;AF4+BR;;AE1+BM;EACE,yBAAA;AF6+BR;;AE3+BM;EACE,oCAAA;AF8+BR;;AEr/BM;EACE,oCAAA;AFw/BR;;AEt/BM;EACE,yBAAA;AFy/BR;;AEv/BM;EACE,oCAAA;AF0/BR;;AE3gCM;EACE,oCAAA;AF8gCR;;AE5gCM;EACE,yBAAA;AF+gCR;;AE7gCM;EACE,oCAAA;AFghCR;;AE7gCM;EACE,oCAAA;AFghCR;;AE9gCM;EACE,yBAAA;AFihCR;;AE/gCM;EACE,oCAAA;AFkhCR;;AEzhCM;EACE,oCAAA;AF4hCR;;AE1hCM;EACE,yBAAA;AF6hCR;;AE3hCM;EACE,oCAAA;AF8hCR;;AEriCM;EACE,oCAAA;AFwiCR;;AEtiCM;EACE,yBAAA;AFyiCR;;AEviCM;EACE,oCAAA;AF0iCR;;AEjjCM;EACE,oCAAA;AFojCR;;AEljCM;EACE,yBAAA;AFqjCR;;AEnjCM;EACE,oCAAA;AFsjCR;;AE7jCM;EACE,oCAAA;AFgkCR;;AE9jCM;EACE,yBAAA;AFikCR;;AE/jCM;EACE,oCAAA;AFkkCR;;AEzkCM;EACE,oCAAA;AF4kCR;;AE1kCM;EACE,yBAAA;AF6kCR;;AE3kCM;EACE,oCAAA;AF8kCR;;AErlCM;EACE,oCAAA;AFwlCR;;AEtlCM;EACE,yBAAA;AFylCR;;AEvlCM;EACE,oCAAA;AF0lCR;;AEjmCM;EACE,oCAAA;AFomCR;;AElmCM;EACE,yBAAA;AFqmCR;;AEnmCM;EACE,oCAAA;AFsmCR;;AE7mCM;EACE,oCAAA;AFgnCR;;AE9mCM;EACE,yBAAA;AFinCR;;AE/mCM;EACE,oCAAA;AFknCR;;AEznCM;EACE,oCAAA;AF4nCR;;AE1nCM;EACE,yBAAA;AF6nCR;;AE3nCM;EACE,oCAAA;AF8nCR;;AEroCM;EACE,oCAAA;AFwoCR;;AEtoCM;EACE,yBAAA;AFyoCR;;AEvoCM;EACE,oCAAA;AF0oCR;;AEjpCM;EACE,oCAAA;AFopCR;;AElpCM;EACE,yBAAA;AFqpCR;;AEnpCM;EACE,oCAAA;AFspCR;;AE7pCM;EACE,oCAAA;AFgqCR;;AE9pCM;EACE,yBAAA;AFiqCR;;AE/pCM;EACE,oCAAA;AFkqCR;;AEnrCM;EACE,oCAAA;AFsrCR;;AEprCM;EACE,yBAAA;AFurCR;;AErrCM;EACE,oCAAA;AFwrCR;;AErrCM;EACE,oCAAA;AFwrCR;;AEtrCM;EACE,yBAAA;AFyrCR;;AEvrCM;EACE,oCAAA;AF0rCR;;AEjsCM;EACE,oCAAA;AFosCR;;AElsCM;EACE,yBAAA;AFqsCR;;AEnsCM;EACE,oCAAA;AFssCR;;AE7sCM;EACE,oCAAA;AFgtCR;;AE9sCM;EACE,yBAAA;AFitCR;;AE/sCM;EACE,oCAAA;AFktCR;;AEztCM;EACE,oCAAA;AF4tCR;;AE1tCM;EACE,yBAAA;AF6tCR;;AE3tCM;EACE,oCAAA;AF8tCR;;AEruCM;EACE,oCAAA;AFwuCR;;AEtuCM;EACE,yBAAA;AFyuCR;;AEvuCM;EACE,oCAAA;AF0uCR;;AEjvCM;EACE,oCAAA;AFovCR;;AElvCM;EACE,yBAAA;AFqvCR;;AEnvCM;EACE,oCAAA;AFsvCR;;AE7vCM;EACE,oCAAA;AFgwCR;;AE9vCM;EACE,yBAAA;AFiwCR;;AE/vCM;EACE,oCAAA;AFkwCR;;AEzwCM;EACE,oCAAA;AF4wCR;;AE1wCM;EACE,yBAAA;AF6wCR;;AE3wCM;EACE,oCAAA;AF8wCR;;AErxCM;EACE,oCAAA;AFwxCR;;AEtxCM;EACE,yBAAA;AFyxCR;;AEvxCM;EACE,oCAAA;AF0xCR;;AEjyCM;EACE,oCAAA;AFoyCR;;AElyCM;EACE,yBAAA;AFqyCR;;AEnyCM;EACE,oCAAA;AFsyCR;;AE7yCM;EACE,oCAAA;AFgzCR;;AE9yCM;EACE,yBAAA;AFizCR;;AE/yCM;EACE,oCAAA;AFkzCR;;AEzzCM;EACE,oCAAA;AF4zCR;;AE1zCM;EACE,yBAAA;AF6zCR;;AE3zCM;EACE,oCAAA;AF8zCR;;AEr0CM;EACE,oCAAA;AFw0CR;;AEt0CM;EACE,yBAAA;AFy0CR;;AEv0CM;EACE,oCAAA;AF00CR;;AE31CM;EACE,oCAAA;AF81CR;;AE51CM;EACE,yBAAA;AF+1CR;;AE71CM;EACE,oCAAA;AFg2CR;;AE71CM;EACE,oCAAA;AFg2CR;;AE91CM;EACE,yBAAA;AFi2CR;;AE/1CM;EACE,oCAAA;AFk2CR;;AEz2CM;EACE,oCAAA;AF42CR;;AE12CM;EACE,yBAAA;AF62CR;;AE32CM;EACE,oCAAA;AF82CR;;AEr3CM;EACE,oCAAA;AFw3CR;;AEt3CM;EACE,yBAAA;AFy3CR;;AEv3CM;EACE,oCAAA;AF03CR;;AEj4CM;EACE,oCAAA;AFo4CR;;AEl4CM;EACE,yBAAA;AFq4CR;;AEn4CM;EACE,oCAAA;AFs4CR;;AE74CM;EACE,oCAAA;AFg5CR;;AE94CM;EACE,yBAAA;AFi5CR;;AE/4CM;EACE,oCAAA;AFk5CR;;AEz5CM;EACE,oCAAA;AF45CR;;AE15CM;EACE,yBAAA;AF65CR;;AE35CM;EACE,oCAAA;AF85CR;;AEr6CM;EACE,oCAAA;AFw6CR;;AEt6CM;EACE,yBAAA;AFy6CR;;AEv6CM;EACE,oCAAA;AF06CR;;AEj7CM;EACE,oCAAA;AFo7CR;;AEl7CM;EACE,yBAAA;AFq7CR;;AEn7CM;EACE,oCAAA;AFs7CR;;AE77CM;EACE,oCAAA;AFg8CR;;AE97CM;EACE,yBAAA;AFi8CR;;AE/7CM;EACE,oCAAA;AFk8CR;;AEz8CM;EACE,oCAAA;AF48CR;;AE18CM;EACE,yBAAA;AF68CR;;AE38CM;EACE,oCAAA;AF88CR;;AEr9CM;EACE,oCAAA;AFw9CR;;AEt9CM;EACE,yBAAA;AFy9CR;;AEv9CM;EACE,oCAAA;AF09CR;;AEj+CM;EACE,oCAAA;AFo+CR;;AEl+CM;EACE,yBAAA;AFq+CR;;AEn+CM;EACE,oCAAA;AFs+CR;;AE7+CM;EACE,oCAAA;AFg/CR;;AE9+CM;EACE,yBAAA;AFi/CR;;AE/+CM;EACE,oCAAA;AFk/CR;;AEngDM;EACE,oCAAA;AFsgDR;;AEpgDM;EACE,yBAAA;AFugDR;;AErgDM;EACE,oCAAA;AFwgDR;;AErgDM;EACE,oCAAA;AFwgDR;;AEtgDM;EACE,yBAAA;AFygDR;;AEvgDM;EACE,oCAAA;AF0gDR;;AEjhDM;EACE,oCAAA;AFohDR;;AElhDM;EACE,yBAAA;AFqhDR;;AEnhDM;EACE,oCAAA;AFshDR;;AE7hDM;EACE,oCAAA;AFgiDR;;AE9hDM;EACE,yBAAA;AFiiDR;;AE/hDM;EACE,oCAAA;AFkiDR;;AEziDM;EACE,oCAAA;AF4iDR;;AE1iDM;EACE,yBAAA;AF6iDR;;AE3iDM;EACE,oCAAA;AF8iDR;;AErjDM;EACE,oCAAA;AFwjDR;;AEtjDM;EACE,yBAAA;AFyjDR;;AEvjDM;EACE,oCAAA;AF0jDR;;AEjkDM;EACE,oCAAA;AFokDR;;AElkDM;EACE,yBAAA;AFqkDR;;AEnkDM;EACE,oCAAA;AFskDR;;AE7kDM;EACE,oCAAA;AFglDR;;AE9kDM;EACE,yBAAA;AFilDR;;AE/kDM;EACE,oCAAA;AFklDR;;AEzlDM;EACE,oCAAA;AF4lDR;;AE1lDM;EACE,yBAAA;AF6lDR;;AE3lDM;EACE,oCAAA;AF8lDR;;AErmDM;EACE,oCAAA;AFwmDR;;AEtmDM;EACE,yBAAA;AFymDR;;AEvmDM;EACE,oCAAA;AF0mDR;;AEjnDM;EACE,oCAAA;AFonDR;;AElnDM;EACE,yBAAA;AFqnDR;;AEnnDM;EACE,oCAAA;AFsnDR;;AE7nDM;EACE,oCAAA;AFgoDR;;AE9nDM;EACE,yBAAA;AFioDR;;AE/nDM;EACE,oCAAA;AFkoDR;;AEzoDM;EACE,oCAAA;AF4oDR;;AE1oDM;EACE,yBAAA;AF6oDR;;AE3oDM;EACE,oCAAA;AF8oDR;;AErpDM;EACE,oCAAA;AFwpDR;;AEtpDM;EACE,yBAAA;AFypDR;;AEvpDM;EACE,oCAAA;AF0pDR;;AE3qDM;EACE,oCAAA;AF8qDR;;AE5qDM;EACE,yBAAA;AF+qDR;;AE7qDM;EACE,oCAAA;AFgrDR;;AE7qDM;EACE,oCAAA;AFgrDR;;AE9qDM;EACE,yBAAA;AFirDR;;AE/qDM;EACE,oCAAA;AFkrDR;;AEzrDM;EACE,oCAAA;AF4rDR;;AE1rDM;EACE,yBAAA;AF6rDR;;AE3rDM;EACE,oCAAA;AF8rDR;;AErsDM;EACE,oCAAA;AFwsDR;;AEtsDM;EACE,yBAAA;AFysDR;;AEvsDM;EACE,oCAAA;AF0sDR;;AEjtDM;EACE,oCAAA;AFotDR;;AEltDM;EACE,yBAAA;AFqtDR;;AEntDM;EACE,oCAAA;AFstDR;;AE7tDM;EACE,oCAAA;AFguDR;;AE9tDM;EACE,yBAAA;AFiuDR;;AE/tDM;EACE,oCAAA;AFkuDR;;AEzuDM;EACE,oCAAA;AF4uDR;;AE1uDM;EACE,yBAAA;AF6uDR;;AE3uDM;EACE,oCAAA;AF8uDR;;AErvDM;EACE,oCAAA;AFwvDR;;AEtvDM;EACE,yBAAA;AFyvDR;;AEvvDM;EACE,oCAAA;AF0vDR;;AEjwDM;EACE,oCAAA;AFowDR;;AElwDM;EACE,yBAAA;AFqwDR;;AEnwDM;EACE,oCAAA;AFswDR;;AE7wDM;EACE,oCAAA;AFgxDR;;AE9wDM;EACE,yBAAA;AFixDR;;AE/wDM;EACE,oCAAA;AFkxDR;;AEzxDM;EACE,oCAAA;AF4xDR;;AE1xDM;EACE,yBAAA;AF6xDR;;AE3xDM;EACE,oCAAA;AF8xDR;;AEryDM;EACE,oCAAA;AFwyDR;;AEtyDM;EACE,yBAAA;AFyyDR;;AEvyDM;EACE,oCAAA;AF0yDR;;AEjzDM;EACE,oCAAA;AFozDR;;AElzDM;EACE,yBAAA;AFqzDR;;AEnzDM;EACE,oCAAA;AFszDR;;AE7zDM;EACE,oCAAA;AFg0DR;;AE9zDM;EACE,yBAAA;AFi0DR;;AE/zDM;EACE,oCAAA;AFk0DR;;AEn1DM;EACE,oCAAA;AFs1DR;;AEp1DM;EACE,yBAAA;AFu1DR;;AEr1DM;EACE,oCAAA;AFw1DR;;AEr1DM;EACE,oCAAA;AFw1DR;;AEt1DM;EACE,yBAAA;AFy1DR;;AEv1DM;EACE,oCAAA;AF01DR;;AEj2DM;EACE,oCAAA;AFo2DR;;AEl2DM;EACE,yBAAA;AFq2DR;;AEn2DM;EACE,oCAAA;AFs2DR;;AE72DM;EACE,oCAAA;AFg3DR;;AE92DM;EACE,yBAAA;AFi3DR;;AE/2DM;EACE,oCAAA;AFk3DR;;AEz3DM;EACE,oCAAA;AF43DR;;AE13DM;EACE,yBAAA;AF63DR;;AE33DM;EACE,oCAAA;AF83DR;;AEr4DM;EACE,oCAAA;AFw4DR;;AEt4DM;EACE,yBAAA;AFy4DR;;AEv4DM;EACE,oCAAA;AF04DR;;AEj5DM;EACE,oCAAA;AFo5DR;;AEl5DM;EACE,yBAAA;AFq5DR;;AEn5DM;EACE,oCAAA;AFs5DR;;AE75DM;EACE,oCAAA;AFg6DR;;AE95DM;EACE,yBAAA;AFi6DR;;AE/5DM;EACE,oCAAA;AFk6DR;;AEz6DM;EACE,oCAAA;AF46DR;;AE16DM;EACE,yBAAA;AF66DR;;AE36DM;EACE,oCAAA;AF86DR;;AEr7DM;EACE,oCAAA;AFw7DR;;AEt7DM;EACE,yBAAA;AFy7DR;;AEv7DM;EACE,oCAAA;AF07DR;;AEj8DM;EACE,oCAAA;AFo8DR;;AEl8DM;EACE,yBAAA;AFq8DR;;AEn8DM;EACE,oCAAA;AFs8DR;;AE78DM;EACE,oCAAA;AFg9DR;;AE98DM;EACE,yBAAA;AFi9DR;;AE/8DM;EACE,oCAAA;AFk9DR;;AEz9DM;EACE,oCAAA;AF49DR;;AE19DM;EACE,yBAAA;AF69DR;;AE39DM;EACE,oCAAA;AF89DR;;AEr+DM;EACE,oCAAA;AFw+DR;;AEt+DM;EACE,yBAAA;AFy+DR;;AEv+DM;EACE,oCAAA;AF0+DR;;AE3/DM;EACE,oCAAA;AF8/DR;;AE5/DM;EACE,yBAAA;AF+/DR;;AE7/DM;EACE,oCAAA;AFggER;;AE7/DM;EACE,oCAAA;AFggER;;AE9/DM;EACE,yBAAA;AFigER;;AE//DM;EACE,oCAAA;AFkgER;;AEzgEM;EACE,oCAAA;AF4gER;;AE1gEM;EACE,yBAAA;AF6gER;;AE3gEM;EACE,oCAAA;AF8gER;;AErhEM;EACE,oCAAA;AFwhER;;AEthEM;EACE,yBAAA;AFyhER;;AEvhEM;EACE,oCAAA;AF0hER;;AEjiEM;EACE,oCAAA;AFoiER;;AEliEM;EACE,yBAAA;AFqiER;;AEniEM;EACE,oCAAA;AFsiER;;AE7iEM;EACE,oCAAA;AFgjER;;AE9iEM;EACE,yBAAA;AFijER;;AE/iEM;EACE,oCAAA;AFkjER;;AEzjEM;EACE,oCAAA;AF4jER;;AE1jEM;EACE,yBAAA;AF6jER;;AE3jEM;EACE,oCAAA;AF8jER;;AErkEM;EACE,oCAAA;AFwkER;;AEtkEM;EACE,yBAAA;AFykER;;AEvkEM;EACE,oCAAA;AF0kER;;AEjlEM;EACE,oCAAA;AFolER;;AEllEM;EACE,yBAAA;AFqlER;;AEnlEM;EACE,oCAAA;AFslER;;AE7lEM;EACE,oCAAA;AFgmER;;AE9lEM;EACE,yBAAA;AFimER;;AE/lEM;EACE,oCAAA;AFkmER;;AEzmEM;EACE,oCAAA;AF4mER;;AE1mEM;EACE,yBAAA;AF6mER;;AE3mEM;EACE,oCAAA;AF8mER;;AErnEM;EACE,oCAAA;AFwnER;;AEtnEM;EACE,yBAAA;AFynER;;AEvnEM;EACE,oCAAA;AF0nER;;AEjoEM;EACE,oCAAA;AFooER;;AEloEM;EACE,yBAAA;AFqoER;;AEnoEM;EACE,oCAAA;AFsoER;;AE7oEM;EACE,oCAAA;AFgpER;;AE9oEM;EACE,yBAAA;AFipER;;AE/oEM;EACE,oCAAA;AFkpER;;AEnqEM;EACE,oCAAA;AFsqER;;AEpqEM;EACE,yBAAA;AFuqER;;AErqEM;EACE,oCAAA;AFwqER;;AErqEM;EACE,oCAAA;AFwqER;;AEtqEM;EACE,yBAAA;AFyqER;;AEvqEM;EACE,oCAAA;AF0qER;;AEjrEM;EACE,oCAAA;AForER;;AElrEM;EACE,yBAAA;AFqrER;;AEnrEM;EACE,oCAAA;AFsrER;;AE7rEM;EACE,oCAAA;AFgsER;;AE9rEM;EACE,yBAAA;AFisER;;AE/rEM;EACE,oCAAA;AFksER;;AEzsEM;EACE,oCAAA;AF4sER;;AE1sEM;EACE,yBAAA;AF6sER;;AE3sEM;EACE,oCAAA;AF8sER;;AErtEM;EACE,oCAAA;AFwtER;;AEttEM;EACE,yBAAA;AFytER;;AEvtEM;EACE,oCAAA;AF0tER;;AEjuEM;EACE,oCAAA;AFouER;;AEluEM;EACE,yBAAA;AFquER;;AEnuEM;EACE,oCAAA;AFsuER;;AE7uEM;EACE,oCAAA;AFgvER;;AE9uEM;EACE,yBAAA;AFivER;;AE/uEM;EACE,oCAAA;AFkvER;;AEzvEM;EACE,oCAAA;AF4vER;;AE1vEM;EACE,yBAAA;AF6vER;;AE3vEM;EACE,oCAAA;AF8vER;;AErwEM;EACE,oCAAA;AFwwER;;AEtwEM;EACE,yBAAA;AFywER;;AEvwEM;EACE,oCAAA;AF0wER;;AEjxEM;EACE,oCAAA;AFoxER;;AElxEM;EACE,yBAAA;AFqxER;;AEnxEM;EACE,oCAAA;AFsxER;;AE7xEM;EACE,oCAAA;AFgyER;;AE9xEM;EACE,yBAAA;AFiyER;;AE/xEM;EACE,oCAAA;AFkyER;;AEzyEM;EACE,oCAAA;AF4yER;;AE1yEM;EACE,yBAAA;AF6yER;;AE3yEM;EACE,oCAAA;AF8yER;;AErzEM;EACE,oCAAA;AFwzER;;AEtzEM;EACE,yBAAA;AFyzER;;AEvzEM;EACE,oCAAA;AF0zER;;AE30EM;EACE,oCAAA;AF80ER;;AE50EM;EACE,yBAAA;AF+0ER;;AE70EM;EACE,oCAAA;AFg1ER;;AE70EM;EACE,oCAAA;AFg1ER;;AE90EM;EACE,yBAAA;AFi1ER;;AE/0EM;EACE,oCAAA;AFk1ER;;AEz1EM;EACE,oCAAA;AF41ER;;AE11EM;EACE,yBAAA;AF61ER;;AE31EM;EACE,oCAAA;AF81ER;;AEr2EM;EACE,oCAAA;AFw2ER;;AEt2EM;EACE,yBAAA;AFy2ER;;AEv2EM;EACE,oCAAA;AF02ER;;AEj3EM;EACE,oCAAA;AFo3ER;;AEl3EM;EACE,yBAAA;AFq3ER;;AEn3EM;EACE,oCAAA;AFs3ER;;AE73EM;EACE,oCAAA;AFg4ER;;AE93EM;EACE,yBAAA;AFi4ER;;AE/3EM;EACE,oCAAA;AFk4ER;;AEz4EM;EACE,oCAAA;AF44ER;;AE14EM;EACE,yBAAA;AF64ER;;AE34EM;EACE,oCAAA;AF84ER;;AEr5EM;EACE,oCAAA;AFw5ER;;AEt5EM;EACE,yBAAA;AFy5ER;;AEv5EM;EACE,oCAAA;AF05ER;;AEj6EM;EACE,oCAAA;AFo6ER;;AEl6EM;EACE,yBAAA;AFq6ER;;AEn6EM;EACE,oCAAA;AFs6ER;;AE76EM;EACE,oCAAA;AFg7ER;;AE96EM;EACE,yBAAA;AFi7ER;;AE/6EM;EACE,oCAAA;AFk7ER;;AEz7EM;EACE,oCAAA;AF47ER;;AE17EM;EACE,yBAAA;AF67ER;;AE37EM;EACE,oCAAA;AF87ER;;AEr8EM;EACE,oCAAA;AFw8ER;;AEt8EM;EACE,yBAAA;AFy8ER;;AEv8EM;EACE,oCAAA;AF08ER;;AEj9EM;EACE,oCAAA;AFo9ER;;AEl9EM;EACE,yBAAA;AFq9ER;;AEn9EM;EACE,oCAAA;AFs9ER;;AE79EM;EACE,oCAAA;AFg+ER;;AE99EM;EACE,yBAAA;AFi+ER;;AE/9EM;EACE,oCAAA;AFk+ER;;AEn/EM;EACE,oCAAA;AFs/ER;;AEp/EM;EACE,yBAAA;AFu/ER;;AEr/EM;EACE,oCAAA;AFw/ER;;AEr/EM;EACE,oCAAA;AFw/ER;;AEt/EM;EACE,yBAAA;AFy/ER;;AEv/EM;EACE,oCAAA;AF0/ER;;AEjgFM;EACE,oCAAA;AFogFR;;AElgFM;EACE,yBAAA;AFqgFR;;AEngFM;EACE,oCAAA;AFsgFR;;AE7gFM;EACE,oCAAA;AFghFR;;AE9gFM;EACE,yBAAA;AFihFR;;AE/gFM;EACE,oCAAA;AFkhFR;;AEzhFM;EACE,oCAAA;AF4hFR;;AE1hFM;EACE,yBAAA;AF6hFR;;AE3hFM;EACE,oCAAA;AF8hFR;;AEriFM;EACE,oCAAA;AFwiFR;;AEtiFM;EACE,yBAAA;AFyiFR;;AEviFM;EACE,oCAAA;AF0iFR;;AEjjFM;EACE,oCAAA;AFojFR;;AEljFM;EACE,yBAAA;AFqjFR;;AEnjFM;EACE,oCAAA;AFsjFR;;AE7jFM;EACE,oCAAA;AFgkFR;;AE9jFM;EACE,yBAAA;AFikFR;;AE/jFM;EACE,oCAAA;AFkkFR;;AEzkFM;EACE,oCAAA;AF4kFR;;AE1kFM;EACE,yBAAA;AF6kFR;;AE3kFM;EACE,oCAAA;AF8kFR;;AErlFM;EACE,oCAAA;AFwlFR;;AEtlFM;EACE,yBAAA;AFylFR;;AEvlFM;EACE,oCAAA;AF0lFR;;AEjmFM;EACE,oCAAA;AFomFR;;AElmFM;EACE,yBAAA;AFqmFR;;AEnmFM;EACE,oCAAA;AFsmFR;;AE7mFM;EACE,oCAAA;AFgnFR;;AE9mFM;EACE,yBAAA;AFinFR;;AE/mFM;EACE,oCAAA;AFknFR;;AEznFM;EACE,oCAAA;AF4nFR;;AE1nFM;EACE,yBAAA;AF6nFR;;AE3nFM;EACE,oCAAA;AF8nFR;;AEroFM;EACE,oCAAA;AFwoFR;;AEtoFM;EACE,yBAAA;AFyoFR;;AEvoFM;EACE,oCAAA;AF0oFR;;AE3pFM;EACE,oCAAA;AF8pFR;;AE5pFM;EACE,yBAAA;AF+pFR;;AE7pFM;EACE,oCAAA;AFgqFR;;AE7pFM;EACE,oCAAA;AFgqFR;;AE9pFM;EACE,yBAAA;AFiqFR;;AE/pFM;EACE,oCAAA;AFkqFR;;AEzqFM;EACE,oCAAA;AF4qFR;;AE1qFM;EACE,yBAAA;AF6qFR;;AE3qFM;EACE,oCAAA;AF8qFR;;AErrFM;EACE,oCAAA;AFwrFR;;AEtrFM;EACE,yBAAA;AFyrFR;;AEvrFM;EACE,oCAAA;AF0rFR;;AEjsFM;EACE,oCAAA;AFosFR;;AElsFM;EACE,yBAAA;AFqsFR;;AEnsFM;EACE,oCAAA;AFssFR;;AE7sFM;EACE,oCAAA;AFgtFR;;AE9sFM;EACE,yBAAA;AFitFR;;AE/sFM;EACE,oCAAA;AFktFR;;AEztFM;EACE,oCAAA;AF4tFR;;AE1tFM;EACE,yBAAA;AF6tFR;;AE3tFM;EACE,oCAAA;AF8tFR;;AEruFM;EACE,oCAAA;AFwuFR;;AEtuFM;EACE,yBAAA;AFyuFR;;AEvuFM;EACE,oCAAA;AF0uFR;;AEjvFM;EACE,oCAAA;AFovFR;;AElvFM;EACE,yBAAA;AFqvFR;;AEnvFM;EACE,oCAAA;AFsvFR;;AE7vFM;EACE,oCAAA;AFgwFR;;AE9vFM;EACE,yBAAA;AFiwFR;;AE/vFM;EACE,oCAAA;AFkwFR;;AEzwFM;EACE,oCAAA;AF4wFR;;AE1wFM;EACE,yBAAA;AF6wFR;;AE3wFM;EACE,oCAAA;AF8wFR;;AErxFM;EACE,oCAAA;AFwxFR;;AEtxFM;EACE,yBAAA;AFyxFR;;AEvxFM;EACE,oCAAA;AF0xFR;;AEjyFM;EACE,oCAAA;AFoyFR;;AElyFM;EACE,yBAAA;AFqyFR;;AEnyFM;EACE,oCAAA;AFsyFR;;AE7yFM;EACE,oCAAA;AFgzFR;;AE9yFM;EACE,yBAAA;AFizFR;;AE/yFM;EACE,oCAAA;AFkzFR;;AEn0FM;EACE,oCAAA;AFs0FR;;AEp0FM;EACE,yBAAA;AFu0FR;;AEr0FM;EACE,oCAAA;AFw0FR;;AEr0FM;EACE,oCAAA;AFw0FR;;AEt0FM;EACE,yBAAA;AFy0FR;;AEv0FM;EACE,oCAAA;AF00FR;;AEj1FM;EACE,oCAAA;AFo1FR;;AEl1FM;EACE,yBAAA;AFq1FR;;AEn1FM;EACE,oCAAA;AFs1FR;;AE71FM;EACE,oCAAA;AFg2FR;;AE91FM;EACE,yBAAA;AFi2FR;;AE/1FM;EACE,oCAAA;AFk2FR;;AEz2FM;EACE,oCAAA;AF42FR;;AE12FM;EACE,yBAAA;AF62FR;;AE32FM;EACE,oCAAA;AF82FR;;AEr3FM;EACE,oCAAA;AFw3FR;;AEt3FM;EACE,yBAAA;AFy3FR;;AEv3FM;EACE,oCAAA;AF03FR;;AEj4FM;EACE,oCAAA;AFo4FR;;AEl4FM;EACE,yBAAA;AFq4FR;;AEn4FM;EACE,oCAAA;AFs4FR;;AE74FM;EACE,oCAAA;AFg5FR;;AE94FM;EACE,yBAAA;AFi5FR;;AE/4FM;EACE,oCAAA;AFk5FR;;AEz5FM;EACE,oCAAA;AF45FR;;AE15FM;EACE,yBAAA;AF65FR;;AE35FM;EACE,oCAAA;AF85FR;;AEr6FM;EACE,oCAAA;AFw6FR;;AEt6FM;EACE,yBAAA;AFy6FR;;AEv6FM;EACE,oCAAA;AF06FR;;AE37FM;EACE,oCAAA;AF87FR;;AE57FM;EACE,yBAAA;AF+7FR;;AE77FM;EACE,oCAAA;AFg8FR;;AE77FM;EACE,oCAAA;AFg8FR;;AE97FM;EACE,yBAAA;AFi8FR;;AE/7FM;EACE,oCAAA;AFk8FR;;AEz8FM;EACE,oCAAA;AF48FR;;AE18FM;EACE,yBAAA;AF68FR;;AE38FM;EACE,oCAAA;AF88FR;;AEr9FM;EACE,oCAAA;AFw9FR;;AEt9FM;EACE,yBAAA;AFy9FR;;AEv9FM;EACE,oCAAA;AF09FR;;AEj+FM;EACE,oCAAA;AFo+FR;;AEl+FM;EACE,yBAAA;AFq+FR;;AEn+FM;EACE,oCAAA;AFs+FR;;AE7+FM;EACE,oCAAA;AFg/FR;;AE9+FM;EACE,yBAAA;AFi/FR;;AE/+FM;EACE,oCAAA;AFk/FR;;AEz/FM;EACE,oCAAA;AF4/FR;;AE1/FM;EACE,yBAAA;AF6/FR;;AE3/FM;EACE,oCAAA;AF8/FR;;AErgGM;EACE,oCAAA;AFwgGR;;AEtgGM;EACE,yBAAA;AFygGR;;AEvgGM;EACE,oCAAA;AF0gGR;;AEjhGM;EACE,oCAAA;AFohGR;;AElhGM;EACE,yBAAA;AFqhGR;;AEnhGM;EACE,oCAAA;AFshGR;;AE7hGM;EACE,oCAAA;AFgiGR;;AE9hGM;EACE,yBAAA;AFiiGR;;AE/hGM;EACE,oCAAA;AFkiGR;;AEnjGM;EACE,oCAAA;AFsjGR;;AEpjGM;EACE,yBAAA;AFujGR;;AErjGM;EACE,oCAAA;AFwjGR;;AErjGM;EACE,oCAAA;AFwjGR;;AEtjGM;EACE,yBAAA;AFyjGR;;AEvjGM;EACE,oCAAA;AF0jGR;;AEjkGM;EACE,oCAAA;AFokGR;;AElkGM;EACE,yBAAA;AFqkGR;;AEnkGM;EACE,oCAAA;A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","sourcesContent":["@charset \"UTF-8\";\n@import 'https://fonts.googleapis.com/css?family=Ubuntu';\n@font-face {\n font-family: sweeticons;\n font-style: normal;\n font-weight: 400;\n src: url(\"./icons/assets/SweetIcons-Regular.eot\");\n src: url(\"./icons/assets/SweetIcons-Regular.woff2\") format(\"woff2\"), url(\"./icons/assets/SweetIcons-Regular.woff\") format(\"woff\"), url(\"./icons/assets/SweetIcons-Regular.ttf\") format(\"truetype\");\n}\n.s-icon,\n.s-icons,\n.sweet-icons,\n.sweet-icon {\n font-family: sweeticons, sans-serif;\n font-weight: normal;\n font-style: normal;\n font-size: 28px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n -webkit-font-smoothing: antialiased;\n text-rendering: optimizeLegibility;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-feature-settings: \"liga\";\n -moz-font-feature-settings: \"liga=1\";\n -moz-font-feature-settings: \"liga\";\n font-feature-settings: \"liga\";\n text-align: center;\n}\n\n.webo {\n background-color: #0062d6 !important;\n}\n\n.webo-text {\n color: #0062d6 !important;\n}\n\n.webo-waves .waves-ripple {\n background-color: #0062d6 !important;\n}\n\n.webo.second {\n background-color: #0077FA !important;\n}\n\n.webo-text.text-second {\n color: #0077FA !important;\n}\n\n.webo-waves.waves-second .waves-ripple {\n background-color: #0077FA !important;\n}\n\n.webo.third {\n background-color: #09bddd !important;\n}\n\n.webo-text.text-third {\n color: #09bddd !important;\n}\n\n.webo-waves.waves-third .waves-ripple {\n background-color: #09bddd !important;\n}\n\n.webo.fourth {\n background-color: #cbe7fe !important;\n}\n\n.webo-text.text-fourth {\n color: #cbe7fe !important;\n}\n\n.webo-waves.waves-fourth .waves-ripple {\n background-color: #cbe7fe !important;\n}\n\n.webo.lighten-5 {\n background-color: #bbdefb !important;\n}\n\n.webo-text.text-lighten-5 {\n color: #bbdefb !important;\n}\n\n.webo-waves.waves-lighten-5 .waves-ripple {\n background-color: #bbdefb !important;\n}\n\n.webo.lighten-4 {\n background-color: #42a5f5 !important;\n}\n\n.webo-text.text-lighten-4 {\n color: #42a5f5 !important;\n}\n\n.webo-waves.waves-lighten-4 .waves-ripple {\n background-color: #42a5f5 !important;\n}\n\n.webo.lighten-3 {\n background-color: #7986cb !important;\n}\n\n.webo-text.text-lighten-3 {\n color: #7986cb !important;\n}\n\n.webo-waves.waves-lighten-3 .waves-ripple {\n background-color: #7986cb !important;\n}\n\n.webo.lighten-2 {\n background-color: #512da8 !important;\n}\n\n.webo-text.text-lighten-2 {\n color: #512da8 !important;\n}\n\n.webo-waves.waves-lighten-2 .waves-ripple {\n background-color: #512da8 !important;\n}\n\n.webo.lighten-1 {\n background-color: #283593 !important;\n}\n\n.webo-text.text-lighten-1 {\n color: #283593 !important;\n}\n\n.webo-waves.waves-lighten-1 .waves-ripple {\n background-color: #283593 !important;\n}\n\n.webo.darken-1 {\n background-color: #d0181e !important;\n}\n\n.webo-text.text-darken-1 {\n color: #d0181e !important;\n}\n\n.webo-waves.waves-darken-1 .waves-ripple {\n background-color: #d0181e !important;\n}\n\n.webo.darken-2 {\n background-color: #b9151b !important;\n}\n\n.webo-text.text-darken-2 {\n color: #b9151b !important;\n}\n\n.webo-waves.waves-darken-2 .waves-ripple {\n background-color: #b9151b !important;\n}\n\n.webo.darken-3 {\n background-color: #a21318 !important;\n}\n\n.webo-text.text-darken-3 {\n color: #a21318 !important;\n}\n\n.webo-waves.waves-darken-3 .waves-ripple {\n background-color: #a21318 !important;\n}\n\n.webo.b- {\n background-color: #49ce5f !important;\n}\n\n.webo-text.text-b- {\n color: #49ce5f !important;\n}\n\n.webo-waves.waves-b- .waves-ripple {\n background-color: #49ce5f !important;\n}\n\n.webo.darken-4 {\n background-color: #8b1014 !important;\n}\n\n.webo-text.text-darken-4 {\n color: #8b1014 !important;\n}\n\n.webo-waves.waves-darken-4 .waves-ripple {\n background-color: #8b1014 !important;\n}\n\n.red {\n background-color: #f44336 !important;\n}\n\n.red-text {\n color: #f44336 !important;\n}\n\n.red-waves .waves-ripple {\n background-color: #f44336 !important;\n}\n\n.red.lighten-5 {\n background-color: #ffebee !important;\n}\n\n.red-text.text-lighten-5 {\n color: #ffebee !important;\n}\n\n.red-waves.waves-lighten-5 .waves-ripple {\n background-color: #ffebee !important;\n}\n\n.red.lighten-4 {\n background-color: #ffcdd2 !important;\n}\n\n.red-text.text-lighten-4 {\n color: #ffcdd2 !important;\n}\n\n.red-waves.waves-lighten-4 .waves-ripple {\n background-color: #ffcdd2 !important;\n}\n\n.red.lighten-3 {\n background-color: #ef9a9a !important;\n}\n\n.red-text.text-lighten-3 {\n color: #ef9a9a !important;\n}\n\n.red-waves.waves-lighten-3 .waves-ripple {\n background-color: #ef9a9a !important;\n}\n\n.red.lighten-2 {\n background-color: #e57373 !important;\n}\n\n.red-text.text-lighten-2 {\n color: #e57373 !important;\n}\n\n.red-waves.waves-lighten-2 .waves-ripple {\n background-color: #e57373 !important;\n}\n\n.red.lighten-1 {\n background-color: #ef5350 !important;\n}\n\n.red-text.text-lighten-1 {\n color: #ef5350 !important;\n}\n\n.red-waves.waves-lighten-1 .waves-ripple {\n background-color: #ef5350 !important;\n}\n\n.red.darken-1 {\n background-color: #e53935 !important;\n}\n\n.red-text.text-darken-1 {\n color: #e53935 !important;\n}\n\n.red-waves.waves-darken-1 .waves-ripple {\n background-color: #e53935 !important;\n}\n\n.red.darken-2 {\n background-color: #d32f2f !important;\n}\n\n.red-text.text-darken-2 {\n color: #d32f2f !important;\n}\n\n.red-waves.waves-darken-2 .waves-ripple {\n background-color: #d32f2f !important;\n}\n\n.red.darken-3 {\n background-color: #c62828 !important;\n}\n\n.red-text.text-darken-3 {\n color: #c62828 !important;\n}\n\n.red-waves.waves-darken-3 .waves-ripple {\n background-color: #c62828 !important;\n}\n\n.red.darken-4 {\n background-color: #b71c1c !important;\n}\n\n.red-text.text-darken-4 {\n color: #b71c1c !important;\n}\n\n.red-waves.waves-darken-4 .waves-ripple {\n background-color: #b71c1c !important;\n}\n\n.red.accent-1 {\n background-color: #ff8a80 !important;\n}\n\n.red-text.text-accent-1 {\n color: #ff8a80 !important;\n}\n\n.red-waves.waves-accent-1 .waves-ripple {\n background-color: #ff8a80 !important;\n}\n\n.red.accent-2 {\n background-color: #ff5252 !important;\n}\n\n.red-text.text-accent-2 {\n color: #ff5252 !important;\n}\n\n.red-waves.waves-accent-2 .waves-ripple {\n background-color: #ff5252 !important;\n}\n\n.red.accent-3 {\n background-color: #ff1744 !important;\n}\n\n.red-text.text-accent-3 {\n color: #ff1744 !important;\n}\n\n.red-waves.waves-accent-3 .waves-ripple {\n background-color: #ff1744 !important;\n}\n\n.red.accent-4 {\n background-color: #d50000 !important;\n}\n\n.red-text.text-accent-4 {\n color: #d50000 !important;\n}\n\n.red-waves.waves-accent-4 .waves-ripple {\n background-color: #d50000 !important;\n}\n\n.pink {\n background-color: #e91e63 !important;\n}\n\n.pink-text {\n color: #e91e63 !important;\n}\n\n.pink-waves .waves-ripple {\n background-color: #e91e63 !important;\n}\n\n.pink.lighten-5 {\n background-color: #fce4ec !important;\n}\n\n.pink-text.text-lighten-5 {\n color: #fce4ec !important;\n}\n\n.pink-waves.waves-lighten-5 .waves-ripple {\n background-color: #fce4ec !important;\n}\n\n.pink.lighten-4 {\n background-color: #f8bbd0 !important;\n}\n\n.pink-text.text-lighten-4 {\n color: #f8bbd0 !important;\n}\n\n.pink-waves.waves-lighten-4 .waves-ripple {\n background-color: #f8bbd0 !important;\n}\n\n.pink.lighten-3 {\n background-color: #f48fb1 !important;\n}\n\n.pink-text.text-lighten-3 {\n color: #f48fb1 !important;\n}\n\n.pink-waves.waves-lighten-3 .waves-ripple {\n background-color: #f48fb1 !important;\n}\n\n.pink.lighten-2 {\n background-color: #f06292 !important;\n}\n\n.pink-text.text-lighten-2 {\n color: #f06292 !important;\n}\n\n.pink-waves.waves-lighten-2 .waves-ripple {\n background-color: #f06292 !important;\n}\n\n.pink.lighten-1 {\n background-color: #ec407a !important;\n}\n\n.pink-text.text-lighten-1 {\n color: #ec407a !important;\n}\n\n.pink-waves.waves-lighten-1 .waves-ripple {\n background-color: #ec407a !important;\n}\n\n.pink.darken-1 {\n background-color: #d81b60 !important;\n}\n\n.pink-text.text-darken-1 {\n color: #d81b60 !important;\n}\n\n.pink-waves.waves-darken-1 .waves-ripple {\n background-color: #d81b60 !important;\n}\n\n.pink.darken-2 {\n background-color: #c2185b !important;\n}\n\n.pink-text.text-darken-2 {\n color: #c2185b !important;\n}\n\n.pink-waves.waves-darken-2 .waves-ripple {\n background-color: #c2185b !important;\n}\n\n.pink.darken-3 {\n background-color: #ad1457 !important;\n}\n\n.pink-text.text-darken-3 {\n color: #ad1457 !important;\n}\n\n.pink-waves.waves-darken-3 .waves-ripple {\n background-color: #ad1457 !important;\n}\n\n.pink.darken-4 {\n background-color: #880e4f !important;\n}\n\n.pink-text.text-darken-4 {\n color: #880e4f !important;\n}\n\n.pink-waves.waves-darken-4 .waves-ripple {\n background-color: #880e4f !important;\n}\n\n.pink.accent-1 {\n background-color: #ff80ab !important;\n}\n\n.pink-text.text-accent-1 {\n color: #ff80ab !important;\n}\n\n.pink-waves.waves-accent-1 .waves-ripple {\n background-color: #ff80ab !important;\n}\n\n.pink.accent-2 {\n background-color: #ff4081 !important;\n}\n\n.pink-text.text-accent-2 {\n color: #ff4081 !important;\n}\n\n.pink-waves.waves-accent-2 .waves-ripple {\n background-color: #ff4081 !important;\n}\n\n.pink.accent-3 {\n background-color: #f50057 !important;\n}\n\n.pink-text.text-accent-3 {\n color: #f50057 !important;\n}\n\n.pink-waves.waves-accent-3 .waves-ripple {\n background-color: #f50057 !important;\n}\n\n.pink.accent-4 {\n background-color: #c51162 !important;\n}\n\n.pink-text.text-accent-4 {\n color: #c51162 !important;\n}\n\n.pink-waves.waves-accent-4 .waves-ripple {\n background-color: #c51162 !important;\n}\n\n.purple {\n background-color: #9c27b0 !important;\n}\n\n.purple-text {\n color: #9c27b0 !important;\n}\n\n.purple-waves .waves-ripple {\n background-color: #9c27b0 !important;\n}\n\n.purple.lighten-5 {\n background-color: #f3e5f5 !important;\n}\n\n.purple-text.text-lighten-5 {\n color: #f3e5f5 !important;\n}\n\n.purple-waves.waves-lighten-5 .waves-ripple {\n background-color: #f3e5f5 !important;\n}\n\n.purple.lighten-4 {\n background-color: #e1bee7 !important;\n}\n\n.purple-text.text-lighten-4 {\n color: #e1bee7 !important;\n}\n\n.purple-waves.waves-lighten-4 .waves-ripple {\n background-color: #e1bee7 !important;\n}\n\n.purple.lighten-3 {\n background-color: #ce93d8 !important;\n}\n\n.purple-text.text-lighten-3 {\n color: #ce93d8 !important;\n}\n\n.purple-waves.waves-lighten-3 .waves-ripple {\n background-color: #ce93d8 !important;\n}\n\n.purple.lighten-2 {\n background-color: #ba68c8 !important;\n}\n\n.purple-text.text-lighten-2 {\n color: #ba68c8 !important;\n}\n\n.purple-waves.waves-lighten-2 .waves-ripple {\n background-color: #ba68c8 !important;\n}\n\n.purple.lighten-1 {\n background-color: #ab47bc !important;\n}\n\n.purple-text.text-lighten-1 {\n color: #ab47bc !important;\n}\n\n.purple-waves.waves-lighten-1 .waves-ripple {\n background-color: #ab47bc !important;\n}\n\n.purple.darken-1 {\n background-color: #8e24aa !important;\n}\n\n.purple-text.text-darken-1 {\n color: #8e24aa !important;\n}\n\n.purple-waves.waves-darken-1 .waves-ripple {\n background-color: #8e24aa !important;\n}\n\n.purple.darken-2 {\n background-color: #7b1fa2 !important;\n}\n\n.purple-text.text-darken-2 {\n color: #7b1fa2 !important;\n}\n\n.purple-waves.waves-darken-2 .waves-ripple {\n background-color: #7b1fa2 !important;\n}\n\n.purple.darken-3 {\n background-color: #6a1b9a !important;\n}\n\n.purple-text.text-darken-3 {\n color: #6a1b9a !important;\n}\n\n.purple-waves.waves-darken-3 .waves-ripple {\n background-color: #6a1b9a !important;\n}\n\n.purple.darken-4 {\n background-color: #4a148c !important;\n}\n\n.purple-text.text-darken-4 {\n color: #4a148c !important;\n}\n\n.purple-waves.waves-darken-4 .waves-ripple {\n background-color: #4a148c !important;\n}\n\n.purple.accent-1 {\n background-color: #ea80fc !important;\n}\n\n.purple-text.text-accent-1 {\n color: #ea80fc !important;\n}\n\n.purple-waves.waves-accent-1 .waves-ripple {\n background-color: #ea80fc !important;\n}\n\n.purple.accent-2 {\n background-color: #e040fb !important;\n}\n\n.purple-text.text-accent-2 {\n color: #e040fb !important;\n}\n\n.purple-waves.waves-accent-2 .waves-ripple {\n background-color: #e040fb !important;\n}\n\n.purple.accent-3 {\n background-color: #d500f9 !important;\n}\n\n.purple-text.text-accent-3 {\n color: #d500f9 !important;\n}\n\n.purple-waves.waves-accent-3 .waves-ripple {\n background-color: #d500f9 !important;\n}\n\n.purple.accent-4 {\n background-color: #aa00ff !important;\n}\n\n.purple-text.text-accent-4 {\n color: #aa00ff !important;\n}\n\n.purple-waves.waves-accent-4 .waves-ripple {\n background-color: #aa00ff !important;\n}\n\n.deep-purple {\n background-color: #673ab7 !important;\n}\n\n.deep-purple-text {\n color: #673ab7 !important;\n}\n\n.deep-purple-waves .waves-ripple {\n background-color: #673ab7 !important;\n}\n\n.deep-purple.lighten-5 {\n background-color: #ede7f6 !important;\n}\n\n.deep-purple-text.text-lighten-5 {\n color: #ede7f6 !important;\n}\n\n.deep-purple-waves.waves-lighten-5 .waves-ripple {\n background-color: #ede7f6 !important;\n}\n\n.deep-purple.lighten-4 {\n background-color: #d1c4e9 !important;\n}\n\n.deep-purple-text.text-lighten-4 {\n color: #d1c4e9 !important;\n}\n\n.deep-purple-waves.waves-lighten-4 .waves-ripple {\n background-color: #d1c4e9 !important;\n}\n\n.deep-purple.lighten-3 {\n background-color: #b39ddb !important;\n}\n\n.deep-purple-text.text-lighten-3 {\n color: #b39ddb !important;\n}\n\n.deep-purple-waves.waves-lighten-3 .waves-ripple {\n background-color: #b39ddb !important;\n}\n\n.deep-purple.lighten-2 {\n background-color: #9575cd !important;\n}\n\n.deep-purple-text.text-lighten-2 {\n color: #9575cd !important;\n}\n\n.deep-purple-waves.waves-lighten-2 .waves-ripple {\n background-color: #9575cd !important;\n}\n\n.deep-purple.lighten-1 {\n background-color: #7e57c2 !important;\n}\n\n.deep-purple-text.text-lighten-1 {\n color: #7e57c2 !important;\n}\n\n.deep-purple-waves.waves-lighten-1 .waves-ripple {\n background-color: #7e57c2 !important;\n}\n\n.deep-purple.darken-1 {\n background-color: #5e35b1 !important;\n}\n\n.deep-purple-text.text-darken-1 {\n color: #5e35b1 !important;\n}\n\n.deep-purple-waves.waves-darken-1 .waves-ripple {\n background-color: #5e35b1 !important;\n}\n\n.deep-purple.darken-2 {\n background-color: #512da8 !important;\n}\n\n.deep-purple-text.text-darken-2 {\n color: #512da8 !important;\n}\n\n.deep-purple-waves.waves-darken-2 .waves-ripple {\n background-color: #512da8 !important;\n}\n\n.deep-purple.darken-3 {\n background-color: #4527a0 !important;\n}\n\n.deep-purple-text.text-darken-3 {\n color: #4527a0 !important;\n}\n\n.deep-purple-waves.waves-darken-3 .waves-ripple {\n background-color: #4527a0 !important;\n}\n\n.deep-purple.darken-4 {\n background-color: #311b92 !important;\n}\n\n.deep-purple-text.text-darken-4 {\n color: #311b92 !important;\n}\n\n.deep-purple-waves.waves-darken-4 .waves-ripple {\n background-color: #311b92 !important;\n}\n\n.deep-purple.accent-1 {\n background-color: #b388ff !important;\n}\n\n.deep-purple-text.text-accent-1 {\n color: #b388ff !important;\n}\n\n.deep-purple-waves.waves-accent-1 .waves-ripple {\n background-color: #b388ff !important;\n}\n\n.deep-purple.accent-2 {\n background-color: #7c4dff !important;\n}\n\n.deep-purple-text.text-accent-2 {\n color: #7c4dff !important;\n}\n\n.deep-purple-waves.waves-accent-2 .waves-ripple {\n background-color: #7c4dff !important;\n}\n\n.deep-purple.accent-3 {\n background-color: #651fff !important;\n}\n\n.deep-purple-text.text-accent-3 {\n color: #651fff !important;\n}\n\n.deep-purple-waves.waves-accent-3 .waves-ripple {\n background-color: #651fff !important;\n}\n\n.deep-purple.accent-4 {\n background-color: #6200ea !important;\n}\n\n.deep-purple-text.text-accent-4 {\n color: #6200ea !important;\n}\n\n.deep-purple-waves.waves-accent-4 .waves-ripple {\n background-color: #6200ea !important;\n}\n\n.indigo {\n background-color: #3f51b5 !important;\n}\n\n.indigo-text {\n color: #3f51b5 !important;\n}\n\n.indigo-waves .waves-ripple {\n background-color: #3f51b5 !important;\n}\n\n.indigo.lighten-5 {\n background-color: #e8eaf6 !important;\n}\n\n.indigo-text.text-lighten-5 {\n color: #e8eaf6 !important;\n}\n\n.indigo-waves.waves-lighten-5 .waves-ripple {\n background-color: #e8eaf6 !important;\n}\n\n.indigo.lighten-4 {\n background-color: #c5cae9 !important;\n}\n\n.indigo-text.text-lighten-4 {\n color: #c5cae9 !important;\n}\n\n.indigo-waves.waves-lighten-4 .waves-ripple {\n background-color: #c5cae9 !important;\n}\n\n.indigo.lighten-3 {\n background-color: #9fa8da !important;\n}\n\n.indigo-text.text-lighten-3 {\n color: #9fa8da !important;\n}\n\n.indigo-waves.waves-lighten-3 .waves-ripple {\n background-color: #9fa8da !important;\n}\n\n.indigo.lighten-2 {\n background-color: #7986cb !important;\n}\n\n.indigo-text.text-lighten-2 {\n color: #7986cb !important;\n}\n\n.indigo-waves.waves-lighten-2 .waves-ripple {\n background-color: #7986cb !important;\n}\n\n.indigo.lighten-1 {\n background-color: #5c6bc0 !important;\n}\n\n.indigo-text.text-lighten-1 {\n color: #5c6bc0 !important;\n}\n\n.indigo-waves.waves-lighten-1 .waves-ripple {\n background-color: #5c6bc0 !important;\n}\n\n.indigo.darken-1 {\n background-color: #3949ab !important;\n}\n\n.indigo-text.text-darken-1 {\n color: #3949ab !important;\n}\n\n.indigo-waves.waves-darken-1 .waves-ripple {\n background-color: #3949ab !important;\n}\n\n.indigo.darken-2 {\n background-color: #303f9f !important;\n}\n\n.indigo-text.text-darken-2 {\n color: #303f9f !important;\n}\n\n.indigo-waves.waves-darken-2 .waves-ripple {\n background-color: #303f9f !important;\n}\n\n.indigo.darken-3 {\n background-color: #283593 !important;\n}\n\n.indigo-text.text-darken-3 {\n color: #283593 !important;\n}\n\n.indigo-waves.waves-darken-3 .waves-ripple {\n background-color: #283593 !important;\n}\n\n.indigo.darken-4 {\n background-color: #1a237e !important;\n}\n\n.indigo-text.text-darken-4 {\n color: #1a237e !important;\n}\n\n.indigo-waves.waves-darken-4 .waves-ripple {\n background-color: #1a237e !important;\n}\n\n.indigo.accent-1 {\n background-color: #8c9eff !important;\n}\n\n.indigo-text.text-accent-1 {\n color: #8c9eff !important;\n}\n\n.indigo-waves.waves-accent-1 .waves-ripple {\n background-color: #8c9eff !important;\n}\n\n.indigo.accent-2 {\n background-color: #536dfe !important;\n}\n\n.indigo-text.text-accent-2 {\n color: #536dfe !important;\n}\n\n.indigo-waves.waves-accent-2 .waves-ripple {\n background-color: #536dfe !important;\n}\n\n.indigo.accent-3 {\n background-color: #3d5afe !important;\n}\n\n.indigo-text.text-accent-3 {\n color: #3d5afe !important;\n}\n\n.indigo-waves.waves-accent-3 .waves-ripple {\n background-color: #3d5afe !important;\n}\n\n.indigo.accent-4 {\n background-color: #304ffe !important;\n}\n\n.indigo-text.text-accent-4 {\n color: #304ffe !important;\n}\n\n.indigo-waves.waves-accent-4 .waves-ripple {\n background-color: #304ffe !important;\n}\n\n.blue {\n background-color: #2196f3 !important;\n}\n\n.blue-text {\n color: #2196f3 !important;\n}\n\n.blue-waves .waves-ripple {\n background-color: #2196f3 !important;\n}\n\n.blue.lighten-5 {\n background-color: #e3f2fd !important;\n}\n\n.blue-text.text-lighten-5 {\n color: #e3f2fd !important;\n}\n\n.blue-waves.waves-lighten-5 .waves-ripple {\n background-color: #e3f2fd !important;\n}\n\n.blue.lighten-4 {\n background-color: #bbdefb !important;\n}\n\n.blue-text.text-lighten-4 {\n color: #bbdefb !important;\n}\n\n.blue-waves.waves-lighten-4 .waves-ripple {\n background-color: #bbdefb !important;\n}\n\n.blue.lighten-3 {\n background-color: #90caf9 !important;\n}\n\n.blue-text.text-lighten-3 {\n color: #90caf9 !important;\n}\n\n.blue-waves.waves-lighten-3 .waves-ripple {\n background-color: #90caf9 !important;\n}\n\n.blue.lighten-2 {\n background-color: #64b5f6 !important;\n}\n\n.blue-text.text-lighten-2 {\n color: #64b5f6 !important;\n}\n\n.blue-waves.waves-lighten-2 .waves-ripple {\n background-color: #64b5f6 !important;\n}\n\n.blue.lighten-1 {\n background-color: #42a5f5 !important;\n}\n\n.blue-text.text-lighten-1 {\n color: #42a5f5 !important;\n}\n\n.blue-waves.waves-lighten-1 .waves-ripple {\n background-color: #42a5f5 !important;\n}\n\n.blue.darken-1 {\n background-color: #1e88e5 !important;\n}\n\n.blue-text.text-darken-1 {\n color: #1e88e5 !important;\n}\n\n.blue-waves.waves-darken-1 .waves-ripple {\n background-color: #1e88e5 !important;\n}\n\n.blue.darken-2 {\n background-color: #1976d2 !important;\n}\n\n.blue-text.text-darken-2 {\n color: #1976d2 !important;\n}\n\n.blue-waves.waves-darken-2 .waves-ripple {\n background-color: #1976d2 !important;\n}\n\n.blue.darken-3 {\n background-color: #1565c0 !important;\n}\n\n.blue-text.text-darken-3 {\n color: #1565c0 !important;\n}\n\n.blue-waves.waves-darken-3 .waves-ripple {\n background-color: #1565c0 !important;\n}\n\n.blue.darken-4 {\n background-color: #0d47a1 !important;\n}\n\n.blue-text.text-darken-4 {\n color: #0d47a1 !important;\n}\n\n.blue-waves.waves-darken-4 .waves-ripple {\n background-color: #0d47a1 !important;\n}\n\n.blue.accent-1 {\n background-color: #82b1ff !important;\n}\n\n.blue-text.text-accent-1 {\n color: #82b1ff !important;\n}\n\n.blue-waves.waves-accent-1 .waves-ripple {\n background-color: #82b1ff !important;\n}\n\n.blue.accent-2 {\n background-color: #448aff !important;\n}\n\n.blue-text.text-accent-2 {\n color: #448aff !important;\n}\n\n.blue-waves.waves-accent-2 .waves-ripple {\n background-color: #448aff !important;\n}\n\n.blue.accent-3 {\n background-color: #2979ff !important;\n}\n\n.blue-text.text-accent-3 {\n color: #2979ff !important;\n}\n\n.blue-waves.waves-accent-3 .waves-ripple {\n background-color: #2979ff !important;\n}\n\n.blue.accent-4 {\n background-color: #2962ff !important;\n}\n\n.blue-text.text-accent-4 {\n color: #2962ff !important;\n}\n\n.blue-waves.waves-accent-4 .waves-ripple {\n background-color: #2962ff !important;\n}\n\n.light-blue {\n background-color: #03a9f4 !important;\n}\n\n.light-blue-text {\n color: #03a9f4 !important;\n}\n\n.light-blue-waves .waves-ripple {\n background-color: #03a9f4 !important;\n}\n\n.light-blue.lighten-5 {\n background-color: #e1f5fe !important;\n}\n\n.light-blue-text.text-lighten-5 {\n color: #e1f5fe !important;\n}\n\n.light-blue-waves.waves-lighten-5 .waves-ripple {\n background-color: #e1f5fe !important;\n}\n\n.light-blue.lighten-4 {\n background-color: #b3e5fc !important;\n}\n\n.light-blue-text.text-lighten-4 {\n color: #b3e5fc !important;\n}\n\n.light-blue-waves.waves-lighten-4 .waves-ripple {\n background-color: #b3e5fc !important;\n}\n\n.light-blue.lighten-3 {\n background-color: #81d4fa !important;\n}\n\n.light-blue-text.text-lighten-3 {\n color: #81d4fa !important;\n}\n\n.light-blue-waves.waves-lighten-3 .waves-ripple {\n background-color: #81d4fa !important;\n}\n\n.light-blue.lighten-2 {\n background-color: #4fc3f7 !important;\n}\n\n.light-blue-text.text-lighten-2 {\n color: #4fc3f7 !important;\n}\n\n.light-blue-waves.waves-lighten-2 .waves-ripple {\n background-color: #4fc3f7 !important;\n}\n\n.light-blue.lighten-1 {\n background-color: #29b6f6 !important;\n}\n\n.light-blue-text.text-lighten-1 {\n color: #29b6f6 !important;\n}\n\n.light-blue-waves.waves-lighten-1 .waves-ripple {\n background-color: #29b6f6 !important;\n}\n\n.light-blue.darken-1 {\n background-color: #039be5 !important;\n}\n\n.light-blue-text.text-darken-1 {\n color: #039be5 !important;\n}\n\n.light-blue-waves.waves-darken-1 .waves-ripple {\n background-color: #039be5 !important;\n}\n\n.light-blue.darken-2 {\n background-color: #0288d1 !important;\n}\n\n.light-blue-text.text-darken-2 {\n color: #0288d1 !important;\n}\n\n.light-blue-waves.waves-darken-2 .waves-ripple {\n background-color: #0288d1 !important;\n}\n\n.light-blue.darken-3 {\n background-color: #0277bd !important;\n}\n\n.light-blue-text.text-darken-3 {\n color: #0277bd !important;\n}\n\n.light-blue-waves.waves-darken-3 .waves-ripple {\n background-color: #0277bd !important;\n}\n\n.light-blue.darken-4 {\n background-color: #01579b !important;\n}\n\n.light-blue-text.text-darken-4 {\n color: #01579b !important;\n}\n\n.light-blue-waves.waves-darken-4 .waves-ripple {\n background-color: #01579b !important;\n}\n\n.light-blue.accent-1 {\n background-color: #80d8ff !important;\n}\n\n.light-blue-text.text-accent-1 {\n color: #80d8ff !important;\n}\n\n.light-blue-waves.waves-accent-1 .waves-ripple {\n background-color: #80d8ff !important;\n}\n\n.light-blue.accent-2 {\n background-color: #40c4ff !important;\n}\n\n.light-blue-text.text-accent-2 {\n color: #40c4ff !important;\n}\n\n.light-blue-waves.waves-accent-2 .waves-ripple {\n background-color: #40c4ff !important;\n}\n\n.light-blue.accent-3 {\n background-color: #00b0ff !important;\n}\n\n.light-blue-text.text-accent-3 {\n color: #00b0ff !important;\n}\n\n.light-blue-waves.waves-accent-3 .waves-ripple {\n background-color: #00b0ff !important;\n}\n\n.light-blue.accent-4 {\n background-color: #0091ea !important;\n}\n\n.light-blue-text.text-accent-4 {\n color: #0091ea !important;\n}\n\n.light-blue-waves.waves-accent-4 .waves-ripple {\n background-color: #0091ea !important;\n}\n\n.cyan {\n background-color: #00bcd4 !important;\n}\n\n.cyan-text {\n color: #00bcd4 !important;\n}\n\n.cyan-waves .waves-ripple {\n background-color: #00bcd4 !important;\n}\n\n.cyan.lighten-5 {\n background-color: #e0f7fa !important;\n}\n\n.cyan-text.text-lighten-5 {\n color: #e0f7fa !important;\n}\n\n.cyan-waves.waves-lighten-5 .waves-ripple {\n background-color: #e0f7fa !important;\n}\n\n.cyan.lighten-4 {\n background-color: #b2ebf2 !important;\n}\n\n.cyan-text.text-lighten-4 {\n color: #b2ebf2 !important;\n}\n\n.cyan-waves.waves-lighten-4 .waves-ripple {\n background-color: #b2ebf2 !important;\n}\n\n.cyan.lighten-3 {\n background-color: #80deea !important;\n}\n\n.cyan-text.text-lighten-3 {\n color: #80deea !important;\n}\n\n.cyan-waves.waves-lighten-3 .waves-ripple {\n background-color: #80deea !important;\n}\n\n.cyan.lighten-2 {\n background-color: #4dd0e1 !important;\n}\n\n.cyan-text.text-lighten-2 {\n color: #4dd0e1 !important;\n}\n\n.cyan-waves.waves-lighten-2 .waves-ripple {\n background-color: #4dd0e1 !important;\n}\n\n.cyan.lighten-1 {\n background-color: #26c6da !important;\n}\n\n.cyan-text.text-lighten-1 {\n color: #26c6da !important;\n}\n\n.cyan-waves.waves-lighten-1 .waves-ripple {\n background-color: #26c6da !important;\n}\n\n.cyan.darken-1 {\n background-color: #00acc1 !important;\n}\n\n.cyan-text.text-darken-1 {\n color: #00acc1 !important;\n}\n\n.cyan-waves.waves-darken-1 .waves-ripple {\n background-color: #00acc1 !important;\n}\n\n.cyan.darken-2 {\n background-color: #0097a7 !important;\n}\n\n.cyan-text.text-darken-2 {\n color: #0097a7 !important;\n}\n\n.cyan-waves.waves-darken-2 .waves-ripple {\n background-color: #0097a7 !important;\n}\n\n.cyan.darken-3 {\n background-color: #00838f !important;\n}\n\n.cyan-text.text-darken-3 {\n color: #00838f !important;\n}\n\n.cyan-waves.waves-darken-3 .waves-ripple {\n background-color: #00838f !important;\n}\n\n.cyan.darken-4 {\n background-color: #006064 !important;\n}\n\n.cyan-text.text-darken-4 {\n color: #006064 !important;\n}\n\n.cyan-waves.waves-darken-4 .waves-ripple {\n background-color: #006064 !important;\n}\n\n.cyan.accent-1 {\n background-color: #84ffff !important;\n}\n\n.cyan-text.text-accent-1 {\n color: #84ffff !important;\n}\n\n.cyan-waves.waves-accent-1 .waves-ripple {\n background-color: #84ffff !important;\n}\n\n.cyan.accent-2 {\n background-color: #18ffff !important;\n}\n\n.cyan-text.text-accent-2 {\n color: #18ffff !important;\n}\n\n.cyan-waves.waves-accent-2 .waves-ripple {\n background-color: #18ffff !important;\n}\n\n.cyan.accent-3 {\n background-color: #00e5ff !important;\n}\n\n.cyan-text.text-accent-3 {\n color: #00e5ff !important;\n}\n\n.cyan-waves.waves-accent-3 .waves-ripple {\n background-color: #00e5ff !important;\n}\n\n.cyan.accent-4 {\n background-color: #00b8d4 !important;\n}\n\n.cyan-text.text-accent-4 {\n color: #00b8d4 !important;\n}\n\n.cyan-waves.waves-accent-4 .waves-ripple {\n background-color: #00b8d4 !important;\n}\n\n.teal {\n background-color: #009688 !important;\n}\n\n.teal-text {\n color: #009688 !important;\n}\n\n.teal-waves .waves-ripple {\n background-color: #009688 !important;\n}\n\n.teal.lighten-5 {\n background-color: #e0f2f1 !important;\n}\n\n.teal-text.text-lighten-5 {\n color: #e0f2f1 !important;\n}\n\n.teal-waves.waves-lighten-5 .waves-ripple {\n background-color: #e0f2f1 !important;\n}\n\n.teal.lighten-4 {\n background-color: #b2dfdb !important;\n}\n\n.teal-text.text-lighten-4 {\n color: #b2dfdb !important;\n}\n\n.teal-waves.waves-lighten-4 .waves-ripple {\n background-color: #b2dfdb !important;\n}\n\n.teal.lighten-3 {\n background-color: #80cbc4 !important;\n}\n\n.teal-text.text-lighten-3 {\n color: #80cbc4 !important;\n}\n\n.teal-waves.waves-lighten-3 .waves-ripple {\n background-color: #80cbc4 !important;\n}\n\n.teal.lighten-2 {\n background-color: #4db6ac !important;\n}\n\n.teal-text.text-lighten-2 {\n color: #4db6ac !important;\n}\n\n.teal-waves.waves-lighten-2 .waves-ripple {\n background-color: #4db6ac !important;\n}\n\n.teal.lighten-1 {\n background-color: #26a69a !important;\n}\n\n.teal-text.text-lighten-1 {\n color: #26a69a !important;\n}\n\n.teal-waves.waves-lighten-1 .waves-ripple {\n background-color: #26a69a !important;\n}\n\n.teal.darken-1 {\n background-color: #00897b !important;\n}\n\n.teal-text.text-darken-1 {\n color: #00897b !important;\n}\n\n.teal-waves.waves-darken-1 .waves-ripple {\n background-color: #00897b !important;\n}\n\n.teal.darken-2 {\n background-color: #00796b !important;\n}\n\n.teal-text.text-darken-2 {\n color: #00796b !important;\n}\n\n.teal-waves.waves-darken-2 .waves-ripple {\n background-color: #00796b !important;\n}\n\n.teal.darken-3 {\n background-color: #00695c !important;\n}\n\n.teal-text.text-darken-3 {\n color: #00695c !important;\n}\n\n.teal-waves.waves-darken-3 .waves-ripple {\n background-color: #00695c !important;\n}\n\n.teal.darken-4 {\n background-color: #004d40 !important;\n}\n\n.teal-text.text-darken-4 {\n color: #004d40 !important;\n}\n\n.teal-waves.waves-darken-4 .waves-ripple {\n background-color: #004d40 !important;\n}\n\n.teal.accent-1 {\n background-color: #a7ffeb !important;\n}\n\n.teal-text.text-accent-1 {\n color: #a7ffeb !important;\n}\n\n.teal-waves.waves-accent-1 .waves-ripple {\n background-color: #a7ffeb !important;\n}\n\n.teal.accent-2 {\n background-color: #64ffda !important;\n}\n\n.teal-text.text-accent-2 {\n color: #64ffda !important;\n}\n\n.teal-waves.waves-accent-2 .waves-ripple {\n background-color: #64ffda !important;\n}\n\n.teal.accent-3 {\n background-color: #1de9b6 !important;\n}\n\n.teal-text.text-accent-3 {\n color: #1de9b6 !important;\n}\n\n.teal-waves.waves-accent-3 .waves-ripple {\n background-color: #1de9b6 !important;\n}\n\n.teal.accent-4 {\n background-color: #00bfa5 !important;\n}\n\n.teal-text.text-accent-4 {\n color: #00bfa5 !important;\n}\n\n.teal-waves.waves-accent-4 .waves-ripple {\n background-color: #00bfa5 !important;\n}\n\n.green {\n background-color: #4caf50 !important;\n}\n\n.green-text {\n color: #4caf50 !important;\n}\n\n.green-waves .waves-ripple {\n background-color: #4caf50 !important;\n}\n\n.green.lighten-5 {\n background-color: #e8f5e9 !important;\n}\n\n.green-text.text-lighten-5 {\n color: #e8f5e9 !important;\n}\n\n.green-waves.waves-lighten-5 .waves-ripple {\n background-color: #e8f5e9 !important;\n}\n\n.green.lighten-4 {\n background-color: #c8e6c9 !important;\n}\n\n.green-text.text-lighten-4 {\n color: #c8e6c9 !important;\n}\n\n.green-waves.waves-lighten-4 .waves-ripple {\n background-color: #c8e6c9 !important;\n}\n\n.green.lighten-3 {\n background-color: #a5d6a7 !important;\n}\n\n.green-text.text-lighten-3 {\n color: #a5d6a7 !important;\n}\n\n.green-waves.waves-lighten-3 .waves-ripple {\n background-color: #a5d6a7 !important;\n}\n\n.green.lighten-2 {\n background-color: #81c784 !important;\n}\n\n.green-text.text-lighten-2 {\n color: #81c784 !important;\n}\n\n.green-waves.waves-lighten-2 .waves-ripple {\n background-color: #81c784 !important;\n}\n\n.green.lighten-1 {\n background-color: #66bb6a !important;\n}\n\n.green-text.text-lighten-1 {\n color: #66bb6a !important;\n}\n\n.green-waves.waves-lighten-1 .waves-ripple {\n background-color: #66bb6a !important;\n}\n\n.green.darken-1 {\n background-color: #43a047 !important;\n}\n\n.green-text.text-darken-1 {\n color: #43a047 !important;\n}\n\n.green-waves.waves-darken-1 .waves-ripple {\n background-color: #43a047 !important;\n}\n\n.green.darken-2 {\n background-color: #388e3c !important;\n}\n\n.green-text.text-darken-2 {\n color: #388e3c !important;\n}\n\n.green-waves.waves-darken-2 .waves-ripple {\n background-color: #388e3c !important;\n}\n\n.green.darken-3 {\n background-color: #2e7d32 !important;\n}\n\n.green-text.text-darken-3 {\n color: #2e7d32 !important;\n}\n\n.green-waves.waves-darken-3 .waves-ripple {\n background-color: #2e7d32 !important;\n}\n\n.green.darken-4 {\n background-color: #1b5e20 !important;\n}\n\n.green-text.text-darken-4 {\n color: #1b5e20 !important;\n}\n\n.green-waves.waves-darken-4 .waves-ripple {\n background-color: #1b5e20 !important;\n}\n\n.green.accent-1 {\n background-color: #b9f6ca !important;\n}\n\n.green-text.text-accent-1 {\n color: #b9f6ca !important;\n}\n\n.green-waves.waves-accent-1 .waves-ripple {\n background-color: #b9f6ca !important;\n}\n\n.green.accent-2 {\n background-color: #69f0ae !important;\n}\n\n.green-text.text-accent-2 {\n color: #69f0ae !important;\n}\n\n.green-waves.waves-accent-2 .waves-ripple {\n background-color: #69f0ae !important;\n}\n\n.green.accent-3 {\n background-color: #00e676 !important;\n}\n\n.green-text.text-accent-3 {\n color: #00e676 !important;\n}\n\n.green-waves.waves-accent-3 .waves-ripple {\n background-color: #00e676 !important;\n}\n\n.green.accent-4 {\n background-color: #00c853 !important;\n}\n\n.green-text.text-accent-4 {\n color: #00c853 !important;\n}\n\n.green-waves.waves-accent-4 .waves-ripple {\n background-color: #00c853 !important;\n}\n\n.light-green {\n background-color: #8bc34a !important;\n}\n\n.light-green-text {\n color: #8bc34a !important;\n}\n\n.light-green-waves .waves-ripple {\n background-color: #8bc34a !important;\n}\n\n.light-green.lighten-5 {\n background-color: #f1f8e9 !important;\n}\n\n.light-green-text.text-lighten-5 {\n color: #f1f8e9 !important;\n}\n\n.light-green-waves.waves-lighten-5 .waves-ripple {\n background-color: #f1f8e9 !important;\n}\n\n.light-green.lighten-4 {\n background-color: #dcedc8 !important;\n}\n\n.light-green-text.text-lighten-4 {\n color: #dcedc8 !important;\n}\n\n.light-green-waves.waves-lighten-4 .waves-ripple {\n background-color: #dcedc8 !important;\n}\n\n.light-green.lighten-3 {\n background-color: #c5e1a5 !important;\n}\n\n.light-green-text.text-lighten-3 {\n color: #c5e1a5 !important;\n}\n\n.light-green-waves.waves-lighten-3 .waves-ripple {\n background-color: #c5e1a5 !important;\n}\n\n.light-green.lighten-2 {\n background-color: #aed581 !important;\n}\n\n.light-green-text.text-lighten-2 {\n color: #aed581 !important;\n}\n\n.light-green-waves.waves-lighten-2 .waves-ripple {\n background-color: #aed581 !important;\n}\n\n.light-green.lighten-1 {\n background-color: #9ccc65 !important;\n}\n\n.light-green-text.text-lighten-1 {\n color: #9ccc65 !important;\n}\n\n.light-green-waves.waves-lighten-1 .waves-ripple {\n background-color: #9ccc65 !important;\n}\n\n.light-green.darken-1 {\n background-color: #7cb342 !important;\n}\n\n.light-green-text.text-darken-1 {\n color: #7cb342 !important;\n}\n\n.light-green-waves.waves-darken-1 .waves-ripple {\n background-color: #7cb342 !important;\n}\n\n.light-green.darken-2 {\n background-color: #689f38 !important;\n}\n\n.light-green-text.text-darken-2 {\n color: #689f38 !important;\n}\n\n.light-green-waves.waves-darken-2 .waves-ripple {\n background-color: #689f38 !important;\n}\n\n.light-green.darken-3 {\n background-color: #558b2f !important;\n}\n\n.light-green-text.text-darken-3 {\n color: #558b2f !important;\n}\n\n.light-green-waves.waves-darken-3 .waves-ripple {\n background-color: #558b2f !important;\n}\n\n.light-green.darken-4 {\n background-color: #33691e !important;\n}\n\n.light-green-text.text-darken-4 {\n color: #33691e !important;\n}\n\n.light-green-waves.waves-darken-4 .waves-ripple {\n background-color: #33691e !important;\n}\n\n.light-green.accent-1 {\n background-color: #ccff90 !important;\n}\n\n.light-green-text.text-accent-1 {\n color: #ccff90 !important;\n}\n\n.light-green-waves.waves-accent-1 .waves-ripple {\n background-color: #ccff90 !important;\n}\n\n.light-green.accent-2 {\n background-color: #b2ff59 !important;\n}\n\n.light-green-text.text-accent-2 {\n color: #b2ff59 !important;\n}\n\n.light-green-waves.waves-accent-2 .waves-ripple {\n background-color: #b2ff59 !important;\n}\n\n.light-green.accent-3 {\n background-color: #76ff03 !important;\n}\n\n.light-green-text.text-accent-3 {\n color: #76ff03 !important;\n}\n\n.light-green-waves.waves-accent-3 .waves-ripple {\n background-color: #76ff03 !important;\n}\n\n.light-green.accent-4 {\n background-color: #64dd17 !important;\n}\n\n.light-green-text.text-accent-4 {\n color: #64dd17 !important;\n}\n\n.light-green-waves.waves-accent-4 .waves-ripple {\n background-color: #64dd17 !important;\n}\n\n.lime {\n background-color: #cddc39 !important;\n}\n\n.lime-text {\n color: #cddc39 !important;\n}\n\n.lime-waves .waves-ripple {\n background-color: #cddc39 !important;\n}\n\n.lime.lighten-5 {\n background-color: #f9fbe7 !important;\n}\n\n.lime-text.text-lighten-5 {\n color: #f9fbe7 !important;\n}\n\n.lime-waves.waves-lighten-5 .waves-ripple {\n background-color: #f9fbe7 !important;\n}\n\n.lime.lighten-4 {\n background-color: #f0f4c3 !important;\n}\n\n.lime-text.text-lighten-4 {\n color: #f0f4c3 !important;\n}\n\n.lime-waves.waves-lighten-4 .waves-ripple {\n background-color: #f0f4c3 !important;\n}\n\n.lime.lighten-3 {\n background-color: #e6ee9c !important;\n}\n\n.lime-text.text-lighten-3 {\n color: #e6ee9c !important;\n}\n\n.lime-waves.waves-lighten-3 .waves-ripple {\n background-color: #e6ee9c !important;\n}\n\n.lime.lighten-2 {\n background-color: #dce775 !important;\n}\n\n.lime-text.text-lighten-2 {\n color: #dce775 !important;\n}\n\n.lime-waves.waves-lighten-2 .waves-ripple {\n background-color: #dce775 !important;\n}\n\n.lime.lighten-1 {\n background-color: #d4e157 !important;\n}\n\n.lime-text.text-lighten-1 {\n color: #d4e157 !important;\n}\n\n.lime-waves.waves-lighten-1 .waves-ripple {\n background-color: #d4e157 !important;\n}\n\n.lime.darken-1 {\n background-color: #c0ca33 !important;\n}\n\n.lime-text.text-darken-1 {\n color: #c0ca33 !important;\n}\n\n.lime-waves.waves-darken-1 .waves-ripple {\n background-color: #c0ca33 !important;\n}\n\n.lime.darken-2 {\n background-color: #afb42b !important;\n}\n\n.lime-text.text-darken-2 {\n color: #afb42b !important;\n}\n\n.lime-waves.waves-darken-2 .waves-ripple {\n background-color: #afb42b !important;\n}\n\n.lime.darken-3 {\n background-color: #9e9d24 !important;\n}\n\n.lime-text.text-darken-3 {\n color: #9e9d24 !important;\n}\n\n.lime-waves.waves-darken-3 .waves-ripple {\n background-color: #9e9d24 !important;\n}\n\n.lime.darken-4 {\n background-color: #827717 !important;\n}\n\n.lime-text.text-darken-4 {\n color: #827717 !important;\n}\n\n.lime-waves.waves-darken-4 .waves-ripple {\n background-color: #827717 !important;\n}\n\n.lime.accent-1 {\n background-color: #f4ff81 !important;\n}\n\n.lime-text.text-accent-1 {\n color: #f4ff81 !important;\n}\n\n.lime-waves.waves-accent-1 .waves-ripple {\n background-color: #f4ff81 !important;\n}\n\n.lime.accent-2 {\n background-color: #eeff41 !important;\n}\n\n.lime-text.text-accent-2 {\n color: #eeff41 !important;\n}\n\n.lime-waves.waves-accent-2 .waves-ripple {\n background-color: #eeff41 !important;\n}\n\n.lime.accent-3 {\n background-color: #c6ff00 !important;\n}\n\n.lime-text.text-accent-3 {\n color: #c6ff00 !important;\n}\n\n.lime-waves.waves-accent-3 .waves-ripple {\n background-color: #c6ff00 !important;\n}\n\n.lime.accent-4 {\n background-color: #aeea00 !important;\n}\n\n.lime-text.text-accent-4 {\n color: #aeea00 !important;\n}\n\n.lime-waves.waves-accent-4 .waves-ripple {\n background-color: #aeea00 !important;\n}\n\n.yellow {\n background-color: #ffeb3b !important;\n}\n\n.yellow-text {\n color: #ffeb3b !important;\n}\n\n.yellow-waves .waves-ripple {\n background-color: #ffeb3b !important;\n}\n\n.yellow.lighten-5 {\n background-color: #fffde7 !important;\n}\n\n.yellow-text.text-lighten-5 {\n color: #fffde7 !important;\n}\n\n.yellow-waves.waves-lighten-5 .waves-ripple {\n background-color: #fffde7 !important;\n}\n\n.yellow.lighten-4 {\n background-color: #fff9c4 !important;\n}\n\n.yellow-text.text-lighten-4 {\n color: #fff9c4 !important;\n}\n\n.yellow-waves.waves-lighten-4 .waves-ripple {\n background-color: #fff9c4 !important;\n}\n\n.yellow.lighten-3 {\n background-color: #fff59d !important;\n}\n\n.yellow-text.text-lighten-3 {\n color: #fff59d !important;\n}\n\n.yellow-waves.waves-lighten-3 .waves-ripple {\n background-color: #fff59d !important;\n}\n\n.yellow.lighten-2 {\n background-color: #fff176 !important;\n}\n\n.yellow-text.text-lighten-2 {\n color: #fff176 !important;\n}\n\n.yellow-waves.waves-lighten-2 .waves-ripple {\n background-color: #fff176 !important;\n}\n\n.yellow.lighten-1 {\n background-color: #ffee58 !important;\n}\n\n.yellow-text.text-lighten-1 {\n color: #ffee58 !important;\n}\n\n.yellow-waves.waves-lighten-1 .waves-ripple {\n background-color: #ffee58 !important;\n}\n\n.yellow.darken-1 {\n background-color: #fdd835 !important;\n}\n\n.yellow-text.text-darken-1 {\n color: #fdd835 !important;\n}\n\n.yellow-waves.waves-darken-1 .waves-ripple {\n background-color: #fdd835 !important;\n}\n\n.yellow.darken-2 {\n background-color: #fbc02d !important;\n}\n\n.yellow-text.text-darken-2 {\n color: #fbc02d !important;\n}\n\n.yellow-waves.waves-darken-2 .waves-ripple {\n background-color: #fbc02d !important;\n}\n\n.yellow.darken-3 {\n background-color: #f9a825 !important;\n}\n\n.yellow-text.text-darken-3 {\n color: #f9a825 !important;\n}\n\n.yellow-waves.waves-darken-3 .waves-ripple {\n background-color: #f9a825 !important;\n}\n\n.yellow.darken-4 {\n background-color: #f57f17 !important;\n}\n\n.yellow-text.text-darken-4 {\n color: #f57f17 !important;\n}\n\n.yellow-waves.waves-darken-4 .waves-ripple {\n background-color: #f57f17 !important;\n}\n\n.yellow.accent-1 {\n background-color: #ffff8d !important;\n}\n\n.yellow-text.text-accent-1 {\n color: #ffff8d !important;\n}\n\n.yellow-waves.waves-accent-1 .waves-ripple {\n background-color: #ffff8d !important;\n}\n\n.yellow.accent-2 {\n background-color: #ffff00 !important;\n}\n\n.yellow-text.text-accent-2 {\n color: #ffff00 !important;\n}\n\n.yellow-waves.waves-accent-2 .waves-ripple {\n background-color: #ffff00 !important;\n}\n\n.yellow.accent-3 {\n background-color: #ffea00 !important;\n}\n\n.yellow-text.text-accent-3 {\n color: #ffea00 !important;\n}\n\n.yellow-waves.waves-accent-3 .waves-ripple {\n background-color: #ffea00 !important;\n}\n\n.yellow.accent-4 {\n background-color: #ffd600 !important;\n}\n\n.yellow-text.text-accent-4 {\n color: #ffd600 !important;\n}\n\n.yellow-waves.waves-accent-4 .waves-ripple {\n background-color: #ffd600 !important;\n}\n\n.amber {\n background-color: #ffc107 !important;\n}\n\n.amber-text {\n color: #ffc107 !important;\n}\n\n.amber-waves .waves-ripple {\n background-color: #ffc107 !important;\n}\n\n.amber.lighten-5 {\n background-color: #fff8e1 !important;\n}\n\n.amber-text.text-lighten-5 {\n color: #fff8e1 !important;\n}\n\n.amber-waves.waves-lighten-5 .waves-ripple {\n background-color: #fff8e1 !important;\n}\n\n.amber.lighten-4 {\n background-color: #ffecb3 !important;\n}\n\n.amber-text.text-lighten-4 {\n color: #ffecb3 !important;\n}\n\n.amber-waves.waves-lighten-4 .waves-ripple {\n background-color: #ffecb3 !important;\n}\n\n.amber.lighten-3 {\n background-color: #ffe082 !important;\n}\n\n.amber-text.text-lighten-3 {\n color: #ffe082 !important;\n}\n\n.amber-waves.waves-lighten-3 .waves-ripple {\n background-color: #ffe082 !important;\n}\n\n.amber.lighten-2 {\n background-color: #ffd54f !important;\n}\n\n.amber-text.text-lighten-2 {\n color: #ffd54f !important;\n}\n\n.amber-waves.waves-lighten-2 .waves-ripple {\n background-color: #ffd54f !important;\n}\n\n.amber.lighten-1 {\n background-color: #ffca28 !important;\n}\n\n.amber-text.text-lighten-1 {\n color: #ffca28 !important;\n}\n\n.amber-waves.waves-lighten-1 .waves-ripple {\n background-color: #ffca28 !important;\n}\n\n.amber.darken-1 {\n background-color: #ffb300 !important;\n}\n\n.amber-text.text-darken-1 {\n color: #ffb300 !important;\n}\n\n.amber-waves.waves-darken-1 .waves-ripple {\n background-color: #ffb300 !important;\n}\n\n.amber.darken-2 {\n background-color: #ffa000 !important;\n}\n\n.amber-text.text-darken-2 {\n color: #ffa000 !important;\n}\n\n.amber-waves.waves-darken-2 .waves-ripple {\n background-color: #ffa000 !important;\n}\n\n.amber.darken-3 {\n background-color: #ff8f00 !important;\n}\n\n.amber-text.text-darken-3 {\n color: #ff8f00 !important;\n}\n\n.amber-waves.waves-darken-3 .waves-ripple {\n background-color: #ff8f00 !important;\n}\n\n.amber.darken-4 {\n background-color: #ff6f00 !important;\n}\n\n.amber-text.text-darken-4 {\n color: #ff6f00 !important;\n}\n\n.amber-waves.waves-darken-4 .waves-ripple {\n background-color: #ff6f00 !important;\n}\n\n.amber.accent-1 {\n background-color: #ffe57f !important;\n}\n\n.amber-text.text-accent-1 {\n color: #ffe57f !important;\n}\n\n.amber-waves.waves-accent-1 .waves-ripple {\n background-color: #ffe57f !important;\n}\n\n.amber.accent-2 {\n background-color: #ffd740 !important;\n}\n\n.amber-text.text-accent-2 {\n color: #ffd740 !important;\n}\n\n.amber-waves.waves-accent-2 .waves-ripple {\n background-color: #ffd740 !important;\n}\n\n.amber.accent-3 {\n background-color: #ffc400 !important;\n}\n\n.amber-text.text-accent-3 {\n color: #ffc400 !important;\n}\n\n.amber-waves.waves-accent-3 .waves-ripple {\n background-color: #ffc400 !important;\n}\n\n.amber.accent-4 {\n background-color: #ffab00 !important;\n}\n\n.amber-text.text-accent-4 {\n color: #ffab00 !important;\n}\n\n.amber-waves.waves-accent-4 .waves-ripple {\n background-color: #ffab00 !important;\n}\n\n.orange {\n background-color: #ff9800 !important;\n}\n\n.orange-text {\n color: #ff9800 !important;\n}\n\n.orange-waves .waves-ripple {\n background-color: #ff9800 !important;\n}\n\n.orange.lighten-5 {\n background-color: #fff3e0 !important;\n}\n\n.orange-text.text-lighten-5 {\n color: #fff3e0 !important;\n}\n\n.orange-waves.waves-lighten-5 .waves-ripple {\n background-color: #fff3e0 !important;\n}\n\n.orange.lighten-4 {\n background-color: #ffe0b2 !important;\n}\n\n.orange-text.text-lighten-4 {\n color: #ffe0b2 !important;\n}\n\n.orange-waves.waves-lighten-4 .waves-ripple {\n background-color: #ffe0b2 !important;\n}\n\n.orange.lighten-3 {\n background-color: #ffcc80 !important;\n}\n\n.orange-text.text-lighten-3 {\n color: #ffcc80 !important;\n}\n\n.orange-waves.waves-lighten-3 .waves-ripple {\n background-color: #ffcc80 !important;\n}\n\n.orange.lighten-2 {\n background-color: #ffb74d !important;\n}\n\n.orange-text.text-lighten-2 {\n color: #ffb74d !important;\n}\n\n.orange-waves.waves-lighten-2 .waves-ripple {\n background-color: #ffb74d !important;\n}\n\n.orange.lighten-1 {\n background-color: #ffa726 !important;\n}\n\n.orange-text.text-lighten-1 {\n color: #ffa726 !important;\n}\n\n.orange-waves.waves-lighten-1 .waves-ripple {\n background-color: #ffa726 !important;\n}\n\n.orange.darken-1 {\n background-color: #fb8c00 !important;\n}\n\n.orange-text.text-darken-1 {\n color: #fb8c00 !important;\n}\n\n.orange-waves.waves-darken-1 .waves-ripple {\n background-color: #fb8c00 !important;\n}\n\n.orange.darken-2 {\n background-color: #f57c00 !important;\n}\n\n.orange-text.text-darken-2 {\n color: #f57c00 !important;\n}\n\n.orange-waves.waves-darken-2 .waves-ripple {\n background-color: #f57c00 !important;\n}\n\n.orange.darken-3 {\n background-color: #ef6c00 !important;\n}\n\n.orange-text.text-darken-3 {\n color: #ef6c00 !important;\n}\n\n.orange-waves.waves-darken-3 .waves-ripple {\n background-color: #ef6c00 !important;\n}\n\n.orange.darken-4 {\n background-color: #e65100 !important;\n}\n\n.orange-text.text-darken-4 {\n color: #e65100 !important;\n}\n\n.orange-waves.waves-darken-4 .waves-ripple {\n background-color: #e65100 !important;\n}\n\n.orange.accent-1 {\n background-color: #ffd180 !important;\n}\n\n.orange-text.text-accent-1 {\n color: #ffd180 !important;\n}\n\n.orange-waves.waves-accent-1 .waves-ripple {\n background-color: #ffd180 !important;\n}\n\n.orange.accent-2 {\n background-color: #ffab40 !important;\n}\n\n.orange-text.text-accent-2 {\n color: #ffab40 !important;\n}\n\n.orange-waves.waves-accent-2 .waves-ripple {\n background-color: #ffab40 !important;\n}\n\n.orange.accent-3 {\n background-color: #ff9100 !important;\n}\n\n.orange-text.text-accent-3 {\n color: #ff9100 !important;\n}\n\n.orange-waves.waves-accent-3 .waves-ripple {\n background-color: #ff9100 !important;\n}\n\n.orange.accent-4 {\n background-color: #ff6d00 !important;\n}\n\n.orange-text.text-accent-4 {\n color: #ff6d00 !important;\n}\n\n.orange-waves.waves-accent-4 .waves-ripple {\n background-color: #ff6d00 !important;\n}\n\n.deep-orange {\n background-color: #ff5722 !important;\n}\n\n.deep-orange-text {\n color: #ff5722 !important;\n}\n\n.deep-orange-waves .waves-ripple {\n background-color: #ff5722 !important;\n}\n\n.deep-orange.lighten-5 {\n background-color: #fbe9e7 !important;\n}\n\n.deep-orange-text.text-lighten-5 {\n color: #fbe9e7 !important;\n}\n\n.deep-orange-waves.waves-lighten-5 .waves-ripple {\n background-color: #fbe9e7 !important;\n}\n\n.deep-orange.lighten-4 {\n background-color: #ffccbc !important;\n}\n\n.deep-orange-text.text-lighten-4 {\n color: #ffccbc !important;\n}\n\n.deep-orange-waves.waves-lighten-4 .waves-ripple {\n background-color: #ffccbc !important;\n}\n\n.deep-orange.lighten-3 {\n background-color: #ffab91 !important;\n}\n\n.deep-orange-text.text-lighten-3 {\n color: #ffab91 !important;\n}\n\n.deep-orange-waves.waves-lighten-3 .waves-ripple {\n background-color: #ffab91 !important;\n}\n\n.deep-orange.lighten-2 {\n background-color: #ff8a65 !important;\n}\n\n.deep-orange-text.text-lighten-2 {\n color: #ff8a65 !important;\n}\n\n.deep-orange-waves.waves-lighten-2 .waves-ripple {\n background-color: #ff8a65 !important;\n}\n\n.deep-orange.lighten-1 {\n background-color: #ff7043 !important;\n}\n\n.deep-orange-text.text-lighten-1 {\n color: #ff7043 !important;\n}\n\n.deep-orange-waves.waves-lighten-1 .waves-ripple {\n background-color: #ff7043 !important;\n}\n\n.deep-orange.darken-1 {\n background-color: #f4511e !important;\n}\n\n.deep-orange-text.text-darken-1 {\n color: #f4511e !important;\n}\n\n.deep-orange-waves.waves-darken-1 .waves-ripple {\n background-color: #f4511e !important;\n}\n\n.deep-orange.darken-2 {\n background-color: #e64a19 !important;\n}\n\n.deep-orange-text.text-darken-2 {\n color: #e64a19 !important;\n}\n\n.deep-orange-waves.waves-darken-2 .waves-ripple {\n background-color: #e64a19 !important;\n}\n\n.deep-orange.darken-3 {\n background-color: #d84315 !important;\n}\n\n.deep-orange-text.text-darken-3 {\n color: #d84315 !important;\n}\n\n.deep-orange-waves.waves-darken-3 .waves-ripple {\n background-color: #d84315 !important;\n}\n\n.deep-orange.darken-4 {\n background-color: #bf360c !important;\n}\n\n.deep-orange-text.text-darken-4 {\n color: #bf360c !important;\n}\n\n.deep-orange-waves.waves-darken-4 .waves-ripple {\n background-color: #bf360c !important;\n}\n\n.deep-orange.accent-1 {\n background-color: #ff9e80 !important;\n}\n\n.deep-orange-text.text-accent-1 {\n color: #ff9e80 !important;\n}\n\n.deep-orange-waves.waves-accent-1 .waves-ripple {\n background-color: #ff9e80 !important;\n}\n\n.deep-orange.accent-2 {\n background-color: #ff6e40 !important;\n}\n\n.deep-orange-text.text-accent-2 {\n color: #ff6e40 !important;\n}\n\n.deep-orange-waves.waves-accent-2 .waves-ripple {\n background-color: #ff6e40 !important;\n}\n\n.deep-orange.accent-3 {\n background-color: #ff3d00 !important;\n}\n\n.deep-orange-text.text-accent-3 {\n color: #ff3d00 !important;\n}\n\n.deep-orange-waves.waves-accent-3 .waves-ripple {\n background-color: #ff3d00 !important;\n}\n\n.deep-orange.accent-4 {\n background-color: #dd2c00 !important;\n}\n\n.deep-orange-text.text-accent-4 {\n color: #dd2c00 !important;\n}\n\n.deep-orange-waves.waves-accent-4 .waves-ripple {\n background-color: #dd2c00 !important;\n}\n\n.brown {\n background-color: #795548 !important;\n}\n\n.brown-text {\n color: #795548 !important;\n}\n\n.brown-waves .waves-ripple {\n background-color: #795548 !important;\n}\n\n.brown.lighten-5 {\n background-color: #efebe9 !important;\n}\n\n.brown-text.text-lighten-5 {\n color: #efebe9 !important;\n}\n\n.brown-waves.waves-lighten-5 .waves-ripple {\n background-color: #efebe9 !important;\n}\n\n.brown.lighten-4 {\n background-color: #d7ccc8 !important;\n}\n\n.brown-text.text-lighten-4 {\n color: #d7ccc8 !important;\n}\n\n.brown-waves.waves-lighten-4 .waves-ripple {\n background-color: #d7ccc8 !important;\n}\n\n.brown.lighten-3 {\n background-color: #bcaaa4 !important;\n}\n\n.brown-text.text-lighten-3 {\n color: #bcaaa4 !important;\n}\n\n.brown-waves.waves-lighten-3 .waves-ripple {\n background-color: #bcaaa4 !important;\n}\n\n.brown.lighten-2 {\n background-color: #a1887f !important;\n}\n\n.brown-text.text-lighten-2 {\n color: #a1887f !important;\n}\n\n.brown-waves.waves-lighten-2 .waves-ripple {\n background-color: #a1887f !important;\n}\n\n.brown.lighten-1 {\n background-color: #8d6e63 !important;\n}\n\n.brown-text.text-lighten-1 {\n color: #8d6e63 !important;\n}\n\n.brown-waves.waves-lighten-1 .waves-ripple {\n background-color: #8d6e63 !important;\n}\n\n.brown.darken-1 {\n background-color: #6d4c41 !important;\n}\n\n.brown-text.text-darken-1 {\n color: #6d4c41 !important;\n}\n\n.brown-waves.waves-darken-1 .waves-ripple {\n background-color: #6d4c41 !important;\n}\n\n.brown.darken-2 {\n background-color: #5d4037 !important;\n}\n\n.brown-text.text-darken-2 {\n color: #5d4037 !important;\n}\n\n.brown-waves.waves-darken-2 .waves-ripple {\n background-color: #5d4037 !important;\n}\n\n.brown.darken-3 {\n background-color: #4e342e !important;\n}\n\n.brown-text.text-darken-3 {\n color: #4e342e !important;\n}\n\n.brown-waves.waves-darken-3 .waves-ripple {\n background-color: #4e342e !important;\n}\n\n.brown.darken-4 {\n background-color: #3e2723 !important;\n}\n\n.brown-text.text-darken-4 {\n color: #3e2723 !important;\n}\n\n.brown-waves.waves-darken-4 .waves-ripple {\n background-color: #3e2723 !important;\n}\n\n.blue-grey {\n background-color: #607d8b !important;\n}\n\n.blue-grey-text {\n color: #607d8b !important;\n}\n\n.blue-grey-waves .waves-ripple {\n background-color: #607d8b !important;\n}\n\n.blue-grey.lighten-5 {\n background-color: #eceff1 !important;\n}\n\n.blue-grey-text.text-lighten-5 {\n color: #eceff1 !important;\n}\n\n.blue-grey-waves.waves-lighten-5 .waves-ripple {\n background-color: #eceff1 !important;\n}\n\n.blue-grey.lighten-4 {\n background-color: #cfd8dc !important;\n}\n\n.blue-grey-text.text-lighten-4 {\n color: #cfd8dc !important;\n}\n\n.blue-grey-waves.waves-lighten-4 .waves-ripple {\n background-color: #cfd8dc !important;\n}\n\n.blue-grey.lighten-3 {\n background-color: #b0bec5 !important;\n}\n\n.blue-grey-text.text-lighten-3 {\n color: #b0bec5 !important;\n}\n\n.blue-grey-waves.waves-lighten-3 .waves-ripple {\n background-color: #b0bec5 !important;\n}\n\n.blue-grey.lighten-2 {\n background-color: #90a4ae !important;\n}\n\n.blue-grey-text.text-lighten-2 {\n color: #90a4ae !important;\n}\n\n.blue-grey-waves.waves-lighten-2 .waves-ripple {\n background-color: #90a4ae !important;\n}\n\n.blue-grey.lighten-1 {\n background-color: #78909c !important;\n}\n\n.blue-grey-text.text-lighten-1 {\n color: #78909c !important;\n}\n\n.blue-grey-waves.waves-lighten-1 .waves-ripple {\n background-color: #78909c !important;\n}\n\n.blue-grey.darken-1 {\n background-color: #546e7a !important;\n}\n\n.blue-grey-text.text-darken-1 {\n color: #546e7a !important;\n}\n\n.blue-grey-waves.waves-darken-1 .waves-ripple {\n background-color: #546e7a !important;\n}\n\n.blue-grey.darken-2 {\n background-color: #455a64 !important;\n}\n\n.blue-grey-text.text-darken-2 {\n color: #455a64 !important;\n}\n\n.blue-grey-waves.waves-darken-2 .waves-ripple {\n background-color: #455a64 !important;\n}\n\n.blue-grey.darken-3 {\n background-color: #37474f !important;\n}\n\n.blue-grey-text.text-darken-3 {\n color: #37474f !important;\n}\n\n.blue-grey-waves.waves-darken-3 .waves-ripple {\n background-color: #37474f !important;\n}\n\n.blue-grey.darken-4 {\n background-color: #263238 !important;\n}\n\n.blue-grey-text.text-darken-4 {\n color: #263238 !important;\n}\n\n.blue-grey-waves.waves-darken-4 .waves-ripple {\n background-color: #263238 !important;\n}\n\n.grey {\n background-color: #9e9e9e !important;\n}\n\n.grey-text {\n color: #9e9e9e !important;\n}\n\n.grey-waves .waves-ripple {\n background-color: #9e9e9e !important;\n}\n\n.grey.lighten-5 {\n background-color: #fafafa !important;\n}\n\n.grey-text.text-lighten-5 {\n color: #fafafa !important;\n}\n\n.grey-waves.waves-lighten-5 .waves-ripple {\n background-color: #fafafa !important;\n}\n\n.grey.lighten-4 {\n background-color: #f5f5f5 !important;\n}\n\n.grey-text.text-lighten-4 {\n color: #f5f5f5 !important;\n}\n\n.grey-waves.waves-lighten-4 .waves-ripple {\n background-color: #f5f5f5 !important;\n}\n\n.grey.lighten-3 {\n background-color: #eeeeee !important;\n}\n\n.grey-text.text-lighten-3 {\n color: #eeeeee !important;\n}\n\n.grey-waves.waves-lighten-3 .waves-ripple {\n background-color: #eeeeee !important;\n}\n\n.grey.lighten-2 {\n background-color: #e0e0e0 !important;\n}\n\n.grey-text.text-lighten-2 {\n color: #e0e0e0 !important;\n}\n\n.grey-waves.waves-lighten-2 .waves-ripple {\n background-color: #e0e0e0 !important;\n}\n\n.grey.lighten-1 {\n background-color: #bdbdbd !important;\n}\n\n.grey-text.text-lighten-1 {\n color: #bdbdbd !important;\n}\n\n.grey-waves.waves-lighten-1 .waves-ripple {\n background-color: #bdbdbd !important;\n}\n\n.grey.darken-1 {\n background-color: #757575 !important;\n}\n\n.grey-text.text-darken-1 {\n color: #757575 !important;\n}\n\n.grey-waves.waves-darken-1 .waves-ripple {\n background-color: #757575 !important;\n}\n\n.grey.darken-2 {\n background-color: #616161 !important;\n}\n\n.grey-text.text-darken-2 {\n color: #616161 !important;\n}\n\n.grey-waves.waves-darken-2 .waves-ripple {\n background-color: #616161 !important;\n}\n\n.grey.darken-3 {\n background-color: #424242 !important;\n}\n\n.grey-text.text-darken-3 {\n color: #424242 !important;\n}\n\n.grey-waves.waves-darken-3 .waves-ripple {\n background-color: #424242 !important;\n}\n\n.grey.darken-4 {\n background-color: #212121 !important;\n}\n\n.grey-text.text-darken-4 {\n color: #212121 !important;\n}\n\n.grey-waves.waves-darken-4 .waves-ripple {\n background-color: #212121 !important;\n}\n\n.black {\n background-color: #000000 !important;\n}\n\n.black-text {\n color: #000000 !important;\n}\n\n.white {\n background-color: #ffffff !important;\n}\n\n.white-text {\n color: #ffffff !important;\n}\n\n.transparent {\n background-color: transparent !important;\n}\n\n.transparent-text {\n color: transparent !important;\n}\n\n/**\n * prism.js Twilight theme\n * Based (more or less) on the Twilight theme originally of Textmate fame.\n * @author Remy Bach\n */\ncode[class*=language-],\npre[class*=language-] {\n color: white;\n background: none;\n font-family: Consolas, Monaco, \"Andale Mono\", \"Ubuntu Mono\", monospace;\n text-align: left;\n text-shadow: 0 -0.1em 0.2em black;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n line-height: 1.5;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n}\n\npre[class*=language-],\n:not(pre) > code[class*=language-] {\n background: hsl(0deg, 0%, 8%); /* #141414 */\n}\n\n/* Code blocks */\npre[class*=language-] {\n border-radius: 0.5em;\n border: 0.3em solid hsl(0deg, 0%, 33%); /* #282A2B */\n box-shadow: 1px 1px 0.5em black inset;\n margin: 0.5em 0;\n overflow: auto;\n padding: 1em;\n}\n\npre[class*=language-]::-moz-selection {\n /* Firefox */\n background: hsl(200deg, 4%, 16%); /* #282A2B */\n}\n\npre[class*=language-]::selection {\n /* Safari */\n background: hsl(200deg, 4%, 16%); /* #282A2B */\n}\n\n/* Text Selection colour */\npre[class*=language-]::-moz-selection, pre[class*=language-] ::-moz-selection,\ncode[class*=language-]::-moz-selection, code[class*=language-] ::-moz-selection {\n text-shadow: none;\n background: hsla(0deg, 0%, 93%, 0.15); /* #EDEDED */\n}\n\npre[class*=language-]::selection, pre[class*=language-] ::selection,\ncode[class*=language-]::selection, code[class*=language-] ::selection {\n text-shadow: none;\n background: hsla(0deg, 0%, 93%, 0.15); /* #EDEDED */\n}\n\n/* Inline code */\n:not(pre) > code[class*=language-] {\n border-radius: 0.3em;\n border: 0.13em solid hsl(0deg, 0%, 33%); /* #545454 */\n box-shadow: 1px 1px 0.3em -0.1em black inset;\n padding: 0.15em 0.2em 0.05em;\n white-space: normal;\n}\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n color: hsl(0deg, 0%, 47%); /* #777777 */\n}\n\n.token.punctuation {\n opacity: 0.7;\n}\n\n.namespace {\n opacity: 0.7;\n}\n\n.token.tag,\n.token.boolean,\n.token.number,\n.token.deleted {\n color: hsl(14deg, 58%, 55%); /* #CF6A4C */\n}\n\n.token.keyword,\n.token.property,\n.token.selector,\n.token.constant,\n.token.symbol,\n.token.builtin {\n color: hsl(53deg, 89%, 79%); /* #F9EE98 */\n}\n\n.token.attr-name,\n.token.attr-value,\n.token.string,\n.token.char,\n.token.operator,\n.token.entity,\n.token.url,\n.language-css .token.string,\n.style .token.string,\n.token.variable,\n.token.inserted {\n color: hsl(76deg, 21%, 52%); /* #8F9D6A */\n}\n\n.token.atrule {\n color: hsl(218deg, 22%, 55%); /* #7587A6 */\n}\n\n.token.regex,\n.token.important {\n color: hsl(42deg, 75%, 65%); /* #E9C062 */\n}\n\n.token.important,\n.token.bold {\n font-weight: bold;\n}\n\n.token.italic {\n font-style: italic;\n}\n\n.token.entity {\n cursor: help;\n}\n\npre[data-line] {\n padding: 1em 0 1em 3em;\n position: relative;\n}\n\n/* Markup */\n.language-markup .token.tag,\n.language-markup .token.attr-name,\n.language-markup .token.punctuation {\n color: hsl(33deg, 33%, 52%); /* #AC885B */\n}\n\n/* Make the tokens sit above the line highlight so the colours don't look faded. */\n.token {\n position: relative;\n z-index: 1;\n}\n\n.line-highlight {\n background: hsla(0deg, 0%, 33%, 0.25); /* #545454 */\n background: linear-gradient(to right, hsla(0deg, 0%, 33%, 0.1) 70%, hsla(0deg, 0%, 33%, 0)); /* #545454 */\n border-bottom: 1px dashed hsl(0deg, 0%, 33%); /* #545454 */\n border-top: 1px dashed hsl(0deg, 0%, 33%); /* #545454 */\n left: 0;\n line-height: inherit;\n margin-top: 0.75em; /* Same as .prism’s padding-top */\n padding: inherit 0;\n pointer-events: none;\n position: absolute;\n right: 0;\n white-space: pre;\n z-index: 0;\n}\n\n.line-highlight:before,\n.line-highlight[data-end]:after {\n background-color: hsl(215deg, 15%, 59%); /* #8794A6 */\n border-radius: 999px;\n box-shadow: 0 1px white;\n color: hsl(24deg, 20%, 95%); /* #F5F2F0 */\n content: attr(data-start);\n font: bold 65%/1.5 sans-serif;\n left: 0.6em;\n min-width: 1em;\n padding: 0 0.5em;\n position: absolute;\n text-align: center;\n text-shadow: none;\n top: 0.4em;\n vertical-align: 0.3em;\n}\n\n.line-highlight[data-end]:after {\n bottom: 0.4em;\n content: attr(data-end);\n top: auto;\n}\n\n.window {\n font-family: \"Ubuntu\", sans-serif;\n font-size: 17px;\n width: 600px;\n margin: 75px auto;\n background: #2c3e50;\n height: 350px;\n border-radius: 5px;\n display: relative;\n box-shadow: 10px 10px 10px #888888;\n}\n\n.afterclose {\n color: #34495e;\n display: none;\n text-align: center;\n}\n\n.open {\n color: #fff;\n padding: 15px;\n background: #2ecc71;\n border-radius: 4px;\n border: none;\n}\n\n.bash {\n width: 600px;\n background: #34495e;\n height: 310px;\n border-radius: 5px;\n top: 40px;\n display: absolute;\n color: #fff;\n text-align: left;\n}\n.bash .command::before {\n content: \"user@machine $ : \";\n color: #2ecc71;\n}\n.bash .resulta::before {\n content: \">>\";\n color: #2ecc71;\n}\n\n/* effected by controllers */\n.windowmax {\n width: 100%;\n margin: auto;\n background: #2c3e50;\n height: 1000px;\n border-radius: 5px;\n display: relative;\n}\n\n.windowmin {\n width: 300px;\n height: 45px;\n background: #2c3e50;\n border-radius: 5px;\n bottom: 0;\n position: fixed;\n}\n\n.bashmax {\n display: absolute;\n width: 100%;\n background: #34495e;\n height: 960px;\n border-radius: 5px;\n bottom: 0;\n color: #fff;\n}\n\n/* !--end--! */\n.buttons {\n width: 15px;\n height: 15px;\n border-radius: 50%;\n float: right;\n margin: 13px 4px;\n border: none;\n}\n\n.close {\n background: #e74c3c;\n}\n\n.maximize {\n background: #f1c40f;\n}\n\n.minimize {\n background: #2ecc71;\n}\n\n.result {\n display: none;\n}\n\n.controls {\n height: 40px;\n top: 0;\n}\n\n.title {\n color: #fff;\n font-weight: bold;\n padding: 10px;\n}\n\n.material-tooltip {\n padding: 10px 8px;\n font-size: 1rem;\n z-index: 2000;\n border-radius: 2px;\n color: #fff;\n min-height: 36px;\n line-height: 120%;\n opacity: 0;\n position: absolute;\n text-align: center;\n max-width: calc(100% - 4px);\n overflow: hidden;\n left: 0;\n top: 0;\n pointer-events: none;\n visibility: hidden;\n background-color: #323232;\n}\n\n.backdrop {\n position: absolute;\n opacity: 0;\n height: 7px;\n width: 14px;\n border-radius: 0 0 50% 50%;\n background-color: #323232;\n z-index: -1;\n transform-origin: 50% 0%;\n visibility: hidden;\n}\n\n.shadow-0 {\n box-shadow: none !important;\n}\n\n/* 2dp elevation modified*/\n.shadow-1, nav, .dropdown-content, .card, .card-panel, .btn-floating, .btn, .btn-small, .btn-large, .collapsible {\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);\n}\n\n.shadow-1-half, .btn-floating:hover, .btn:hover, .btn-small:hover, .btn-large:hover {\n box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2);\n}\n\n/* 6dp elevation modified*/\n.shadow-2 {\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);\n}\n\n/* 12dp elevation modified*/\n.shadow-3 {\n box-shadow: 0 8px 17px 2px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2);\n}\n\n/* 16dp elevation */\n.shadow-4 {\n box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -7px rgba(0, 0, 0, 0.2);\n}\n\n/* 24dp elevation */\n.shadow-5, .modal {\n box-shadow: 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12), 0 11px 15px -7px rgba(0, 0, 0, 0.2);\n}\n\n/* 24dp elevation */\n.invert-shadow-5 {\n box-shadow: 38px 0 0 0 rgba(0, 0, 0, 0.14), 46px 0 0 0 rgba(0, 0, 0, 0.12), 15px 0 0 0 rgba(0, 0, 0, 0.2);\n}\n\n.hoverable {\n transition: box-shadow 0.25s;\n}\n.hoverable:hover {\n box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n}\n\n/*!\n * Waves v0.6.0\n * http://fian.my.id/Waves\n *\n * Copyright 2014 Alfiana E. Sibuea and other contributors\n * Released under the MIT license\n * https://github.com/fians/Waves/blob/master/LICENSE\n */\n.waves-effect {\n position: relative;\n cursor: pointer;\n display: inline-block;\n overflow: hidden;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n vertical-align: middle;\n z-index: 1;\n transition: 0.3s ease-out;\n}\n.waves-effect .waves-ripple {\n position: absolute;\n border-radius: 50%;\n width: 20px;\n height: 20px;\n margin-top: -10px;\n margin-left: -10px;\n opacity: 0;\n background: rgba(0, 0, 0, 0.2);\n transition: all 0.7s ease-out;\n transition-property: transform, opacity;\n transform: scale(0);\n pointer-events: none;\n}\n.waves-effect.waves-light .waves-ripple {\n background-color: rgba(255, 255, 255, 0.45);\n}\n.waves-effect.waves-red .waves-ripple {\n background-color: rgba(244, 67, 54, 0.7);\n}\n.waves-effect.waves-yellow .waves-ripple {\n background-color: rgba(255, 235, 59, 0.7);\n}\n.waves-effect.waves-orange .waves-ripple {\n background-color: rgba(255, 152, 0, 0.7);\n}\n.waves-effect.waves-purple .waves-ripple {\n background-color: rgba(156, 39, 176, 0.7);\n}\n.waves-effect.waves-green .waves-ripple {\n background-color: rgba(76, 175, 80, 0.7);\n}\n.waves-effect.waves-teal .waves-ripple {\n background-color: rgba(0, 150, 136, 0.7);\n}\n.waves-effect input[type=button], .waves-effect input[type=reset], .waves-effect input[type=submit] {\n border: 0;\n font-style: normal;\n font-size: inherit;\n text-transform: inherit;\n background: none;\n}\n.waves-effect img {\n position: relative;\n z-index: -1;\n}\n\n.waves-notransition {\n transition: none !important;\n}\n\n.waves-circle {\n transform: translateZ(0);\n -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);\n}\n\n.waves-input-wrapper {\n border-radius: 0.2em;\n vertical-align: bottom;\n}\n.waves-input-wrapper .waves-button-input {\n position: relative;\n top: 0;\n left: 0;\n z-index: 1;\n}\n\n.waves-circle {\n text-align: center;\n width: 2.5em;\n height: 2.5em;\n line-height: 2.5em;\n border-radius: 50%;\n -webkit-mask-image: none;\n}\n\n.waves-block {\n display: block;\n}\n\n/* Firefox Bug: link not triggered */\n.waves-effect .waves-ripple {\n z-index: -1;\n}\n\n.modal {\n position: fixed;\n left: 0;\n right: 0;\n background-color: #fafafa;\n padding: 0;\n max-height: 70%;\n width: 55%;\n margin: auto;\n overflow-y: auto;\n border-radius: 2px;\n will-change: top, opacity;\n}\n.modal:focus {\n outline: none;\n}\n@media only screen and (max-width : 992px) {\n .modal {\n width: 80%;\n }\n}\n.modal h1, .modal h2, .modal h3, .modal h4 {\n margin-top: 0;\n}\n.modal .modal-content {\n padding: 24px;\n}\n.modal .modal-close {\n cursor: pointer;\n}\n.modal .modal-footer {\n border-radius: 0 0 2px 2px;\n background-color: #fafafa;\n padding: 4px 6px;\n height: 56px;\n width: 100%;\n text-align: right;\n}\n.modal .modal-footer .btn, .modal .modal-footer .btn-small, .modal .modal-footer .btn-large, .modal .modal-footer .btn-flat {\n margin: 6px 0;\n}\n.modal .modal-header {\n border-radius: 2px 2px 0 0;\n background-color: #fafafa;\n padding: 6px 4px;\n height: 56px;\n width: 100%;\n text-align: right;\n}\n.modal .modal-header .btn, .modal .modal-header .btn-small, .modal .modal-header .btn-large, .modal .modal-header .btn-flat {\n margin: 6px 0;\n}\n\n.modal-overlay {\n position: fixed;\n z-index: 999;\n top: -25%;\n left: 0;\n bottom: 0;\n right: 0;\n height: 125%;\n width: 100%;\n background: #000;\n display: none;\n will-change: opacity;\n}\n\n.modal.modal-fixed-footer {\n padding: 0;\n height: 70%;\n}\n.modal.modal-fixed-footer .modal-content {\n position: absolute;\n height: calc(100% - 56px);\n max-height: 100%;\n width: 100%;\n overflow-y: auto;\n}\n.modal.modal-fixed-footer .modal-footer {\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n position: absolute;\n bottom: 0;\n}\n\n.modal.bottom-sheet {\n top: auto;\n bottom: -100%;\n margin: 0;\n width: 100%;\n max-height: 45%;\n border-radius: 0;\n will-change: bottom, opacity;\n}\n\nhtml,\nbody,\n#root {\n margin: 0;\n height: 100%;\n}\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\n.noselect {\n -webkit-touch-callout: none; /* iOS Safari */\n -webkit-user-select: none; /* Safari */\n -khtml-user-select: none; /* Konqueror HTML */\n -moz-user-select: none; /* Old versions of Firefox */\n -ms-user-select: none; /* Internet Explorer/Edge */\n user-select: none;\n /* Non-prefixed version, currently\n supported by Chrome, Edge, Opera and Firefox */\n}\n\nul:not(.browser-default) {\n padding-left: 0;\n list-style-type: none;\n}\nul:not(.browser-default) > li {\n list-style-type: none;\n}\n\na {\n color: #039be5;\n text-decoration: none;\n -webkit-tap-highlight-color: transparent;\n}\n\n.w-100 {\n width: 100%;\n}\n\n.right-align {\n text-align: right;\n}\n\n.center-align {\n text-align: center;\n}\n\n.v-center {\n display: flex;\n align-items: center;\n}\n\n.mb1 {\n margin-bottom: 10px;\n}\n\n.collection {\n margin: 0.3333333333rem 0 0.6666666667rem 0;\n border: 1px solid #e0e0e0;\n border-radius: 2px;\n overflow: hidden;\n position: relative;\n}\n.collection .collection-item {\n background-color: #fff;\n line-height: 1.5rem;\n padding: 10px 20px;\n margin: 0;\n border-bottom: 1px solid #e0e0e0;\n}\n.collection .collection-item.hover:hover {\n background-color: #ddd;\n}\n.collection .collection-item.avatar {\n min-height: 84px;\n padding-left: 72px;\n position: relative;\n}\n.collection .collection-item.avatar:not(.circle-clipper) > .circle,\n.collection .collection-item.avatar :not(.circle-clipper) > .circle {\n position: absolute;\n width: 42px;\n height: 42px;\n overflow: hidden;\n left: 15px;\n display: inline-block;\n vertical-align: middle;\n}\n.collection .collection-item.avatar i.circle {\n font-size: 18px;\n line-height: 42px;\n color: #fff;\n background-color: #999;\n text-align: center;\n}\n.collection .collection-item.avatar .title {\n font-size: 16px;\n}\n.collection .collection-item.avatar p {\n margin: 0;\n}\n.collection .collection-item.avatar .secondary-content {\n position: absolute;\n top: 16px;\n right: 16px;\n}\n.collection .collection-item:last-child {\n border-bottom: none;\n}\n.collection .collection-item.active {\n background-color: #26a69a;\n color: #eafaf9;\n}\n.collection .collection-item.active .secondary-content {\n color: #fff;\n}\n.collection a.collection-item {\n display: block;\n transition: 0.25s;\n color: #26a69a;\n}\n.collection a.collection-item:not(.active):hover {\n background-color: #ddd;\n}\n.collection.with-header .collection-header {\n background-color: #fff;\n border-bottom: 1px solid #e0e0e0;\n padding: 10px 20px;\n}\n.collection.with-header .collection-item {\n padding-left: 30px;\n}\n.collection.with-header .collection-item.avatar {\n padding-left: 72px;\n}\n\n.secondary-content {\n float: right;\n color: #26a69a;\n}\n\n.collapsible .collection {\n margin: 0;\n border: none;\n}\n\n.modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: 100vh;\n width: 100vw;\n padding: 20px 0 20px 0;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 999;\n display: flex;\n justify-content: center;\n}\n.modal-overlay .innerform {\n max-width: 650px;\n}\n.modal-overlay .innerform form {\n overflow: hidden;\n}\n\n/*********************\n Media Query Classes\n**********************/\n@media only screen and (max-width : 600px) {\n .hide-on-small-only, .hide-on-small-and-down {\n display: none !important;\n }\n}\n\n@media only screen and (max-width : 992px) {\n .hide-on-med-and-down {\n display: none !important;\n }\n}\n\n@media only screen and (min-width : 601px) {\n .hide-on-med-and-up {\n display: none !important;\n }\n}\n\n@media only screen and (min-width: 600px) and (max-width: 992px) {\n .hide-on-med-only {\n display: none !important;\n }\n}\n\n@media only screen and (min-width : 993px) {\n .hide-on-large-only {\n display: none !important;\n }\n}\n\n@media only screen and (min-width : 1201px) {\n .hide-on-extra-large-only {\n display: none !important;\n }\n}\n\n@media only screen and (min-width : 1201px) {\n .show-on-extra-large {\n display: block !important;\n }\n}\n\n@media only screen and (min-width : 993px) {\n .show-on-large {\n display: block !important;\n }\n}\n\n@media only screen and (min-width: 600px) and (max-width: 992px) {\n .show-on-medium {\n display: block !important;\n }\n}\n\n@media only screen and (max-width : 600px) {\n .show-on-small {\n display: block !important;\n }\n}\n\n@media only screen and (min-width : 601px) {\n .show-on-medium-and-up {\n display: block !important;\n }\n}\n\n@media only screen and (max-width : 992px) {\n .show-on-medium-and-down {\n display: block !important;\n }\n}\n\n@media only screen and (max-width : 600px) {\n .center-on-small-only {\n text-align: center;\n }\n}\n\n/*******************\n Utility Classes\n*******************/\n.hide {\n display: none !important;\n}\n\n.left-align {\n text-align: left;\n}\n\n.right-align {\n text-align: right;\n}\n\n.center, .center-align {\n text-align: center;\n}\n\n.left {\n float: left !important;\n}\n\n.right {\n float: right !important;\n}\n\n.no-select {\n user-select: none;\n}\n\n.circle {\n border-radius: 50%;\n}\n\n.center-block {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n\n.truncate {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.no-padding {\n padding: 0 !important;\n}\n\nspan.badge {\n min-width: 3rem;\n padding: 0 6px;\n margin-left: 14px;\n text-align: center;\n font-size: 1rem;\n line-height: 22px;\n height: 22px;\n color: #757575;\n float: right;\n box-sizing: border-box;\n}\nspan.badge.new {\n font-weight: 300;\n font-size: 0.8rem;\n color: #fff;\n background-color: #26a69a;\n border-radius: 2px;\n}\nspan.badge.new:after {\n content: \" new\";\n}\nspan.badge[data-badge-caption]::after {\n content: \" \" attr(data-badge-caption);\n}\n\nnav ul a span.badge {\n display: inline-block;\n float: none;\n margin-left: 4px;\n line-height: 22px;\n height: 22px;\n -webkit-font-smoothing: auto;\n}\n\n.collection-item span.badge {\n margin-top: calc(0.75rem - 11px);\n}\n\n.collapsible span.badge {\n margin-left: auto;\n}\n\n.sidenav span.badge {\n margin-top: 11.5px;\n}\n\ntable span.badge {\n display: inline-block;\n float: none;\n margin-left: auto;\n}\n\n.chip {\n display: inline-block;\n height: 32px;\n font-size: 13px;\n font-weight: 500;\n color: rgba(0, 0, 0, 0.6);\n line-height: 32px;\n padding: 0 12px;\n border-radius: 16px;\n background-color: #e4e4e4;\n margin-bottom: 5px;\n margin-right: 5px;\n}\n.chip:focus {\n outline: none;\n background-color: #26a69a;\n color: #fff;\n}\n.chip > img {\n float: left;\n margin: 0 8px 0 -12px;\n height: 32px;\n width: 32px;\n border-radius: 50%;\n}\n.chip .close {\n cursor: pointer;\n float: right;\n font-size: 16px;\n line-height: 32px;\n padding-left: 8px;\n}\n\n.chips {\n border: none;\n border-bottom: 1px solid #9e9e9e;\n box-shadow: none;\n margin: 0 0 8px 0;\n min-height: 45px;\n outline: none;\n transition: all 0.3s;\n}\n.chips.focus {\n border-bottom: 1px solid #26a69a;\n box-shadow: 0 1px 0 0 #26a69a;\n}\n.chips:hover {\n cursor: text;\n}\n.chips .input {\n background: none;\n border: 0;\n color: rgba(0, 0, 0, 0.6);\n display: inline-block;\n font-size: 16px;\n height: 56px;\n line-height: 32px;\n outline: 0;\n margin: 0;\n padding: 0 !important;\n width: 120px !important;\n}\n.chips .input:focus {\n border: 0 !important;\n box-shadow: none !important;\n}\n.chips .autocomplete-content {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.prefix ~ .chips {\n margin-left: 3rem;\n width: 92%;\n width: calc(100% - 3rem);\n}\n\n.chips:empty ~ label {\n font-size: 0.8rem;\n transform: translateY(-140%);\n}\n\n.collapsible {\n border-top: 1px solid #ddd;\n border-right: 1px solid #ddd;\n border-left: 1px solid #ddd;\n margin: 0.3333333333rem 0 0.6666666667rem 0;\n}\n\n.collapsible-header {\n display: flex;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n line-height: 1.5;\n padding: 1rem;\n background-color: #fff;\n border-bottom: 1px solid #ddd;\n}\n.collapsible-header:focus {\n outline: 0;\n}\n.collapsible-header i {\n width: 2rem;\n font-size: 1.6rem;\n display: inline-block;\n text-align: center;\n margin-right: 1rem;\n}\n\n.keyboard-focused .collapsible-header:focus {\n background-color: #eee;\n}\n\n.collapsible-body {\n display: none;\n border-bottom: 1px solid #ddd;\n box-sizing: border-box;\n padding: 2rem;\n}\n\n.sidenav .collapsible,\n.sidenav.fixed .collapsible {\n border: none;\n box-shadow: none;\n}\n.sidenav .collapsible li,\n.sidenav.fixed .collapsible li {\n padding: 0;\n}\n.sidenav .collapsible-header,\n.sidenav.fixed .collapsible-header {\n background-color: transparent;\n border: none;\n line-height: inherit;\n height: inherit;\n padding: 0 15px;\n}\n.sidenav .collapsible-header:hover,\n.sidenav.fixed .collapsible-header:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.sidenav .collapsible-header i,\n.sidenav.fixed .collapsible-header i {\n line-height: inherit;\n}\n.sidenav .collapsible-body,\n.sidenav.fixed .collapsible-body {\n border: 0;\n background-color: #fff;\n}\n.sidenav .collapsible-body li a,\n.sidenav.fixed .collapsible-body li a {\n padding: 0 22.5px 0 30px;\n}\n\n.collapsible.popout {\n border: none;\n box-shadow: none;\n}\n.collapsible.popout > li {\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\n margin: 0 24px;\n transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n}\n.collapsible.popout > li.active {\n box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);\n margin: 16px 0;\n}\n\n.collection {\n margin: 0.3333333333rem 0 0.6666666667rem 0;\n border: 1px solid #e0e0e0;\n border-radius: 2px;\n overflow: hidden;\n position: relative;\n}\n.collection .collection-item {\n background-color: #fff;\n line-height: 1.5rem;\n padding: 10px 20px;\n margin: 0;\n border-bottom: 1px solid #e0e0e0;\n}\n.collection .collection-item.avatar {\n min-height: 84px;\n padding-left: 72px;\n position: relative;\n}\n.collection .collection-item.avatar:not(.circle-clipper) > .circle,\n.collection .collection-item.avatar :not(.circle-clipper) > .circle {\n position: absolute;\n width: 42px;\n height: 42px;\n overflow: hidden;\n left: 15px;\n display: inline-block;\n vertical-align: middle;\n}\n.collection .collection-item.avatar i.circle {\n font-size: 18px;\n line-height: 42px;\n color: #fff;\n background-color: #999;\n text-align: center;\n}\n.collection .collection-item.avatar .title {\n font-size: 16px;\n}\n.collection .collection-item.avatar p {\n margin: 0;\n}\n.collection .collection-item.avatar .secondary-content {\n position: absolute;\n top: 16px;\n right: 16px;\n}\n.collection .collection-item:last-child {\n border-bottom: none;\n}\n.collection .collection-item.active {\n background-color: #26a69a;\n color: #eafaf9;\n}\n.collection .collection-item.active .secondary-content {\n color: #fff;\n}\n.collection a.collection-item {\n display: block;\n transition: 0.25s;\n color: #26a69a;\n}\n.collection a.collection-item:not(.active):hover {\n background-color: #ddd;\n}\n.collection.with-header .collection-header {\n background-color: #fff;\n border-bottom: 1px solid #e0e0e0;\n padding: 10px 20px;\n}\n.collection.with-header .collection-item {\n padding-left: 30px;\n}\n.collection.with-header .collection-item.avatar {\n padding-left: 72px;\n}\n.collection .secondary-content {\n float: right;\n color: #26a69a;\n}\n\nselect:focus {\n outline: 1px solid #c9f3ef;\n}\n\nbutton:focus {\n outline: none;\n background-color: #2ab7a9;\n}\n\nlabel {\n font-size: 0.8rem;\n color: #9e9e9e;\n}\n\n/* Text Inputs + Textarea\n ========================================================================== */\n/* Style Placeholders */\n::placeholder {\n color: #d1d1d1;\n}\n\n/* Text inputs */\ninput:not([type]),\ninput[type=text]:not(.browser-default),\ninput[type=password]:not(.browser-default),\ninput[type=email]:not(.browser-default),\ninput[type=url]:not(.browser-default),\ninput[type=time]:not(.browser-default),\ninput[type=date]:not(.browser-default),\ninput[type=datetime]:not(.browser-default),\ninput[type=datetime-local]:not(.browser-default),\ninput[type=tel]:not(.browser-default),\ninput[type=number]:not(.browser-default),\ninput[type=search]:not(.browser-default),\ntextarea.textarea {\n background-color: transparent;\n border: none;\n border-bottom: 1px solid #9e9e9e;\n border-radius: 0;\n outline: none;\n height: 56px;\n width: 100%;\n font-size: 16px;\n margin: 0 0 8px 0;\n padding: 0;\n box-shadow: none;\n box-sizing: content-box;\n transition: box-shadow 0.3s, border 0.3s;\n}\ninput:not([type]):disabled, input:not([type])[readonly=readonly],\ninput[type=text]:not(.browser-default):disabled,\ninput[type=text]:not(.browser-default)[readonly=readonly],\ninput[type=password]:not(.browser-default):disabled,\ninput[type=password]:not(.browser-default)[readonly=readonly],\ninput[type=email]:not(.browser-default):disabled,\ninput[type=email]:not(.browser-default)[readonly=readonly],\ninput[type=url]:not(.browser-default):disabled,\ninput[type=url]:not(.browser-default)[readonly=readonly],\ninput[type=time]:not(.browser-default):disabled,\ninput[type=time]:not(.browser-default)[readonly=readonly],\ninput[type=date]:not(.browser-default):disabled,\ninput[type=date]:not(.browser-default)[readonly=readonly],\ninput[type=datetime]:not(.browser-default):disabled,\ninput[type=datetime]:not(.browser-default)[readonly=readonly],\ninput[type=datetime-local]:not(.browser-default):disabled,\ninput[type=datetime-local]:not(.browser-default)[readonly=readonly],\ninput[type=tel]:not(.browser-default):disabled,\ninput[type=tel]:not(.browser-default)[readonly=readonly],\ninput[type=number]:not(.browser-default):disabled,\ninput[type=number]:not(.browser-default)[readonly=readonly],\ninput[type=search]:not(.browser-default):disabled,\ninput[type=search]:not(.browser-default)[readonly=readonly],\ntextarea.textarea:disabled,\ntextarea.textarea[readonly=readonly] {\n color: rgba(0, 0, 0, 0.42);\n border-bottom: 1px dotted rgba(0, 0, 0, 0.42);\n}\ninput:not([type]):disabled + label, input:not([type])[readonly=readonly] + label,\ninput[type=text]:not(.browser-default):disabled + label,\ninput[type=text]:not(.browser-default)[readonly=readonly] + label,\ninput[type=password]:not(.browser-default):disabled + label,\ninput[type=password]:not(.browser-default)[readonly=readonly] + label,\ninput[type=email]:not(.browser-default):disabled + label,\ninput[type=email]:not(.browser-default)[readonly=readonly] + label,\ninput[type=url]:not(.browser-default):disabled + label,\ninput[type=url]:not(.browser-default)[readonly=readonly] + label,\ninput[type=time]:not(.browser-default):disabled + label,\ninput[type=time]:not(.browser-default)[readonly=readonly] + label,\ninput[type=date]:not(.browser-default):disabled + label,\ninput[type=date]:not(.browser-default)[readonly=readonly] + label,\ninput[type=datetime]:not(.browser-default):disabled + label,\ninput[type=datetime]:not(.browser-default)[readonly=readonly] + label,\ninput[type=datetime-local]:not(.browser-default):disabled + label,\ninput[type=datetime-local]:not(.browser-default)[readonly=readonly] + label,\ninput[type=tel]:not(.browser-default):disabled + label,\ninput[type=tel]:not(.browser-default)[readonly=readonly] + label,\ninput[type=number]:not(.browser-default):disabled + label,\ninput[type=number]:not(.browser-default)[readonly=readonly] + label,\ninput[type=search]:not(.browser-default):disabled + label,\ninput[type=search]:not(.browser-default)[readonly=readonly] + label,\ntextarea.textarea:disabled + label,\ntextarea.textarea[readonly=readonly] + label {\n color: rgba(0, 0, 0, 0.42);\n}\ninput:not([type]):focus:not([readonly]),\ninput[type=text]:not(.browser-default):focus:not([readonly]),\ninput[type=password]:not(.browser-default):focus:not([readonly]),\ninput[type=email]:not(.browser-default):focus:not([readonly]),\ninput[type=url]:not(.browser-default):focus:not([readonly]),\ninput[type=time]:not(.browser-default):focus:not([readonly]),\ninput[type=date]:not(.browser-default):focus:not([readonly]),\ninput[type=datetime]:not(.browser-default):focus:not([readonly]),\ninput[type=datetime-local]:not(.browser-default):focus:not([readonly]),\ninput[type=tel]:not(.browser-default):focus:not([readonly]),\ninput[type=number]:not(.browser-default):focus:not([readonly]),\ninput[type=search]:not(.browser-default):focus:not([readonly]),\ntextarea.textarea:focus:not([readonly]) {\n border-bottom: 1px solid #26a69a;\n box-shadow: 0 1px 0 0 #26a69a;\n}\ninput:not([type]):focus:not([readonly]) + label,\ninput[type=text]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=password]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=email]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=url]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=time]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=date]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=datetime]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=datetime-local]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=tel]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=number]:not(.browser-default):focus:not([readonly]) + label,\ninput[type=search]:not(.browser-default):focus:not([readonly]) + label,\ntextarea.textarea:focus:not([readonly]) + label {\n color: #26a69a;\n}\ninput:not([type]):focus.valid ~ label,\ninput[type=text]:not(.browser-default):focus.valid ~ label,\ninput[type=password]:not(.browser-default):focus.valid ~ label,\ninput[type=email]:not(.browser-default):focus.valid ~ label,\ninput[type=url]:not(.browser-default):focus.valid ~ label,\ninput[type=time]:not(.browser-default):focus.valid ~ label,\ninput[type=date]:not(.browser-default):focus.valid ~ label,\ninput[type=datetime]:not(.browser-default):focus.valid ~ label,\ninput[type=datetime-local]:not(.browser-default):focus.valid ~ label,\ninput[type=tel]:not(.browser-default):focus.valid ~ label,\ninput[type=number]:not(.browser-default):focus.valid ~ label,\ninput[type=search]:not(.browser-default):focus.valid ~ label,\ntextarea.textarea:focus.valid ~ label {\n color: #4caf50;\n}\ninput:not([type]):focus.invalid ~ label,\ninput[type=text]:not(.browser-default):focus.invalid ~ label,\ninput[type=password]:not(.browser-default):focus.invalid ~ label,\ninput[type=email]:not(.browser-default):focus.invalid ~ label,\ninput[type=url]:not(.browser-default):focus.invalid ~ label,\ninput[type=time]:not(.browser-default):focus.invalid ~ label,\ninput[type=date]:not(.browser-default):focus.invalid ~ label,\ninput[type=datetime]:not(.browser-default):focus.invalid ~ label,\ninput[type=datetime-local]:not(.browser-default):focus.invalid ~ label,\ninput[type=tel]:not(.browser-default):focus.invalid ~ label,\ninput[type=number]:not(.browser-default):focus.invalid ~ label,\ninput[type=search]:not(.browser-default):focus.invalid ~ label,\ntextarea.textarea:focus.invalid ~ label {\n color: #f44336;\n}\ninput:not([type]).validate + label,\ninput[type=text]:not(.browser-default).validate + label,\ninput[type=password]:not(.browser-default).validate + label,\ninput[type=email]:not(.browser-default).validate + label,\ninput[type=url]:not(.browser-default).validate + label,\ninput[type=time]:not(.browser-default).validate + label,\ninput[type=date]:not(.browser-default).validate + label,\ninput[type=datetime]:not(.browser-default).validate + label,\ninput[type=datetime-local]:not(.browser-default).validate + label,\ninput[type=tel]:not(.browser-default).validate + label,\ninput[type=number]:not(.browser-default).validate + label,\ninput[type=search]:not(.browser-default).validate + label,\ntextarea.textarea.validate + label {\n width: 100%;\n}\n/* Validation Sass Placeholders */\n.select-wrapper.valid > input.select-dropdown, input:not([type]).valid, input:not([type]):focus.valid,\ninput[type=text]:not(.browser-default).valid,\ninput[type=text]:not(.browser-default):focus.valid,\ninput[type=password]:not(.browser-default).valid,\ninput[type=password]:not(.browser-default):focus.valid,\ninput[type=email]:not(.browser-default).valid,\ninput[type=email]:not(.browser-default):focus.valid,\ninput[type=url]:not(.browser-default).valid,\ninput[type=url]:not(.browser-default):focus.valid,\ninput[type=time]:not(.browser-default).valid,\ninput[type=time]:not(.browser-default):focus.valid,\ninput[type=date]:not(.browser-default).valid,\ninput[type=date]:not(.browser-default):focus.valid,\ninput[type=datetime]:not(.browser-default).valid,\ninput[type=datetime]:not(.browser-default):focus.valid,\ninput[type=datetime-local]:not(.browser-default).valid,\ninput[type=datetime-local]:not(.browser-default):focus.valid,\ninput[type=tel]:not(.browser-default).valid,\ninput[type=tel]:not(.browser-default):focus.valid,\ninput[type=number]:not(.browser-default).valid,\ninput[type=number]:not(.browser-default):focus.valid,\ninput[type=search]:not(.browser-default).valid,\ninput[type=search]:not(.browser-default):focus.valid,\ntextarea.textarea.valid,\ntextarea.textarea:focus.valid {\n border-bottom: 1px solid #4caf50;\n box-shadow: 0 1px 0 0 #4caf50;\n}\n\n.select-wrapper.invalid > input.select-dropdown, .select-wrapper.invalid > input.select-dropdown:focus, input:not([type]).invalid, input:not([type]):focus.invalid,\ninput[type=text]:not(.browser-default).invalid,\ninput[type=text]:not(.browser-default):focus.invalid,\ninput[type=password]:not(.browser-default).invalid,\ninput[type=password]:not(.browser-default):focus.invalid,\ninput[type=email]:not(.browser-default).invalid,\ninput[type=email]:not(.browser-default):focus.invalid,\ninput[type=url]:not(.browser-default).invalid,\ninput[type=url]:not(.browser-default):focus.invalid,\ninput[type=time]:not(.browser-default).invalid,\ninput[type=time]:not(.browser-default):focus.invalid,\ninput[type=date]:not(.browser-default).invalid,\ninput[type=date]:not(.browser-default):focus.invalid,\ninput[type=datetime]:not(.browser-default).invalid,\ninput[type=datetime]:not(.browser-default):focus.invalid,\ninput[type=datetime-local]:not(.browser-default).invalid,\ninput[type=datetime-local]:not(.browser-default):focus.invalid,\ninput[type=tel]:not(.browser-default).invalid,\ninput[type=tel]:not(.browser-default):focus.invalid,\ninput[type=number]:not(.browser-default).invalid,\ninput[type=number]:not(.browser-default):focus.invalid,\ninput[type=search]:not(.browser-default).invalid,\ninput[type=search]:not(.browser-default):focus.invalid,\ntextarea.textarea.invalid,\ntextarea.textarea:focus.invalid {\n border-bottom: 1px solid #f44336;\n box-shadow: 0 1px 0 0 #f44336;\n}\n\n.select-wrapper.valid .helper-text[data-success], .select-wrapper.invalid ~ .helper-text[data-error], input:not([type]).valid ~ .helper-text[data-success], input:not([type]):focus.valid ~ .helper-text[data-success], input:not([type]).invalid ~ .helper-text[data-error], input:not([type]):focus.invalid ~ .helper-text[data-error],\ninput[type=text]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=text]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=text]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=text]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=password]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=password]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=password]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=password]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=email]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=email]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=email]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=email]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=url]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=url]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=url]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=url]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=time]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=time]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=time]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=time]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=date]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=date]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=date]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=date]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=datetime]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=datetime]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=datetime]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=datetime-local]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=datetime-local]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=tel]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=tel]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=tel]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=tel]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=number]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=number]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=number]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=number]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ninput[type=search]:not(.browser-default).valid ~ .helper-text[data-success],\ninput[type=search]:not(.browser-default):focus.valid ~ .helper-text[data-success],\ninput[type=search]:not(.browser-default).invalid ~ .helper-text[data-error],\ninput[type=search]:not(.browser-default):focus.invalid ~ .helper-text[data-error],\ntextarea.textarea.valid ~ .helper-text[data-success],\ntextarea.textarea:focus.valid ~ .helper-text[data-success],\ntextarea.textarea.invalid ~ .helper-text[data-error],\ntextarea.textarea:focus.invalid ~ .helper-text[data-error] {\n color: transparent;\n user-select: none;\n pointer-events: none;\n}\n\n.select-wrapper.valid ~ .helper-text:after, input:not([type]).valid ~ .helper-text:after, input:not([type]):focus.valid ~ .helper-text:after,\ninput[type=text]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=text]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=password]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=password]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=email]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=email]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=url]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=url]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=time]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=time]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=date]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=date]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=datetime]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=datetime]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=datetime-local]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=tel]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=tel]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=number]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=number]:not(.browser-default):focus.valid ~ .helper-text:after,\ninput[type=search]:not(.browser-default).valid ~ .helper-text:after,\ninput[type=search]:not(.browser-default):focus.valid ~ .helper-text:after,\ntextarea.textarea.valid ~ .helper-text:after,\ntextarea.textarea:focus.valid ~ .helper-text:after {\n content: attr(data-success);\n color: #4caf50;\n}\n\n.select-wrapper.invalid ~ .helper-text:after, input:not([type]).invalid ~ .helper-text:after, input:not([type]):focus.invalid ~ .helper-text:after,\ninput[type=text]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=text]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=password]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=password]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=email]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=email]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=url]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=url]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=time]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=time]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=date]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=date]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=datetime]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=datetime-local]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=tel]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=tel]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=number]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=number]:not(.browser-default):focus.invalid ~ .helper-text:after,\ninput[type=search]:not(.browser-default).invalid ~ .helper-text:after,\ninput[type=search]:not(.browser-default):focus.invalid ~ .helper-text:after,\ntextarea.textarea.invalid ~ .helper-text:after,\ntextarea.textarea:focus.invalid ~ .helper-text:after {\n content: attr(data-error);\n color: #f44336;\n}\n\n.select-wrapper + label:after, input:not([type]) + label:after,\ninput[type=text]:not(.browser-default) + label:after,\ninput[type=password]:not(.browser-default) + label:after,\ninput[type=email]:not(.browser-default) + label:after,\ninput[type=url]:not(.browser-default) + label:after,\ninput[type=time]:not(.browser-default) + label:after,\ninput[type=date]:not(.browser-default) + label:after,\ninput[type=datetime]:not(.browser-default) + label:after,\ninput[type=datetime-local]:not(.browser-default) + label:after,\ninput[type=tel]:not(.browser-default) + label:after,\ninput[type=number]:not(.browser-default) + label:after,\ninput[type=search]:not(.browser-default) + label:after,\ntextarea.textarea + label:after {\n display: block;\n content: \"\";\n position: absolute;\n top: 100%;\n left: 0;\n opacity: 0;\n transition: 0.2s opacity ease-out, 0.2s color ease-out;\n}\n\n.input-field {\n position: relative;\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n.input-field.inline {\n display: inline-block;\n vertical-align: middle;\n margin-left: 5px;\n}\n.input-field.inline input,\n.input-field.inline .select-dropdown {\n margin-bottom: 1rem;\n}\n.input-field.col label {\n left: 0.5rem;\n}\n.input-field.col .prefix ~ label,\n.input-field.col .prefix ~ .validate ~ label {\n width: calc(100% - 3rem - 1rem);\n}\n.input-field > label {\n color: #9e9e9e;\n position: absolute;\n top: 0;\n left: 0;\n font-size: 1rem;\n cursor: text;\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n transform-origin: 0% 100%;\n text-align: initial;\n transform: translateY(12px);\n}\n.input-field > label:not(.label-icon).active {\n transform: translateY(-14px) scale(0.8);\n transform-origin: 0 0;\n}\n.input-field > input[type]:-webkit-autofill:not(.browser-default):not([type=search]) + label, .input-field > input[type=date]:not(.browser-default) + label, .input-field > input[type=time]:not(.browser-default) + label {\n transform: translateY(-14px) scale(0.8);\n transform-origin: 0 0;\n}\n.input-field .helper-text {\n position: relative;\n min-height: 18px;\n display: block;\n font-size: 12px;\n color: rgba(0, 0, 0, 0.54);\n}\n.input-field .helper-text::after {\n opacity: 1;\n position: absolute;\n top: 0;\n left: 0;\n}\n.input-field .prefix {\n position: absolute;\n width: 56px;\n font-size: 2rem;\n transition: color 0.2s;\n}\n.input-field .prefix.active {\n color: #26a69a;\n}\n.input-field .prefix ~ input,\n.input-field .prefix ~ textarea,\n.input-field .prefix ~ label,\n.input-field .prefix ~ .validate ~ label,\n.input-field .prefix ~ .helper-text,\n.input-field .prefix ~ .autocomplete-content {\n margin-left: 3rem;\n width: 92%;\n width: calc(100% - 3rem);\n}\n.input-field .prefix ~ label {\n margin-left: 3rem;\n}\n@media only screen and (max-width : 992px) {\n .input-field .prefix ~ input {\n width: 86%;\n width: calc(100% - 3rem);\n }\n}\n@media only screen and (max-width : 600px) {\n .input-field .prefix ~ input {\n width: 80%;\n width: calc(100% - 3rem);\n }\n}\n\n/* Search Field */\n.input-field input[type=search] {\n display: block;\n line-height: inherit;\n transition: 0.3s background-color;\n}\n.nav-wrapper .input-field input[type=search] {\n height: inherit;\n padding-left: 4rem;\n width: calc(100% - 4rem);\n border: 0;\n box-shadow: none;\n}\n.input-field input[type=search]:focus:not(.browser-default) {\n background-color: #fff;\n border: 0;\n box-shadow: none;\n color: #444;\n}\n.input-field input[type=search]:focus:not(.browser-default) + label i, .input-field input[type=search]:focus:not(.browser-default) ~ .mdi-navigation-close, .input-field input[type=search]:focus:not(.browser-default) ~ .material-icons {\n color: #444;\n}\n.input-field input[type=search] + .label-icon {\n transform: none;\n left: 1rem;\n}\n.input-field input[type=search] ~ .mdi-navigation-close, .input-field input[type=search] ~ .material-icons {\n position: absolute;\n top: 0;\n right: 1rem;\n color: transparent;\n cursor: pointer;\n font-size: 2rem;\n transition: 0.3s color;\n}\n\n/* Textarea */\ntextarea {\n width: 100%;\n height: 56px;\n background-color: transparent;\n}\ntextarea.textarea {\n line-height: normal;\n overflow-y: hidden; /* prevents scroll bar flash */\n padding: 0.8rem 0 0.8rem 0; /* prevents text jump on Enter keypress */\n resize: none;\n min-height: 56px;\n box-sizing: border-box;\n}\n\n.hiddendiv {\n visibility: hidden;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: break-word; /* future version of deprecated 'word-wrap' */\n padding-top: 1.2rem; /* prevents text jump on Enter keypress */\n position: absolute;\n top: 0;\n z-index: -1;\n}\n\n/* Autocomplete */\n.autocomplete-content li .highlight {\n color: #444;\n}\n.autocomplete-content li img {\n margin: 5px 15px;\n}\n\n/* Character Counter */\n.character-counter {\n min-height: 18px;\n}\n\n/* Radio Buttons\n ========================================================================== */\n[type=radio]:not(:checked),\n[type=radio]:checked {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n}\n\n[type=radio]:not(:checked) + span,\n[type=radio]:checked + span {\n position: relative;\n padding-left: 35px;\n cursor: pointer;\n display: inline-block;\n height: 25px;\n line-height: 25px;\n font-size: 1rem;\n transition: 0.28s ease;\n user-select: none;\n}\n\n[type=radio] + span:before,\n[type=radio] + span:after {\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n margin: 4px;\n width: 16px;\n height: 16px;\n z-index: 0;\n transition: 0.28s ease;\n}\n\n/* Unchecked styles */\n[type=radio]:not(:checked) + span:before,\n[type=radio]:not(:checked) + span:after,\n[type=radio]:checked + span:before,\n[type=radio]:checked + span:after,\n[type=radio].with-gap:checked + span:before,\n[type=radio].with-gap:checked + span:after {\n border-radius: 50%;\n}\n\n[type=radio]:not(:checked) + span:before,\n[type=radio]:not(:checked) + span:after {\n border: 2px solid #5a5a5a;\n}\n\n[type=radio]:not(:checked) + span:after {\n transform: scale(0);\n}\n\n/* Checked styles */\n[type=radio]:checked + span:before {\n border: 2px solid transparent;\n}\n\n[type=radio]:checked + span:after,\n[type=radio].with-gap:checked + span:before,\n[type=radio].with-gap:checked + span:after {\n border: 2px solid #26a69a;\n}\n\n[type=radio]:checked + span:after,\n[type=radio].with-gap:checked + span:after {\n background-color: #26a69a;\n}\n\n[type=radio]:checked + span:after {\n transform: scale(1.02);\n}\n\n/* Radio With gap */\n[type=radio].with-gap:checked + span:after {\n transform: scale(0.5);\n}\n\n/* Focused styles */\n[type=radio].tabbed:focus + span:before {\n box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);\n}\n\n/* Disabled Radio With gap */\n[type=radio].with-gap:disabled:checked + span:before {\n border: 2px solid rgba(0, 0, 0, 0.42);\n}\n\n[type=radio].with-gap:disabled:checked + span:after {\n border: none;\n background-color: rgba(0, 0, 0, 0.42);\n}\n\n/* Disabled style */\n[type=radio]:disabled:not(:checked) + span:before,\n[type=radio]:disabled:checked + span:before {\n background-color: transparent;\n border-color: rgba(0, 0, 0, 0.42);\n}\n\n[type=radio]:disabled + span {\n color: rgba(0, 0, 0, 0.42);\n}\n\n[type=radio]:disabled:not(:checked) + span:before {\n border-color: rgba(0, 0, 0, 0.42);\n}\n\n[type=radio]:disabled:checked + span:after {\n background-color: rgba(0, 0, 0, 0.42);\n border-color: #949494;\n}\n\n/* Checkboxes\n ========================================================================== */\n/* Remove default checkbox */\n[type=checkbox]:not(:checked),\n[type=checkbox]:checked {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n}\n\n[type=checkbox] {\n /* checkbox aspect */\n}\n[type=checkbox] + span:not(.lever) {\n position: relative;\n padding-left: 35px;\n cursor: pointer;\n display: inline-block;\n height: 25px;\n line-height: 25px;\n font-size: 1rem;\n user-select: none;\n}\n[type=checkbox] + span:not(.lever):before, [type=checkbox]:not(.filled-in) + span:not(.lever):after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 18px;\n height: 18px;\n z-index: 0;\n border: 2px solid #5a5a5a;\n border-radius: 1px;\n margin-top: 3px;\n transition: 0.2s;\n}\n[type=checkbox]:not(.filled-in) + span:not(.lever):after {\n border: 0;\n transform: scale(0);\n}\n[type=checkbox]:not(:checked):disabled + span:not(.lever):before {\n border: none;\n background-color: rgba(0, 0, 0, 0.42);\n}\n[type=checkbox].tabbed:focus + span:not(.lever):after {\n transform: scale(1);\n border: 0;\n border-radius: 50%;\n box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);\n background-color: rgba(0, 0, 0, 0.1);\n}\n\n[type=checkbox]:checked + span:not(.lever):before {\n top: -4px;\n left: -5px;\n width: 12px;\n height: 22px;\n border-top: 2px solid transparent;\n border-left: 2px solid transparent;\n border-right: 2px solid #26a69a;\n border-bottom: 2px solid #26a69a;\n transform: rotate(40deg);\n backface-visibility: hidden;\n transform-origin: 100% 100%;\n}\n[type=checkbox]:checked:disabled + span:before {\n border-right: 2px solid rgba(0, 0, 0, 0.42);\n border-bottom: 2px solid rgba(0, 0, 0, 0.42);\n}\n\n/* Indeterminate checkbox */\n[type=checkbox]:indeterminate + span:not(.lever):before {\n top: -11px;\n left: -12px;\n width: 10px;\n height: 22px;\n border-top: none;\n border-left: none;\n border-right: 2px solid #26a69a;\n border-bottom: none;\n transform: rotate(90deg);\n backface-visibility: hidden;\n transform-origin: 100% 100%;\n}\n[type=checkbox]:indeterminate:disabled + span:not(.lever):before {\n border-right: 2px solid rgba(0, 0, 0, 0.42);\n background-color: transparent;\n}\n\n[type=checkbox].filled-in + span:not(.lever):after {\n border-radius: 2px;\n}\n[type=checkbox].filled-in + span:not(.lever):before,\n[type=checkbox].filled-in + span:not(.lever):after {\n content: \"\";\n left: 0;\n position: absolute;\n /* .1s delay is for check animation */\n transition: border 0.25s, background-color 0.25s, width 0.2s 0.1s, height 0.2s 0.1s, top 0.2s 0.1s, left 0.2s 0.1s;\n z-index: 1;\n}\n[type=checkbox].filled-in:not(:checked) + span:not(.lever):before {\n width: 0;\n height: 0;\n border: 3px solid transparent;\n left: 6px;\n top: 10px;\n transform: rotateZ(37deg);\n transform-origin: 100% 100%;\n}\n[type=checkbox].filled-in:not(:checked) + span:not(.lever):after {\n height: 20px;\n width: 20px;\n background-color: transparent;\n border: 2px solid #5a5a5a;\n top: 0px;\n z-index: 0;\n}\n[type=checkbox].filled-in:checked + span:not(.lever):before {\n top: 0;\n left: 1px;\n width: 8px;\n height: 13px;\n border-top: 2px solid transparent;\n border-left: 2px solid transparent;\n border-right: 2px solid #fff;\n border-bottom: 2px solid #fff;\n transform: rotateZ(37deg);\n transform-origin: 100% 100%;\n}\n[type=checkbox].filled-in:checked + span:not(.lever):after {\n top: 0;\n width: 20px;\n height: 20px;\n border: 2px solid #26a69a;\n background-color: #26a69a;\n z-index: 0;\n}\n[type=checkbox].filled-in.tabbed:focus + span:not(.lever):after {\n border-radius: 2px;\n border-color: #5a5a5a;\n background-color: rgba(0, 0, 0, 0.1);\n}\n[type=checkbox].filled-in.tabbed:checked:focus + span:not(.lever):after {\n border-radius: 2px;\n background-color: #26a69a;\n border-color: #26a69a;\n}\n[type=checkbox].filled-in:disabled:not(:checked) + span:not(.lever):before {\n background-color: transparent;\n border: 2px solid transparent;\n}\n[type=checkbox].filled-in:disabled:not(:checked) + span:not(.lever):after {\n border-color: transparent;\n background-color: #949494;\n}\n[type=checkbox].filled-in:disabled:checked + span:not(.lever):before {\n background-color: transparent;\n}\n[type=checkbox].filled-in:disabled:checked + span:not(.lever):after {\n background-color: #949494;\n border-color: #949494;\n}\n\n/* Switch\n ========================================================================== */\n.switch,\n.switch * {\n -webkit-tap-highlight-color: transparent;\n user-select: none;\n}\n\n.switch label {\n cursor: pointer;\n}\n\n.switch label input[type=checkbox] {\n opacity: 0;\n width: 0;\n height: 0;\n}\n.switch label input[type=checkbox]:checked + .lever {\n background-color: #84c7c1;\n}\n.switch label input[type=checkbox]:checked + .lever:before, .switch label input[type=checkbox]:checked + .lever:after {\n left: 18px;\n}\n.switch label input[type=checkbox]:checked + .lever:after {\n background-color: #26a69a;\n}\n\n.switch label .lever {\n content: \"\";\n display: inline-block;\n position: relative;\n width: 36px;\n height: 14px;\n background-color: rgba(0, 0, 0, 0.38);\n border-radius: 15px;\n transition: background 0.3s ease;\n vertical-align: middle;\n margin: 0 16px;\n}\n.switch label .lever:before, .switch label .lever:after {\n content: \"\";\n position: absolute;\n display: inline-block;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n left: 0;\n top: -3px;\n transition: left 0.3s ease, background 0.3s ease, box-shadow 0.1s ease, transform 0.1s ease;\n}\n.switch label .lever:before {\n background-color: rgba(38, 166, 154, 0.15);\n}\n.switch label .lever:after {\n background-color: #F1F1F1;\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n\ninput[type=checkbox]:checked:not(:disabled) ~ .lever:active::before,\ninput[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::before {\n transform: scale(2.4);\n background-color: rgba(38, 166, 154, 0.15);\n}\n\ninput[type=checkbox]:not(:disabled) ~ .lever:active:before,\ninput[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::before {\n transform: scale(2.4);\n background-color: rgba(0, 0, 0, 0.08);\n}\n\n.switch input[type=checkbox][disabled] + .lever {\n cursor: default;\n background-color: rgba(0, 0, 0, 0.12);\n}\n\n.switch label input[type=checkbox][disabled] + .lever:after,\n.switch label input[type=checkbox][disabled]:checked + .lever:after {\n background-color: #949494;\n}\n\n/* Select Field\n ========================================================================== */\nselect {\n display: none;\n}\n\nselect.browser-default {\n display: block;\n}\n\nselect {\n background-color: rgba(255, 255, 255, 0.9);\n width: 100%;\n padding: 5px;\n border: 1px solid #f2f2f2;\n border-radius: 2px;\n height: 56px;\n}\n\n.select-label {\n position: absolute;\n}\n\n.select-wrapper {\n position: relative;\n}\n.select-wrapper.valid + label, .select-wrapper.invalid + label {\n width: 100%;\n pointer-events: none;\n}\n.select-wrapper input.select-dropdown {\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: none;\n border-bottom: 1px solid #9e9e9e;\n outline: none;\n height: 56px;\n line-height: 56px;\n width: 100%;\n font-size: 16px;\n margin: 0 0 8px 0;\n padding: 0;\n display: block;\n user-select: none;\n z-index: 1;\n}\n.select-wrapper input.select-dropdown:focus {\n border-bottom: 1px solid #26a69a;\n}\n.select-wrapper .caret {\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n margin: auto 0;\n z-index: 0;\n fill: rgba(0, 0, 0, 0.87);\n}\n.select-wrapper + label {\n position: absolute;\n top: -26px;\n font-size: 0.8rem;\n}\n\nselect:disabled {\n color: rgba(0, 0, 0, 0.42);\n}\n\n.select-wrapper.disabled + label {\n color: rgba(0, 0, 0, 0.42);\n}\n.select-wrapper.disabled .caret {\n fill: rgba(0, 0, 0, 0.42);\n}\n\n.select-wrapper input.select-dropdown:disabled {\n color: rgba(0, 0, 0, 0.42);\n cursor: default;\n user-select: none;\n}\n\n.select-wrapper i {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.select-dropdown li.disabled,\n.select-dropdown li.disabled > span,\n.select-dropdown li.optgroup {\n color: rgba(0, 0, 0, 0.3);\n background-color: transparent;\n}\n\nbody.keyboard-focused .select-dropdown.dropdown-content li:focus {\n background-color: rgba(0, 0, 0, 0.08);\n}\n\n.select-dropdown.dropdown-content li:hover {\n background-color: rgba(0, 0, 0, 0.08);\n}\n.select-dropdown.dropdown-content li.selected {\n background-color: rgba(0, 0, 0, 0.03);\n}\n\n.prefix ~ .select-wrapper {\n margin-left: 3rem;\n width: 92%;\n width: calc(100% - 3rem);\n}\n\n.prefix ~ label {\n margin-left: 3rem;\n}\n\n.select-dropdown li img {\n margin: 5px 15px;\n float: right;\n}\n\n.select-dropdown li.optgroup.selected > span {\n color: rgba(0, 0, 0, 0.7);\n}\n.select-dropdown li.optgroup > span {\n color: rgba(0, 0, 0, 0.4);\n}\n.select-dropdown li.optgroup ~ li.optgroup-option {\n padding-left: 1rem;\n}\n\n/* File Input\n ========================================================================== */\n.file-field {\n position: relative;\n}\n.file-field .file-path-wrapper {\n overflow: hidden;\n padding-left: 10px;\n}\n.file-field input.file-path {\n width: 100%;\n}\n.file-field .btn, .file-field .btn-small, .file-field .btn-large {\n float: left;\n height: 56px;\n line-height: 56px;\n}\n.file-field span {\n cursor: pointer;\n}\n.file-field input[type=file] {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n margin: 0;\n padding: 0;\n font-size: 20px;\n cursor: pointer;\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.file-field input[type=file]::-webkit-file-upload-button {\n display: none;\n}\n\n/* Range\n ========================================================================== */\n.range-field {\n position: relative;\n}\n\ninput[type=range],\ninput[type=range] + .thumb {\n cursor: pointer;\n}\n\ninput[type=range] {\n position: relative;\n background-color: transparent;\n border: none;\n outline: none;\n width: 100%;\n margin: 15px 0;\n padding: 0;\n}\ninput[type=range]:focus {\n outline: none;\n}\n\ninput[type=range] + .thumb {\n position: absolute;\n top: 10px;\n left: 0;\n border: none;\n height: 0;\n width: 0;\n border-radius: 50%;\n background-color: #26a69a;\n margin-left: 7px;\n transform-origin: 50% 50%;\n transform: rotate(-45deg);\n}\ninput[type=range] + .thumb .value {\n display: block;\n width: 30px;\n text-align: center;\n color: #26a69a;\n font-size: 0;\n transform: rotate(45deg);\n}\ninput[type=range] + .thumb.active {\n border-radius: 50% 50% 50% 0;\n}\ninput[type=range] + .thumb.active .value {\n color: #fff;\n margin-left: -1px;\n margin-top: 8px;\n font-size: 10px;\n}\n\ninput[type=range] {\n -webkit-appearance: none;\n}\n\ninput[type=range]::-webkit-slider-runnable-track {\n height: 3px;\n background: #c2c0c2;\n border: none;\n}\n\ninput[type=range]::-webkit-slider-thumb {\n border: none;\n height: 14px;\n width: 14px;\n border-radius: 50%;\n background: #26a69a;\n transition: box-shadow 0.3s;\n -webkit-appearance: none;\n background-color: #26a69a;\n transform-origin: 50% 50%;\n margin: -5px 0 0 0;\n}\n\n.keyboard-focused input[type=range]:focus:not(.active)::-webkit-slider-thumb {\n box-shadow: 0 0 0 10px rgba(38, 166, 154, 0.26);\n}\n\ninput[type=range] {\n /* fix for FF unable to apply focus style bug */\n border: 1px solid white;\n /*required for proper track sizing in FF*/\n}\n\ninput[type=range]::-moz-range-track {\n height: 3px;\n background: #c2c0c2;\n border: none;\n}\n\ninput[type=range]::-moz-focus-inner {\n border: 0;\n}\n\ninput[type=range]::-moz-range-thumb {\n border: none;\n height: 14px;\n width: 14px;\n border-radius: 50%;\n background: #26a69a;\n transition: box-shadow 0.3s;\n margin-top: -5px;\n}\n\ninput[type=range]:-moz-focusring {\n outline: 1px solid #fff;\n outline-offset: -1px;\n}\n\n.keyboard-focused input[type=range]:focus:not(.active)::-moz-range-thumb {\n box-shadow: 0 0 0 10px rgba(38, 166, 154, 0.26);\n}\n\ninput[type=range]::-ms-track {\n height: 3px;\n background: transparent;\n border-color: transparent;\n border-width: 6px 0;\n /*remove default tick marks*/\n color: transparent;\n}\n\ninput[type=range]::-ms-fill-lower {\n background: #777;\n}\n\ninput[type=range]::-ms-fill-upper {\n background: #ddd;\n}\n\ninput[type=range]::-ms-thumb {\n border: none;\n height: 14px;\n width: 14px;\n border-radius: 50%;\n background: #26a69a;\n transition: box-shadow 0.3s;\n}\n\n.keyboard-focused input[type=range]:focus:not(.active)::-ms-thumb {\n box-shadow: 0 0 0 10px rgba(38, 166, 154, 0.26);\n}\n\n.parallax {\n /* Set a specific height */\n min-height: 500px;\n /* Create the parallax scrolling effect */\n background-attachment: fixed;\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n}\n\n* {\n box-sizing: border-box;\n}\n\nbody {\n font-family: sans-serif;\n}\n\n.scene {\n width: 200px;\n height: 200px;\n border: 1px solid #CCC;\n margin: 80px;\n perspective: 400px;\n}\n\n.cube {\n width: 200px;\n height: 200px;\n position: relative;\n transform-style: preserve-3d;\n transform: translateZ(-400px);\n transition: transform 1s;\n}\n\n.cube.show-front {\n transform: translateZ(-10px) rotateY(0deg);\n}\n\n.cube.show-right {\n transform: translateZ(-10px) rotateY(-90deg);\n}\n\n.cube.show-back {\n transform: translateZ(-10px) rotateY(-180deg);\n}\n\n.cube.show-left {\n transform: translateZ(-10px) rotateY(90deg);\n}\n\n.cube.show-top {\n transform: translateZ(-10px) rotateX(-90deg);\n}\n\n.cube.show-bottom {\n transform: translateZ(-10px) rotateX(90deg);\n}\n\n.cube__face {\n position: absolute;\n width: 200px;\n height: 200px;\n border: 2px solid black;\n line-height: 200px;\n font-size: 40px;\n font-weight: bold;\n color: white;\n text-align: center;\n}\n\n.cube__face--front {\n background: hsla(0deg, 100%, 50%, 0.7);\n}\n\n.cube__face--right {\n background: hsla(60deg, 100%, 50%, 0.7);\n}\n\n.cube__face--back {\n background: hsla(120deg, 100%, 50%, 0.7);\n}\n\n.cube__face--left {\n background: hsla(180deg, 100%, 50%, 0.7);\n}\n\n.cube__face--top {\n background: hsla(240deg, 100%, 50%, 0.7);\n}\n\n.cube__face--bottom {\n background: hsla(300deg, 100%, 50%, 0.7);\n}\n\n.cube__face--front {\n transform: rotateY(0deg) translateZ(100px);\n}\n\n.cube__face--right {\n transform: rotateY(90deg) translateZ(100px);\n}\n\n.cube__face--back {\n transform: rotateY(180deg) translateZ(100px);\n}\n\n.cube__face--left {\n transform: rotateY(-90deg) translateZ(100px);\n}\n\n.cube__face--top {\n transform: rotateX(90deg) translateZ(100px);\n}\n\n.cube__face--bottom {\n transform: rotateX(-90deg) translateZ(100px);\n}\n\nlabel {\n margin-right: 10px;\n}\n\n.container {\n margin: 0 auto;\n max-width: 1280px;\n width: 90%;\n}\n\n@media only screen and (min-width : 601px) {\n .container {\n width: 85%;\n }\n}\n@media only screen and (min-width : 993px) {\n .container {\n width: 70%;\n }\n}\n.col .row {\n margin-left: -0.5rem;\n margin-right: -0.5rem;\n}\n\n.section {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.section.no-pad {\n padding: 0;\n}\n.section.no-pad-bot {\n padding-bottom: 0;\n}\n.section.no-pad-top {\n padding-top: 0;\n}\n\n.row {\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 20px;\n}\n.row:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.row .col {\n float: left;\n box-sizing: border-box;\n padding: 0 0.5rem;\n min-height: 1px;\n}\n.row .col[class*=push-], .row .col[class*=pull-] {\n position: relative;\n}\n.row .col.s1 {\n width: 8.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s2 {\n width: 16.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s3 {\n width: 25%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s4 {\n width: 33.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s5 {\n width: 41.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s6 {\n width: 50%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s7 {\n width: 58.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s8 {\n width: 66.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s9 {\n width: 75%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s10 {\n width: 83.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s11 {\n width: 91.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.s12 {\n width: 100%;\n margin-left: auto;\n left: auto;\n right: auto;\n}\n.row .col.offset-s1 {\n margin-left: 8.3333333333%;\n}\n.row .col.pull-s1 {\n right: 8.3333333333%;\n}\n.row .col.push-s1 {\n left: 8.3333333333%;\n}\n.row .col.offset-s2 {\n margin-left: 16.6666666667%;\n}\n.row .col.pull-s2 {\n right: 16.6666666667%;\n}\n.row .col.push-s2 {\n left: 16.6666666667%;\n}\n.row .col.offset-s3 {\n margin-left: 25%;\n}\n.row .col.pull-s3 {\n right: 25%;\n}\n.row .col.push-s3 {\n left: 25%;\n}\n.row .col.offset-s4 {\n margin-left: 33.3333333333%;\n}\n.row .col.pull-s4 {\n right: 33.3333333333%;\n}\n.row .col.push-s4 {\n left: 33.3333333333%;\n}\n.row .col.offset-s5 {\n margin-left: 41.6666666667%;\n}\n.row .col.pull-s5 {\n right: 41.6666666667%;\n}\n.row .col.push-s5 {\n left: 41.6666666667%;\n}\n.row .col.offset-s6 {\n margin-left: 50%;\n}\n.row .col.pull-s6 {\n right: 50%;\n}\n.row .col.push-s6 {\n left: 50%;\n}\n.row .col.offset-s7 {\n margin-left: 58.3333333333%;\n}\n.row .col.pull-s7 {\n right: 58.3333333333%;\n}\n.row .col.push-s7 {\n left: 58.3333333333%;\n}\n.row .col.offset-s8 {\n margin-left: 66.6666666667%;\n}\n.row .col.pull-s8 {\n right: 66.6666666667%;\n}\n.row .col.push-s8 {\n left: 66.6666666667%;\n}\n.row .col.offset-s9 {\n margin-left: 75%;\n}\n.row .col.pull-s9 {\n right: 75%;\n}\n.row .col.push-s9 {\n left: 75%;\n}\n.row .col.offset-s10 {\n margin-left: 83.3333333333%;\n}\n.row .col.pull-s10 {\n right: 83.3333333333%;\n}\n.row .col.push-s10 {\n left: 83.3333333333%;\n}\n.row .col.offset-s11 {\n margin-left: 91.6666666667%;\n}\n.row .col.pull-s11 {\n right: 91.6666666667%;\n}\n.row .col.push-s11 {\n left: 91.6666666667%;\n}\n.row .col.offset-s12 {\n margin-left: 100%;\n}\n.row .col.pull-s12 {\n right: 100%;\n}\n.row .col.push-s12 {\n left: 100%;\n}\n@media only screen and (min-width : 601px) {\n .row .col.m1 {\n width: 8.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m2 {\n width: 16.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m3 {\n width: 25%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m4 {\n width: 33.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m5 {\n width: 41.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m6 {\n width: 50%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m7 {\n width: 58.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m8 {\n width: 66.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m9 {\n width: 75%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m10 {\n width: 83.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m11 {\n width: 91.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.m12 {\n width: 100%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.offset-m1 {\n margin-left: 8.3333333333%;\n }\n .row .col.pull-m1 {\n right: 8.3333333333%;\n }\n .row .col.push-m1 {\n left: 8.3333333333%;\n }\n .row .col.offset-m2 {\n margin-left: 16.6666666667%;\n }\n .row .col.pull-m2 {\n right: 16.6666666667%;\n }\n .row .col.push-m2 {\n left: 16.6666666667%;\n }\n .row .col.offset-m3 {\n margin-left: 25%;\n }\n .row .col.pull-m3 {\n right: 25%;\n }\n .row .col.push-m3 {\n left: 25%;\n }\n .row .col.offset-m4 {\n margin-left: 33.3333333333%;\n }\n .row .col.pull-m4 {\n right: 33.3333333333%;\n }\n .row .col.push-m4 {\n left: 33.3333333333%;\n }\n .row .col.offset-m5 {\n margin-left: 41.6666666667%;\n }\n .row .col.pull-m5 {\n right: 41.6666666667%;\n }\n .row .col.push-m5 {\n left: 41.6666666667%;\n }\n .row .col.offset-m6 {\n margin-left: 50%;\n }\n .row .col.pull-m6 {\n right: 50%;\n }\n .row .col.push-m6 {\n left: 50%;\n }\n .row .col.offset-m7 {\n margin-left: 58.3333333333%;\n }\n .row .col.pull-m7 {\n right: 58.3333333333%;\n }\n .row .col.push-m7 {\n left: 58.3333333333%;\n }\n .row .col.offset-m8 {\n margin-left: 66.6666666667%;\n }\n .row .col.pull-m8 {\n right: 66.6666666667%;\n }\n .row .col.push-m8 {\n left: 66.6666666667%;\n }\n .row .col.offset-m9 {\n margin-left: 75%;\n }\n .row .col.pull-m9 {\n right: 75%;\n }\n .row .col.push-m9 {\n left: 75%;\n }\n .row .col.offset-m10 {\n margin-left: 83.3333333333%;\n }\n .row .col.pull-m10 {\n right: 83.3333333333%;\n }\n .row .col.push-m10 {\n left: 83.3333333333%;\n }\n .row .col.offset-m11 {\n margin-left: 91.6666666667%;\n }\n .row .col.pull-m11 {\n right: 91.6666666667%;\n }\n .row .col.push-m11 {\n left: 91.6666666667%;\n }\n .row .col.offset-m12 {\n margin-left: 100%;\n }\n .row .col.pull-m12 {\n right: 100%;\n }\n .row .col.push-m12 {\n left: 100%;\n }\n}\n@media only screen and (min-width : 993px) {\n .row .col.l1 {\n width: 8.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l2 {\n width: 16.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l3 {\n width: 25%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l4 {\n width: 33.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l5 {\n width: 41.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l6 {\n width: 50%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l7 {\n width: 58.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l8 {\n width: 66.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l9 {\n width: 75%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l10 {\n width: 83.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l11 {\n width: 91.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.l12 {\n width: 100%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.offset-l1 {\n margin-left: 8.3333333333%;\n }\n .row .col.pull-l1 {\n right: 8.3333333333%;\n }\n .row .col.push-l1 {\n left: 8.3333333333%;\n }\n .row .col.offset-l2 {\n margin-left: 16.6666666667%;\n }\n .row .col.pull-l2 {\n right: 16.6666666667%;\n }\n .row .col.push-l2 {\n left: 16.6666666667%;\n }\n .row .col.offset-l3 {\n margin-left: 25%;\n }\n .row .col.pull-l3 {\n right: 25%;\n }\n .row .col.push-l3 {\n left: 25%;\n }\n .row .col.offset-l4 {\n margin-left: 33.3333333333%;\n }\n .row .col.pull-l4 {\n right: 33.3333333333%;\n }\n .row .col.push-l4 {\n left: 33.3333333333%;\n }\n .row .col.offset-l5 {\n margin-left: 41.6666666667%;\n }\n .row .col.pull-l5 {\n right: 41.6666666667%;\n }\n .row .col.push-l5 {\n left: 41.6666666667%;\n }\n .row .col.offset-l6 {\n margin-left: 50%;\n }\n .row .col.pull-l6 {\n right: 50%;\n }\n .row .col.push-l6 {\n left: 50%;\n }\n .row .col.offset-l7 {\n margin-left: 58.3333333333%;\n }\n .row .col.pull-l7 {\n right: 58.3333333333%;\n }\n .row .col.push-l7 {\n left: 58.3333333333%;\n }\n .row .col.offset-l8 {\n margin-left: 66.6666666667%;\n }\n .row .col.pull-l8 {\n right: 66.6666666667%;\n }\n .row .col.push-l8 {\n left: 66.6666666667%;\n }\n .row .col.offset-l9 {\n margin-left: 75%;\n }\n .row .col.pull-l9 {\n right: 75%;\n }\n .row .col.push-l9 {\n left: 75%;\n }\n .row .col.offset-l10 {\n margin-left: 83.3333333333%;\n }\n .row .col.pull-l10 {\n right: 83.3333333333%;\n }\n .row .col.push-l10 {\n left: 83.3333333333%;\n }\n .row .col.offset-l11 {\n margin-left: 91.6666666667%;\n }\n .row .col.pull-l11 {\n right: 91.6666666667%;\n }\n .row .col.push-l11 {\n left: 91.6666666667%;\n }\n .row .col.offset-l12 {\n margin-left: 100%;\n }\n .row .col.pull-l12 {\n right: 100%;\n }\n .row .col.push-l12 {\n left: 100%;\n }\n}\n@media only screen and (min-width : 1201px) {\n .row .col.xl1 {\n width: 8.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl2 {\n width: 16.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl3 {\n width: 25%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl4 {\n width: 33.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl5 {\n width: 41.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl6 {\n width: 50%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl7 {\n width: 58.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl8 {\n width: 66.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl9 {\n width: 75%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl10 {\n width: 83.3333333333%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl11 {\n width: 91.6666666667%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.xl12 {\n width: 100%;\n margin-left: auto;\n left: auto;\n right: auto;\n }\n .row .col.offset-xl1 {\n margin-left: 8.3333333333%;\n }\n .row .col.pull-xl1 {\n right: 8.3333333333%;\n }\n .row .col.push-xl1 {\n left: 8.3333333333%;\n }\n .row .col.offset-xl2 {\n margin-left: 16.6666666667%;\n }\n .row .col.pull-xl2 {\n right: 16.6666666667%;\n }\n .row .col.push-xl2 {\n left: 16.6666666667%;\n }\n .row .col.offset-xl3 {\n margin-left: 25%;\n }\n .row .col.pull-xl3 {\n right: 25%;\n }\n .row .col.push-xl3 {\n left: 25%;\n }\n .row .col.offset-xl4 {\n margin-left: 33.3333333333%;\n }\n .row .col.pull-xl4 {\n right: 33.3333333333%;\n }\n .row .col.push-xl4 {\n left: 33.3333333333%;\n }\n .row .col.offset-xl5 {\n margin-left: 41.6666666667%;\n }\n .row .col.pull-xl5 {\n right: 41.6666666667%;\n }\n .row .col.push-xl5 {\n left: 41.6666666667%;\n }\n .row .col.offset-xl6 {\n margin-left: 50%;\n }\n .row .col.pull-xl6 {\n right: 50%;\n }\n .row .col.push-xl6 {\n left: 50%;\n }\n .row .col.offset-xl7 {\n margin-left: 58.3333333333%;\n }\n .row .col.pull-xl7 {\n right: 58.3333333333%;\n }\n .row .col.push-xl7 {\n left: 58.3333333333%;\n }\n .row .col.offset-xl8 {\n margin-left: 66.6666666667%;\n }\n .row .col.pull-xl8 {\n right: 66.6666666667%;\n }\n .row .col.push-xl8 {\n left: 66.6666666667%;\n }\n .row .col.offset-xl9 {\n margin-left: 75%;\n }\n .row .col.pull-xl9 {\n right: 75%;\n }\n .row .col.push-xl9 {\n left: 75%;\n }\n .row .col.offset-xl10 {\n margin-left: 83.3333333333%;\n }\n .row .col.pull-xl10 {\n right: 83.3333333333%;\n }\n .row .col.push-xl10 {\n left: 83.3333333333%;\n }\n .row .col.offset-xl11 {\n margin-left: 91.6666666667%;\n }\n .row .col.pull-xl11 {\n right: 91.6666666667%;\n }\n .row .col.push-xl11 {\n left: 91.6666666667%;\n }\n .row .col.offset-xl12 {\n margin-left: 100%;\n }\n .row .col.pull-xl12 {\n right: 100%;\n }\n .row .col.push-xl12 {\n left: 100%;\n }\n}\n\n.sidenav {\n position: fixed;\n width: 300px;\n left: 0;\n top: 0;\n margin: 0;\n height: 100%;\n height: calc(100% + 60px);\n height: -moz-calc(100%);\n padding-bottom: 60px;\n background-color: #fff;\n z-index: 999;\n overflow-y: auto;\n will-change: transform;\n backface-visibility: hidden;\n transform: translateX(-105%);\n transition: transform 1s;\n}\n.sidenav.right-aligned {\n right: 0;\n left: auto;\n transform: translateX(100%);\n}\n.sidenav .collapsible {\n margin: 0;\n}\n.sidenav li {\n float: none;\n}\n.sidenav li .iconSideLink {\n display: flex;\n align-items: center;\n}\n.sidenav li .iconSideLink svg {\n stroke: rgba(0, 0, 0, 0.2);\n width: 30px;\n}\n.sidenav li.active {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.sidenav li.active svg {\n stroke: white !important;\n width: 30px;\n}\n.sidenav li.last {\n position: sticky;\n top: calc(100% - 45px - 35px);\n}\n.sidenav li > a {\n color: rgba(0, 0, 0, 0.87);\n display: flex;\n font-size: 14px;\n font-weight: 700;\n height: 45px;\n line-height: 45px;\n padding: 0 30px;\n}\n.sidenav li > a:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.sidenav li > a.btn, .sidenav li > a.btn-small, .sidenav li > a.btn-large, .sidenav li > a.btn-flat, .sidenav li > a.btn-floating {\n margin: 10px 15px;\n}\n.sidenav li > a.btn, .sidenav li > a.btn-small, .sidenav li > a.btn-large, .sidenav li > a.btn-floating {\n color: #fff;\n}\n.sidenav li > a.btn-flat {\n color: #343434;\n}\n.sidenav li > a.btn:hover, .sidenav li > a.btn-small:hover, .sidenav li > a.btn-large:hover {\n background-color: #414141;\n}\n.sidenav li > a.btn-floating:hover {\n background-color: #343434;\n}\n.sidenav li > a > i, .sidenav li > a > [class^=mdi-],\n.sidenav li > a li > a > [class*=mdi-], .sidenav li > a > i.s-icon {\n float: left;\n height: 45px;\n line-height: 45px;\n margin: 0 30px 0 0;\n width: 22.5px;\n color: rgba(0, 0, 0, 0.54);\n}\n.sidenav .divider {\n margin: 7.5px 0 0 0;\n}\n.sidenav .subheader {\n cursor: initial;\n pointer-events: none;\n color: rgba(0, 0, 0, 0.54);\n font-size: 14px;\n font-weight: 500;\n line-height: 45px;\n}\n.sidenav .subheader:hover {\n background-color: transparent;\n}\n.sidenav .user-view {\n position: relative;\n padding: 30px 30px 0;\n margin-bottom: 7.5px;\n}\n.sidenav .user-view > a {\n height: auto;\n padding: 0;\n}\n.sidenav .user-view > a:hover {\n background-color: transparent;\n}\n.sidenav .user-view .background {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n}\n.sidenav .user-view .circle,\n.sidenav .user-view .name,\n.sidenav .user-view .email {\n display: block;\n}\n.sidenav .user-view .circle {\n height: 64px;\n width: 64px;\n}\n.sidenav .user-view .name,\n.sidenav .user-view .email {\n font-size: 14px;\n line-height: 22.5px;\n}\n.sidenav .user-view .name {\n margin-top: 16px;\n font-weight: 500;\n}\n.sidenav .user-view .email {\n padding-bottom: 16px;\n font-weight: 400;\n}\n\n.drag-target {\n height: 100%;\n width: 10px;\n position: fixed;\n top: 0;\n z-index: 998;\n}\n.drag-target.right-aligned {\n right: 0;\n}\n\n.sidenav.sidenav-fixed {\n left: 0;\n transform: translateX(0);\n position: fixed;\n}\n.sidenav.sidenav-fixed.right-aligned {\n right: 0;\n left: auto;\n}\n\n@media only screen and (max-width : 992px) {\n .sidenav.sidenav-fixed {\n transform: translateX(-105%);\n }\n .sidenav.sidenav-fixed.right-aligned {\n transform: translateX(105%);\n }\n .sidenav > a {\n padding: 0 15px;\n }\n .sidenav .user-view {\n padding: 15px 15px 0;\n }\n}\n.sidenav .collapsible-body > ul:not(.collapsible) > li.active,\n.sidenav.sidenav-fixed .collapsible-body > ul:not(.collapsible) > li.active {\n background-color: #90caf9;\n}\n.sidenav .collapsible-body > ul:not(.collapsible) > li.active a,\n.sidenav.sidenav-fixed .collapsible-body > ul:not(.collapsible) > li.active a {\n color: #fff;\n}\n\n.sidenav .collapsible-body {\n padding: 0;\n}\n\n.sidenav-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n opacity: 0;\n height: 120vh;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 997;\n display: none;\n}\n\n.with-side-nav-open {\n padding-left: 300px;\n transition: padding 1s;\n}\n\n.btn, .btn-small, .btn-large,\n.btn-flat {\n border: none;\n border-radius: 2px;\n display: inline-block;\n height: 36px;\n line-height: 36px;\n padding: 0 16px;\n text-transform: uppercase;\n vertical-align: middle;\n -webkit-tap-highlight-color: transparent;\n}\n\n.btn.disabled,\n.btn-floating.disabled,\n.btn-large.disabled,\n.btn-small.disabled,\n.btn-flat.disabled,\n.btn:disabled,\n.btn-floating:disabled,\n.btn-large:disabled,\n.btn-small:disabled,\n.btn-flat:disabled,\n.btn[disabled],\n.btn-floating[disabled],\n.btn-large[disabled],\n.btn-small[disabled],\n.btn-flat[disabled] {\n pointer-events: none;\n background-color: #DFDFDF !important;\n box-shadow: none;\n color: #9F9F9F !important;\n cursor: default;\n}\n.btn.disabled:hover,\n.btn-floating.disabled:hover,\n.btn-large.disabled:hover,\n.btn-small.disabled:hover,\n.btn-flat.disabled:hover,\n.btn:disabled:hover,\n.btn-floating:disabled:hover,\n.btn-large:disabled:hover,\n.btn-small:disabled:hover,\n.btn-flat:disabled:hover,\n.btn[disabled]:hover,\n.btn-floating[disabled]:hover,\n.btn-large[disabled]:hover,\n.btn-small[disabled]:hover,\n.btn-flat[disabled]:hover {\n background-color: #DFDFDF !important;\n color: #9F9F9F !important;\n}\n\n.btn,\n.btn-small,\n.btn-large,\n.btn-floating,\n.btn-flat {\n font-size: 14px;\n outline: 0;\n}\n.btn i,\n.btn-floating i,\n.btn-large i,\n.btn-small i,\n.btn-flat i {\n font-size: 1.3rem;\n line-height: inherit;\n}\n\n.btn:focus, .btn-small:focus, .btn-large:focus,\n.btn-floating:focus {\n background-color: #1b1b1b;\n}\n\n.btn, .btn-small, .btn-large {\n text-decoration: none;\n color: #fff;\n background-color: #343434;\n text-align: center;\n letter-spacing: 0.5px;\n transition: background-color 0.2s ease-out;\n cursor: pointer;\n}\n.btn:hover, .btn-small:hover, .btn-large:hover {\n background-color: #414141;\n}\n\n.btn-floating {\n display: inline-block;\n color: #fff;\n position: relative;\n overflow: hidden;\n z-index: 1;\n width: 40px;\n height: 40px;\n line-height: 40px;\n padding: 0;\n background-color: #26a69a;\n border-radius: 50%;\n transition: background-color 0.3s;\n cursor: pointer;\n vertical-align: middle;\n}\n.btn-floating:hover {\n background-color: #26a69a;\n}\n.btn-floating:before {\n border-radius: 0;\n}\n.btn-floating.btn-large {\n width: 56px;\n height: 56px;\n padding: 0;\n}\n.btn-floating.btn-large.halfway-fab {\n bottom: 28px;\n}\n.btn-floating.btn-large i {\n line-height: 56px;\n}\n.btn-floating.btn-small {\n width: 32.4px;\n height: 32.4px;\n}\n.btn-floating.btn-small.halfway-fab {\n bottom: 16.2px;\n}\n.btn-floating.btn-small i {\n line-height: 32.4px;\n}\n.btn-floating.halfway-fab {\n position: absolute;\n right: 24px;\n bottom: 20px;\n}\n.btn-floating.halfway-fab.left {\n right: auto;\n left: 24px;\n}\n.btn-floating i {\n width: inherit;\n display: inline-block;\n text-align: center;\n color: #fff;\n font-size: 1.6rem;\n line-height: 40px;\n}\n\nbutton.btn-floating {\n border: none;\n}\n\n.fixed-action-btn {\n position: fixed;\n right: 23px;\n bottom: 23px;\n padding-top: 15px;\n margin-bottom: 0;\n z-index: 997;\n}\n.fixed-action-btn.active ul {\n visibility: visible;\n}\n.fixed-action-btn.direction-left, .fixed-action-btn.direction-right {\n padding: 0 0 0 15px;\n}\n.fixed-action-btn.direction-left ul, .fixed-action-btn.direction-right ul {\n text-align: right;\n right: 64px;\n top: 50%;\n transform: translateY(-50%);\n height: 100%;\n left: auto;\n /*width 100% only goes to width of button container */\n width: 500px;\n}\n.fixed-action-btn.direction-left ul li, .fixed-action-btn.direction-right ul li {\n display: inline-block;\n margin: 7.5px 15px 0 0;\n}\n.fixed-action-btn.direction-right {\n padding: 0 15px 0 0;\n}\n.fixed-action-btn.direction-right ul {\n text-align: left;\n direction: rtl;\n left: 64px;\n right: auto;\n}\n.fixed-action-btn.direction-right ul li {\n margin: 7.5px 0 0 15px;\n}\n.fixed-action-btn.direction-bottom {\n padding: 0 0 15px 0;\n}\n.fixed-action-btn.direction-bottom ul {\n top: 64px;\n bottom: auto;\n display: flex;\n flex-direction: column-reverse;\n}\n.fixed-action-btn.direction-bottom ul li {\n margin: 15px 0 0 0;\n}\n.fixed-action-btn.toolbar {\n padding: 0;\n height: 56px;\n}\n.fixed-action-btn.toolbar.active > a i {\n opacity: 0;\n}\n.fixed-action-btn.toolbar ul {\n display: flex;\n top: 0;\n bottom: 0;\n z-index: 1;\n}\n.fixed-action-btn.toolbar ul li {\n flex: 1;\n display: inline-block;\n margin: 0;\n height: 100%;\n transition: none;\n}\n.fixed-action-btn.toolbar ul li a {\n display: block;\n overflow: hidden;\n position: relative;\n width: 100%;\n height: 100%;\n background-color: transparent;\n box-shadow: none;\n color: #fff;\n line-height: 56px;\n z-index: 1;\n}\n.fixed-action-btn.toolbar ul li a i {\n line-height: inherit;\n}\n.fixed-action-btn ul {\n left: 0;\n right: 0;\n text-align: center;\n position: absolute;\n bottom: 64px;\n margin: 0;\n visibility: hidden;\n}\n.fixed-action-btn ul li {\n margin-bottom: 15px;\n}\n.fixed-action-btn ul a.btn-floating {\n opacity: 0;\n}\n.fixed-action-btn .fab-backdrop {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: 40px;\n height: 40px;\n background-color: #26a69a;\n border-radius: 50%;\n transform: scale(0);\n}\n\n.btn-flat {\n box-shadow: none;\n background-color: transparent;\n color: #343434;\n cursor: pointer;\n transition: background-color 0.2s;\n}\n.btn-flat:focus, .btn-flat:hover {\n box-shadow: none;\n}\n.btn-flat:focus {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.btn-flat.disabled, .btn-flat.btn-flat[disabled] {\n background-color: transparent !important;\n color: #b3b3b3 !important;\n cursor: default;\n}\n\n.btn-large {\n height: 54px;\n line-height: 54px;\n font-size: 15px;\n padding: 0 28px;\n}\n.btn-large i {\n font-size: 1.6rem;\n}\n\n.btn-small {\n height: 32.4px;\n line-height: 32.4px;\n font-size: 13px;\n}\n.btn-small i {\n font-size: 1.2rem;\n}\n\n.btn-block {\n display: block;\n}\n\n.communTabHeader, .tabs.activeTab-2 .tab-header-over2 .tab-header, .tabs.activeTab-2 .tab-header-over1 .tab-header, .tabs.activeTab-2 .tab-header-over0 .tab-header, .tabs.activeTab-1 .tab-header-over2 .tab-header, .tabs.activeTab-1 .tab-header-over1 .tab-header, .tabs.activeTab-1 .tab-header-over0 .tab-header, .tabs.activeTab-0 .tab-header-over2 .tab-header, .tabs.activeTab-0 .tab-header-over1 .tab-header, .tabs.activeTab-0 .tab-header-over0 .tab-header {\n height: 100px;\n padding: 40px;\n}\n\n.tabs {\n min-height: calc(100% - 150px);\n margin-top: 30px;\n padding: 0 !important;\n border-radius: 40px !important;\n}\n.tabs .innerpage {\n min-height: 70VH !important;\n}\n.tabs .tabs-header-overlay {\n display: flex;\n height: 100px;\n}\n.tabs.activeTab-0 .tab-header-over0 {\n flex: 1;\n background-color: #80c4fd;\n border-radius: 40px 0 0 0;\n}\n.tabs.activeTab-0 .tab-header-over0 .tab-header {\n background-color: #cbe7fe;\n border-radius: 40px 40px 0 0;\n}\n.tabs.activeTab-0 .tab-header-over1 {\n flex: 1;\n background: linear-gradient(0.25turn, #cbe7fe, #35a2fb);\n border-radius: 0 0 0 0;\n}\n.tabs.activeTab-0 .tab-header-over1 .tab-header {\n background-color: #80c4fd;\n border-radius: 0 40px 0 40px;\n}\n.tabs.activeTab-0 .tab-header-over2 {\n flex: 1;\n background-color: #80c4fd;\n border-radius: 0 40px 0 0;\n}\n.tabs.activeTab-0 .tab-header-over2 .tab-header {\n background-color: #35a2fb;\n border-radius: 0 40px 0 40px;\n}\n.tabs.activeTab-1 .tab-header-over0 {\n flex: 1;\n background-color: #cbe7fe;\n border-radius: 40px 0 0 0;\n}\n.tabs.activeTab-1 .tab-header-over0 .tab-header {\n background-color: #80c4fd;\n border-radius: 40px 0 40px 0;\n}\n.tabs.activeTab-1 .tab-header-over1 {\n flex: 1;\n background: linear-gradient(0.25turn, #80c4fd, #35a2fb);\n border-radius: 0 0 0 0;\n}\n.tabs.activeTab-1 .tab-header-over1 .tab-header {\n background-color: #cbe7fe;\n border-radius: 40px 40px 0 0;\n}\n.tabs.activeTab-1 .tab-header-over2 {\n flex: 1;\n background-color: #cbe7fe;\n border-radius: 0 40px 0 0;\n}\n.tabs.activeTab-1 .tab-header-over2 .tab-header {\n background-color: #35a2fb;\n border-radius: 0 40px 0 40px;\n}\n.tabs.activeTab-2 .tab-header-over0 {\n flex: 1;\n background-color: #35a2fb;\n border-radius: 40px 0 0 0;\n}\n.tabs.activeTab-2 .tab-header-over0 .tab-header {\n background-color: #80c4fd;\n border-radius: 40px 0 40px 0;\n}\n.tabs.activeTab-2 .tab-header-over1 {\n flex: 1;\n background: linear-gradient(0.25turn, #80c4fd, #cbe7fe);\n border-radius: 0 0 0 0;\n}\n.tabs.activeTab-2 .tab-header-over1 .tab-header {\n background-color: #35a2fb;\n border-radius: 40px 0 40px 0;\n}\n.tabs.activeTab-2 .tab-header-over2 {\n flex: 1;\n background-color: #35a2fb;\n border-radius: 0 40px 0 0;\n}\n.tabs.activeTab-2 .tab-header-over2 .tab-header {\n background-color: #cbe7fe;\n border-radius: 40px 40px 0 0;\n}\n.tabs .tab-content {\n background-color: #cbe7fe;\n padding: 10px;\n border-top: 0;\n min-height: 70vh;\n border-radius: 0 0 40px 40px;\n padding-bottom: 20px;\n}\n\n.loader-overlay {\n z-index: 999;\n position: absolute;\n height: 100vh;\n width: 100vw;\n top: 0;\n left: 0;\n background-color: rgba(102, 100, 100, 0.603);\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n}\n.loader-overlay .loader {\n border: 7px solid #f3f3f3; /* Light grey */\n border-top: 7px solid #2ea2cc; /* Blue */\n border-radius: 50%;\n width: 70px;\n height: 70px;\n animation: spin 2s linear infinite;\n}\n.loader-overlay .loader-text {\n margin-top: 20px;\n font-size: 25px;\n color: #2ea2cc;\n}\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.card-panel {\n transition: box-shadow 0.25s;\n padding: 24px;\n margin: 0.3333333333rem 0 0.6666666667rem 0;\n border-radius: 2px;\n background-color: #fff;\n}\n\n.card {\n position: relative;\n margin: 0.3333333333rem 0 0.6666666667rem 0;\n background-color: #fff;\n transition: box-shadow 0.25s;\n border-radius: 2px;\n}\n.card .card-title {\n font-size: 24px;\n font-weight: 300;\n}\n.card .card-title.activator {\n cursor: pointer;\n}\n.card.small, .card.medium, .card.large {\n position: relative;\n}\n.card.small .card-image, .card.medium .card-image, .card.large .card-image {\n max-height: 60%;\n overflow: hidden;\n}\n.card.small .card-image + .card-content, .card.medium .card-image + .card-content, .card.large .card-image + .card-content {\n max-height: 40%;\n}\n.card.small .card-content, .card.medium .card-content, .card.large .card-content {\n max-height: 100%;\n overflow: hidden;\n}\n.card.small .card-action, .card.medium .card-action, .card.large .card-action {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n}\n.card.small {\n height: 300px;\n}\n.card.medium {\n height: 400px;\n}\n.card.large {\n height: 500px;\n}\n.card.horizontal {\n display: flex;\n}\n.card.horizontal.small .card-image, .card.horizontal.medium .card-image, .card.horizontal.large .card-image {\n height: 100%;\n max-height: none;\n overflow: visible;\n}\n.card.horizontal.small .card-image img, .card.horizontal.medium .card-image img, .card.horizontal.large .card-image img {\n height: 100%;\n}\n.card.horizontal .card-image {\n max-width: 50%;\n}\n.card.horizontal .card-image img {\n border-radius: 2px 0 0 2px;\n max-width: 100%;\n width: auto;\n}\n.card.horizontal .card-stacked {\n display: flex;\n flex-direction: column;\n flex: 1;\n position: relative;\n}\n.card.horizontal .card-stacked .card-content {\n flex-grow: 1;\n}\n.card.sticky-action .card-action {\n z-index: 2;\n}\n.card.sticky-action .card-reveal {\n z-index: 1;\n padding-bottom: 64px;\n}\n.card .card-image {\n position: relative;\n}\n.card .card-image img {\n display: block;\n border-radius: 2px 2px 0 0;\n position: relative;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n width: 100%;\n}\n.card .card-image .card-title {\n color: #fff;\n position: absolute;\n bottom: 0;\n left: 0;\n max-width: 100%;\n padding: 24px;\n}\n.card .card-content {\n padding: 24px;\n border-radius: 0 0 2px 2px;\n}\n.card .card-content p {\n margin: 0;\n}\n.card .card-content .card-title {\n display: block;\n line-height: 32px;\n margin-bottom: 8px;\n}\n.card .card-content .card-title i {\n line-height: 32px;\n}\n.card .card-action {\n background-color: inherit;\n border-top: 1px solid rgba(160, 160, 160, 0.2);\n position: relative;\n padding: 16px 24px;\n}\n.card .card-action:last-child {\n border-radius: 0 0 2px 2px;\n}\n.card .card-action a:not(.btn):not(.btn-large):not(.btn-small):not(.btn-large):not(.btn-floating) {\n color: #ffab40;\n margin-right: 24px;\n transition: color 0.3s ease;\n text-transform: uppercase;\n}\n.card .card-action a:not(.btn):not(.btn-large):not(.btn-small):not(.btn-large):not(.btn-floating):hover {\n color: #ffd8a6;\n}\n.card .card-reveal {\n padding: 24px;\n position: absolute;\n background-color: #fff;\n width: 100%;\n overflow-y: auto;\n left: 0;\n top: 100%;\n height: 100%;\n z-index: 3;\n display: none;\n}\n.card .card-reveal .card-title {\n cursor: pointer;\n display: block;\n}\n\n/*\n @license\n Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n Code distributed by Google as part of the polymer project is also\n subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n/**************************/\n/* STYLES FOR THE SPINNER */\n/**************************/\n/*\n * Constants:\n * STROKEWIDTH = 3px\n * ARCSIZE = 270 degrees (amount of circle the arc takes up)\n * ARCTIME = 1333ms (time it takes to expand and contract arc)\n * ARCSTARTROT = 216 degrees (how much the start location of the arc\n * should rotate each time, 216 gives us a\n * 5 pointed star shape (it's 360/5 * 3).\n * For a 7 pointed star, we might do\n * 360/7 * 3 = 154.286)\n * CONTAINERWIDTH = 28px\n * SHRINK_TIME = 400ms\n */\n.preloader-wrapper {\n display: inline-block;\n position: relative;\n width: 50px;\n height: 50px;\n}\n.preloader-wrapper.small {\n width: 36px;\n height: 36px;\n}\n.preloader-wrapper.big {\n width: 64px;\n height: 64px;\n}\n.preloader-wrapper.active {\n /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */\n -webkit-animation: container-rotate 1568ms linear infinite;\n animation: container-rotate 1568ms linear infinite;\n}\n\n@-webkit-keyframes container-rotate {\n to {\n -webkit-transform: rotate(360deg);\n }\n}\n@keyframes container-rotate {\n to {\n transform: rotate(360deg);\n }\n}\n.spinner-layer {\n position: absolute;\n width: 100%;\n height: 100%;\n opacity: 0;\n border-color: #26a69a;\n}\n\n.spinner-blue,\n.spinner-blue-only {\n border-color: #4285f4;\n}\n\n.spinner-red,\n.spinner-red-only {\n border-color: #db4437;\n}\n\n.spinner-yellow,\n.spinner-yellow-only {\n border-color: #f4b400;\n}\n\n.spinner-green,\n.spinner-green-only {\n border-color: #0f9d58;\n}\n\n/**\n * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):\n *\n * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't\n * guarantee that the animation will start _exactly_ after that value. So we avoid using\n * animation-delay and instead set custom keyframes for each color (as redundant as it\n * seems).\n *\n * We write out each animation in full (instead of separating animation-name,\n * animation-duration, etc.) because under the polyfill, Safari does not recognize those\n * specific properties properly, treats them as -webkit-animation, and overrides the\n * other animation rules. See https://github.com/Polymer/platform/issues/53.\n */\n.active .spinner-layer.spinner-blue {\n /* durations: 4 * ARCTIME */\n -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;\n 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;\n}\n\n.active .spinner-layer.spinner-red {\n /* durations: 4 * ARCTIME */\n -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;\n 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;\n}\n\n.active .spinner-layer.spinner-yellow {\n /* durations: 4 * ARCTIME */\n -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;\n 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;\n}\n\n.active .spinner-layer.spinner-green {\n /* durations: 4 * ARCTIME */\n -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;\n 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;\n}\n\n.active .spinner-layer,\n.active .spinner-layer.spinner-blue-only,\n.active .spinner-layer.spinner-red-only,\n.active .spinner-layer.spinner-yellow-only,\n.active .spinner-layer.spinner-green-only {\n /* durations: 4 * ARCTIME */\n opacity: 1;\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n@-webkit-keyframes fill-unfill-rotate {\n 12.5% {\n -webkit-transform: rotate(135deg);\n } /* 0.5 * ARCSIZE */\n 25% {\n -webkit-transform: rotate(270deg);\n } /* 1 * ARCSIZE */\n 37.5% {\n -webkit-transform: rotate(405deg);\n } /* 1.5 * ARCSIZE */\n 50% {\n -webkit-transform: rotate(540deg);\n } /* 2 * ARCSIZE */\n 62.5% {\n -webkit-transform: rotate(675deg);\n } /* 2.5 * ARCSIZE */\n 75% {\n -webkit-transform: rotate(810deg);\n } /* 3 * ARCSIZE */\n 87.5% {\n -webkit-transform: rotate(945deg);\n } /* 3.5 * ARCSIZE */\n to {\n -webkit-transform: rotate(1080deg);\n } /* 4 * ARCSIZE */\n}\n@keyframes fill-unfill-rotate {\n 12.5% {\n transform: rotate(135deg);\n } /* 0.5 * ARCSIZE */\n 25% {\n transform: rotate(270deg);\n } /* 1 * ARCSIZE */\n 37.5% {\n transform: rotate(405deg);\n } /* 1.5 * ARCSIZE */\n 50% {\n transform: rotate(540deg);\n } /* 2 * ARCSIZE */\n 62.5% {\n transform: rotate(675deg);\n } /* 2.5 * ARCSIZE */\n 75% {\n transform: rotate(810deg);\n } /* 3 * ARCSIZE */\n 87.5% {\n transform: rotate(945deg);\n } /* 3.5 * ARCSIZE */\n to {\n transform: rotate(1080deg);\n } /* 4 * ARCSIZE */\n}\n@-webkit-keyframes blue-fade-in-out {\n from {\n opacity: 1;\n }\n 25% {\n opacity: 1;\n }\n 26% {\n opacity: 0;\n }\n 89% {\n opacity: 0;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes blue-fade-in-out {\n from {\n opacity: 1;\n }\n 25% {\n opacity: 1;\n }\n 26% {\n opacity: 0;\n }\n 89% {\n opacity: 0;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 1;\n }\n}\n@-webkit-keyframes red-fade-in-out {\n from {\n opacity: 0;\n }\n 15% {\n opacity: 0;\n }\n 25% {\n opacity: 1;\n }\n 50% {\n opacity: 1;\n }\n 51% {\n opacity: 0;\n }\n}\n@keyframes red-fade-in-out {\n from {\n opacity: 0;\n }\n 15% {\n opacity: 0;\n }\n 25% {\n opacity: 1;\n }\n 50% {\n opacity: 1;\n }\n 51% {\n opacity: 0;\n }\n}\n@-webkit-keyframes yellow-fade-in-out {\n from {\n opacity: 0;\n }\n 40% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 75% {\n opacity: 1;\n }\n 76% {\n opacity: 0;\n }\n}\n@keyframes yellow-fade-in-out {\n from {\n opacity: 0;\n }\n 40% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 75% {\n opacity: 1;\n }\n 76% {\n opacity: 0;\n }\n}\n@-webkit-keyframes green-fade-in-out {\n from {\n opacity: 0;\n }\n 65% {\n opacity: 0;\n }\n 75% {\n opacity: 1;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n@keyframes green-fade-in-out {\n from {\n opacity: 0;\n }\n 65% {\n opacity: 0;\n }\n 75% {\n opacity: 1;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n/**\n * Patch the gap that appear between the two adjacent div.circle-clipper while the\n * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11).\n */\n.gap-patch {\n position: absolute;\n top: 0;\n left: 45%;\n width: 10%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n}\n\n.gap-patch .circle {\n width: 1000%;\n left: -450%;\n}\n\n.circle-clipper {\n display: inline-block;\n position: relative;\n width: 50%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n}\n.circle-clipper .circle {\n width: 200%;\n height: 100%;\n border-width: 3px; /* STROKEWIDTH */\n border-style: solid;\n border-color: inherit;\n border-bottom-color: transparent !important;\n border-radius: 50%;\n -webkit-animation: none;\n animation: none;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n}\n.circle-clipper.left .circle {\n left: 0;\n border-right-color: transparent !important;\n -webkit-transform: rotate(129deg);\n transform: rotate(129deg);\n}\n.circle-clipper.right .circle {\n left: -100%;\n border-left-color: transparent !important;\n -webkit-transform: rotate(-129deg);\n transform: rotate(-129deg);\n}\n\n.active .circle-clipper.left .circle {\n /* duration: ARCTIME */\n -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .circle-clipper.right .circle {\n /* duration: ARCTIME */\n -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n@-webkit-keyframes left-spin {\n from {\n -webkit-transform: rotate(130deg);\n }\n 50% {\n -webkit-transform: rotate(-5deg);\n }\n to {\n -webkit-transform: rotate(130deg);\n }\n}\n@keyframes left-spin {\n from {\n transform: rotate(130deg);\n }\n 50% {\n transform: rotate(-5deg);\n }\n to {\n transform: rotate(130deg);\n }\n}\n@-webkit-keyframes right-spin {\n from {\n -webkit-transform: rotate(-130deg);\n }\n 50% {\n -webkit-transform: rotate(5deg);\n }\n to {\n -webkit-transform: rotate(-130deg);\n }\n}\n@keyframes right-spin {\n from {\n transform: rotate(-130deg);\n }\n 50% {\n transform: rotate(5deg);\n }\n to {\n transform: rotate(-130deg);\n }\n}\n#spinnerContainer.cooldown {\n /* duration: SHRINK_TIME */\n -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);\n animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n@-webkit-keyframes fade-out {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n@keyframes fade-out {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n.progress {\n position: relative;\n height: 4px;\n display: block;\n width: 100%;\n background-color: #acece6;\n border-radius: 2px;\n margin: 0.3333333333rem 0 0.6666666667rem 0;\n overflow: hidden;\n}\n.progress .determinate {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n background-color: #26a69a;\n transition: width 0.3s linear;\n}\n.progress .indeterminate {\n background-color: #26a69a;\n}\n.progress .indeterminate:before {\n content: \"\";\n position: absolute;\n background-color: inherit;\n top: 0;\n left: 0;\n bottom: 0;\n will-change: left, right;\n animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\n}\n.progress .indeterminate:after {\n content: \"\";\n position: absolute;\n background-color: inherit;\n top: 0;\n left: 0;\n bottom: 0;\n will-change: left, right;\n animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;\n animation-delay: 1.15s;\n}\n\n@keyframes indeterminate {\n 0% {\n left: -35%;\n right: 100%;\n }\n 60% {\n left: 100%;\n right: -90%;\n }\n 100% {\n left: 100%;\n right: -90%;\n }\n}\n@keyframes indeterminate-short {\n 0% {\n left: -200%;\n right: 100%;\n }\n 60% {\n left: 107%;\n right: -8%;\n }\n 100% {\n left: 107%;\n right: -8%;\n }\n}\n.flash-message {\n position: absolute;\n padding: 2px 10px;\n border-radius: 5px;\n z-index: 99999;\n right: 0;\n bottom: 0;\n font-size: 14px;\n}\n.flash-message.info {\n background-color: #beddbe;\n border: 1px solid #728f72;\n}\n.flash-message.warn {\n background-color: #f5e6d0;\n border: 1px solid #ea7d17;\n}\n.flash-message.error {\n background-color: #e5b2bc;\n border: 1px solid #e33257;\n}\n\n@keyframes messageIn {\n from {\n right: 80%;\n }\n to {\n right: 0;\n }\n}\n.pulse {\n overflow: visible;\n position: relative;\n}\n.pulse::before {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background-color: inherit;\n border-radius: inherit;\n transition: opacity 0.3s, transform 0.3s;\n animation: pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;\n}\n\n@keyframes pulse-animation {\n 0% {\n opacity: 1;\n transform: scale(1);\n }\n 50% {\n opacity: 0;\n transform: scale(1.5);\n }\n 100% {\n opacity: 0;\n transform: scale(1.5);\n }\n}\n.dropdown-content {\n background-color: #fff;\n margin: 0;\n display: flow;\n min-width: 100px;\n overflow-y: auto;\n position: absolute;\n left: 0;\n top: 0;\n z-index: 9999;\n transform-origin: 0 0;\n}\n.dropdown-content:focus {\n outline: 0;\n}\n.dropdown-content li {\n clear: both;\n color: rgba(0, 0, 0, 0.87);\n cursor: pointer;\n min-height: 50px;\n line-height: 1.5rem;\n width: 100%;\n text-align: left;\n}\n.dropdown-content li:hover, .dropdown-content li.active {\n background-color: #eee;\n}\n.dropdown-content li:focus {\n outline: none;\n}\n.dropdown-content li.divider {\n min-height: 0;\n height: 1px;\n}\n.dropdown-content li > a, .dropdown-content li > span {\n font-size: 16px;\n color: #26a69a;\n display: block;\n line-height: 22px;\n padding: 14px 16px;\n}\n.dropdown-content li > span > label {\n top: 1px;\n left: 0;\n height: 18px;\n}\n.dropdown-content li > a > i {\n height: inherit;\n line-height: inherit;\n float: left;\n margin: 0 24px 0 0;\n width: 24px;\n}\n\nbody.keyboard-focused .dropdown-content li:focus {\n background-color: #dadada;\n}\n\n.input-field.col .dropdown-content [type=checkbox] + label {\n top: 1px;\n left: 0;\n height: 18px;\n transform: none;\n}\n\n.dropdown-trigger {\n cursor: pointer;\n}\n\nnav {\n color: #fff;\n background-color: #90caf9;\n width: 100%;\n height: 56px;\n line-height: 56px;\n}\nnav.nav-extended {\n height: auto;\n}\nnav.nav-extended .nav-wrapper {\n display: flex;\n align-items: center;\n min-height: 56px;\n height: auto;\n}\nnav.nav-extended .nav-content {\n position: relative;\n line-height: normal;\n}\nnav a {\n color: #fff;\n}\nnav i,\nnav [class^=mdi-], nav [class*=mdi-],\nnav i.s-icons {\n display: block;\n font-size: 24px;\n height: 56px;\n line-height: 56px;\n}\nnav .nav-wrapper {\n position: relative;\n height: 100%;\n}\n@media only screen and (min-width : 993px) {\n nav a.sidenav-trigger {\n display: none;\n }\n}\nnav .sidenav-trigger {\n float: left;\n position: relative;\n z-index: 1;\n height: 56px;\n margin: 0 18px;\n}\nnav .sidenav-trigger i {\n height: 56px;\n line-height: 56px;\n}\nnav .brand-logo {\n position: absolute;\n color: #fff;\n display: inline-block;\n font-size: 2.1rem;\n padding: 0;\n}\nnav .brand-logo img.circle {\n height: 32px;\n width: 32px;\n}\nnav .brand-logo.center {\n left: 50%;\n transform: translateX(-50%);\n}\n@media only screen and (max-width : 992px) {\n nav .brand-logo {\n left: 50%;\n transform: translateX(-50%);\n }\n nav .brand-logo.left, nav .brand-logo.right {\n padding: 0;\n transform: none;\n }\n nav .brand-logo.left {\n left: 0.5rem;\n }\n nav .brand-logo.right {\n right: 0.5rem;\n left: auto;\n }\n}\nnav .brand-logo.right {\n right: 0.5rem;\n padding: 0;\n}\nnav .brand-logo i,\nnav .brand-logo [class^=mdi-], nav .brand-logo [class*=mdi-],\nnav .brand-logo i.s-icons {\n float: left;\n margin-right: 15px;\n}\nnav .nav-title {\n display: inline-block;\n font-size: 32px;\n padding: 28px 0;\n}\nnav ul {\n margin: 0;\n}\nnav ul li {\n transition: background-color 0.3s;\n float: left;\n padding: 0;\n}\nnav ul li.active {\n background-color: rgba(0, 0, 0, 0.1);\n}\nnav ul a {\n transition: background-color 0.3s;\n font-size: 1rem;\n color: #fff;\n display: block;\n padding: 0 15px;\n cursor: pointer;\n}\nnav ul a.btn, nav ul a.btn-small, nav ul a.btn-large, nav ul a.btn-flat, nav ul a.btn-floating {\n margin-top: -2px;\n margin-left: 15px;\n margin-right: 15px;\n}\nnav ul a.btn > .material-icons, nav ul a.btn-small > .material-icons, nav ul a.btn-large > .material-icons, nav ul a.btn-flat > .material-icons, nav ul a.btn-floating > .material-icons {\n height: inherit;\n line-height: inherit;\n}\nnav ul a:hover {\n background-color: rgba(0, 0, 0, 0.1);\n}\nnav ul.left {\n float: left;\n}\nnav form {\n height: 100%;\n}\nnav .input-field {\n margin: 0;\n height: 100%;\n}\nnav .input-field input {\n height: 100%;\n font-size: 1.2rem;\n border: none;\n padding-left: 2rem;\n}\nnav .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 {\n border: none;\n box-shadow: none;\n}\nnav .input-field label {\n top: 0;\n left: 0;\n}\nnav .input-field label i {\n color: rgba(255, 255, 255, 0.7);\n transition: color 0.3s;\n}\nnav .input-field label.active i {\n color: #fff;\n}\n\n.navbar-fixed {\n position: relative;\n height: 56px;\n z-index: 997;\n}\n.navbar-fixed nav {\n position: fixed;\n}\n\n@media only screen and (min-width : 601px) {\n nav.nav-extended .nav-wrapper {\n min-height: 64px;\n }\n nav, nav .nav-wrapper i, nav a.sidenav-trigger, nav a.sidenav-trigger i {\n height: 64px;\n line-height: 64px;\n }\n .navbar-fixed {\n height: 64px;\n }\n}","@font-face {\n font-family: sweeticons;\n font-style: normal;\n font-weight: 400;\n src: url(\"./icons/assets/SweetIcons-Regular.eot\");\n src: url(\"./icons/assets/SweetIcons-Regular.woff2\") format(\"woff2\"),\n url(\"./icons/assets/SweetIcons-Regular.woff\") format(\"woff\"),\n url(\"./icons/assets/SweetIcons-Regular.ttf\") format(\"truetype\");\n}\n\n\n\n\n.s-icon,\n.s-icons,\n.sweet-icons,\n.sweet-icon {\n font-family: sweeticons, sans-serif;\n font-weight: normal;\n font-style: normal;\n font-size: 28px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n -webkit-font-smoothing: antialiased;\n text-rendering: optimizeLegibility;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-feature-settings: \"liga\";\n -moz-font-feature-settings: \"liga=1\";\n -moz-font-feature-settings: \"liga\";\n font-feature-settings: \"liga\";\n text-align: center;\n}\n","@import \"./colorsVars\";\n\n@each $color_name, $color in $colors {\n @each $color_type, $color_value in $color {\n @if $color_type == \"base\" {\n .#{$color_name} {\n background-color: $color_value !important;\n }\n .#{$color_name}-text {\n color: $color_value !important;\n }\n .#{$color_name}-waves .waves-ripple {\n background-color: $color_value !important;\n }\n } @else {\n .#{$color_name}.#{$color_type} {\n background-color: $color_value !important;\n }\n .#{$color_name}-text.text-#{$color_type} {\n color: $color_value !important;\n }\n .#{$color_name}-waves.waves-#{$color_type} .waves-ripple {\n background-color: $color_value !important;\n }\n }\n }\n}\n\n// ShadeVars classes\n$shades: (\n \"black\": #000000,\n \"white\": #ffffff,\n \"transparent\": transparent\n);\n// Shade classes\n@each $color, $color_value in $shades {\n .#{$color} {\n background-color: $color_value !important;\n }\n .#{$color}-text {\n color: $color_value !important;\n }\n}\n\n\n\n// usage: color(\"name_of_color\", \"type_of_color\")\n// to avoid to repeating map-get($colors, ...)\n\n@function color($color, $type) {\n @if map-has-key($colors, $color) {\n $curr_color: map-get($colors, $color);\n @if map-has-key($curr_color, $type) {\n @return map-get($curr_color, $type);\n }\n }\n @warn \"Unknown `#{$color}` - `#{$type}` in $colors.\";\n @return null;\n}\n","/**\n * prism.js Twilight theme\n * Based (more or less) on the Twilight theme originally of Textmate fame.\n * @author Remy Bach\n */\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n\t color: white;\n\t background: none;\n\t font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\n\t text-align: left;\n\t text-shadow: 0 -.1em .2em black;\n\t white-space: pre;\n\t word-spacing: normal;\n\t word-break: normal;\n\t word-wrap: normal;\n\t line-height: 1.5;\n \n\t -moz-tab-size: 4;\n\t -o-tab-size: 4;\n\t tab-size: 4;\n \n\t -webkit-hyphens: none;\n\t -moz-hyphens: none;\n\t -ms-hyphens: none;\n\t hyphens: none;\n }\n \n pre[class*=\"language-\"],\n :not(pre) > code[class*=\"language-\"] {\n\t background: hsl(0, 0%, 8%); /* #141414 */\n }\n \n /* Code blocks */\n pre[class*=\"language-\"] {\n\t border-radius: .5em;\n\t border: .3em solid hsl(0, 0%, 33%); /* #282A2B */\n\t box-shadow: 1px 1px .5em black inset;\n\t margin: .5em 0;\n\t overflow: auto;\n\t padding: 1em;\n }\n \n pre[class*=\"language-\"]::-moz-selection {\n\t /* Firefox */\n\t background: hsl(200, 4%, 16%); /* #282A2B */\n }\n \n pre[class*=\"language-\"]::selection {\n\t /* Safari */\n\t background: hsl(200, 4%, 16%); /* #282A2B */\n }\n \n /* Text Selection colour */\n pre[class*=\"language-\"]::-moz-selection, pre[class*=\"language-\"] ::-moz-selection,\n code[class*=\"language-\"]::-moz-selection, code[class*=\"language-\"] ::-moz-selection {\n\t text-shadow: none;\n\t background: hsla(0, 0%, 93%, 0.15); /* #EDEDED */\n }\n \n pre[class*=\"language-\"]::selection, pre[class*=\"language-\"] ::selection,\n code[class*=\"language-\"]::selection, code[class*=\"language-\"] ::selection {\n\t text-shadow: none;\n\t background: hsla(0, 0%, 93%, 0.15); /* #EDEDED */\n }\n \n /* Inline code */\n :not(pre) > code[class*=\"language-\"] {\n\t border-radius: .3em;\n\t border: .13em solid hsl(0, 0%, 33%); /* #545454 */\n\t box-shadow: 1px 1px .3em -.1em black inset;\n\t padding: .15em .2em .05em;\n\t white-space: normal;\n }\n \n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n\t color: hsl(0, 0%, 47%); /* #777777 */\n }\n \n .token.punctuation {\n\t opacity: .7;\n }\n \n .namespace {\n\t opacity: .7;\n }\n \n .token.tag,\n .token.boolean,\n .token.number,\n .token.deleted {\n\t color: hsl(14, 58%, 55%); /* #CF6A4C */\n }\n \n .token.keyword,\n .token.property,\n .token.selector,\n .token.constant,\n .token.symbol,\n .token.builtin {\n\t color: hsl(53, 89%, 79%); /* #F9EE98 */\n }\n \n .token.attr-name,\n .token.attr-value,\n .token.string,\n .token.char,\n .token.operator,\n .token.entity,\n .token.url,\n .language-css .token.string,\n .style .token.string,\n .token.variable,\n .token.inserted {\n\t color: hsl(76, 21%, 52%); /* #8F9D6A */\n }\n \n .token.atrule {\n\t color: hsl(218, 22%, 55%); /* #7587A6 */\n }\n \n .token.regex,\n .token.important {\n\t color: hsl(42, 75%, 65%); /* #E9C062 */\n }\n \n .token.important,\n .token.bold {\n\t font-weight: bold;\n }\n .token.italic {\n\t font-style: italic;\n }\n \n .token.entity {\n\t cursor: help;\n }\n \n pre[data-line] {\n\t padding: 1em 0 1em 3em;\n\t position: relative;\n }\n \n /* Markup */\n .language-markup .token.tag,\n .language-markup .token.attr-name,\n .language-markup .token.punctuation {\n\t color: hsl(33, 33%, 52%); /* #AC885B */\n }\n \n /* Make the tokens sit above the line highlight so the colours don't look faded. */\n .token {\n\t position: relative;\n\t z-index: 1;\n }\n \n .line-highlight {\n\t background: hsla(0, 0%, 33%, 0.25); /* #545454 */\n\t background: linear-gradient(to right, hsla(0, 0%, 33%, .1) 70%, hsla(0, 0%, 33%, 0)); /* #545454 */\n\t border-bottom: 1px dashed hsl(0, 0%, 33%); /* #545454 */\n\t border-top: 1px dashed hsl(0, 0%, 33%); /* #545454 */\n\t left: 0;\n\t line-height: inherit;\n\t margin-top: 0.75em; /* Same as .prism’s padding-top */\n\t padding: inherit 0;\n\t pointer-events: none;\n\t position: absolute;\n\t right: 0;\n\t white-space: pre;\n\t z-index: 0;\n }\n \n .line-highlight:before,\n .line-highlight[data-end]:after {\n\t background-color: hsl(215, 15%, 59%); /* #8794A6 */\n\t border-radius: 999px;\n\t box-shadow: 0 1px white;\n\t color: hsl(24, 20%, 95%); /* #F5F2F0 */\n\t content: attr(data-start);\n\t font: bold 65%/1.5 sans-serif;\n\t left: .6em;\n\t min-width: 1em;\n\t padding: 0 .5em;\n\t position: absolute;\n\t text-align: center;\n\t text-shadow: none;\n\t top: .4em;\n\t vertical-align: .3em;\n }\n \n .line-highlight[data-end]:after {\n\t bottom: .4em;\n\t content: attr(data-end);\n\t top: auto;\n }\n ","@import 'https://fonts.googleapis.com/css?family=Ubuntu';\n\n\n\n.window {\n font-family: 'Ubuntu', sans-serif; \n font-size : 17px ;\n width : 600px ; \n margin : 75px auto ; \n background : #2c3e50; \n height : 350px ; \n border-radius : 5px ;\n display : relative ; \n box-shadow: 10px 10px 10px #888888;\n}\n\n.afterclose {\n color : #34495e ; \n display: none ; \n text-align: center ; \n}\n\n.open {\n color : #fff ; \n padding : 15px ; \n background: #2ecc71 ; \n border-radius: 4px ; \n border: none ; \n}\n\n.bash {\n width : 600px ; \n background : #34495e; \n height : 310px ; \n border-radius : 5px ;\n top: 40px;\n display : absolute; \n color : #fff ;\n text-align: left;\n .command{\n &::before{\n content: \"user@machine $ : \";\n color: #2ecc71;\n }\n\n }\n .resulta{\n &::before{\n content: \">>\";\n color: #2ecc71;\n }\n\n }\n}\n\n/* effected by controllers */\n\n.windowmax {\n width : 100% ; \n margin : auto ; \n background : #2c3e50; \n height : 1000px; \n border-radius : 5px ;\n display : relative ; \n}\n\n.windowmin {\n width : 300px ; \n height : 45px ;\n background : #2c3e50; \n border-radius : 5px ; \n bottom : 0 ; \n position: fixed;\n}\n\n.bashmax {\n display : absolute ; \n width : 100% ; \n background : #34495e; \n height : 960px ; \n border-radius : 5px ;\n bottom: 0;\n color : #fff ;\n}\n\n/* !--end--! */\n\n.buttons {\n width : 15px ;\n height : 15px ; \n border-radius : 50% ;\n float : right ; \n margin : 13px 4px;\n border: none ; \n}\n\n.close {\n background : #e74c3c ;\n}\n\n.maximize{\n background : #f1c40f ;\n}\n\n.minimize{\n background : #2ecc71 ;\n}\n\n.result {\n display : none ;\n}\n\n.controls {\n height : 40px ; \n top : 0 ; \n}\n\n.title {\n color : #fff ; \n font-weight: bold ; \n padding : 10px;\n}\n",".material-tooltip {\n padding: 10px 8px;\n font-size: 1rem;\n z-index: 2000;\n border-radius: 2px;\n color: #fff;\n min-height: 36px;\n line-height: 120%;\n opacity: 0;\n position: absolute;\n text-align: center;\n max-width: calc(100% - 4px);\n overflow: hidden;\n left: 0;\n top: 0;\n pointer-events: none;\n visibility: hidden;\n background-color: #323232;\n}\n\n.backdrop {\n position: absolute;\n opacity: 0;\n height: 7px;\n width: 14px;\n border-radius: 0 0 50% 50%;\n background-color: #323232;\n z-index: -1;\n transform-origin: 50% 0%;\n visibility: hidden;\n}\n","// Z-levels\n.shadow-0 {\n box-shadow: none !important;\n}\n\n/* 2dp elevation modified*/\n.shadow-1 {\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14),\n 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);\n}\n.shadow-1-half {\n box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12),\n 0 3px 1px -1px rgba(0, 0, 0, 0.2);\n}\n\n/* 6dp elevation modified*/\n.shadow-2 {\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12),\n 0 2px 4px -1px rgba(0, 0, 0, 0.3);\n}\n\n/* 12dp elevation modified*/\n.shadow-3 {\n box-shadow: 0 8px 17px 2px rgba(0, 0, 0, 0.14),\n 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2);\n}\n\n/* 16dp elevation */\n.shadow-4 {\n box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14),\n 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -7px rgba(0, 0, 0, 0.2);\n}\n\n/* 24dp elevation */\n.shadow-5 {\n box-shadow: 0 24px 38px 3px rgba(0, 0, 0, 0.14),\n 0 9px 46px 8px rgba(0, 0, 0, 0.12), 0 11px 15px -7px rgba(0, 0, 0, 0.2);\n}\n\n/* 24dp elevation */\n.invert-shadow-5 {\n box-shadow: \n 38px 0 0 0 rgba(0, 0, 0, 0.14),\n 46px 0 0 0 rgba(0, 0, 0, 0.12), \n 15px 0 0 0 rgba(0, 0, 0, 0.2);\n }\n\n.hoverable {\n transition: box-shadow 0.25s;\n\n &:hover {\n box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2),\n 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n }\n}\n","\n/*!\n * Waves v0.6.0\n * http://fian.my.id/Waves\n *\n * Copyright 2014 Alfiana E. Sibuea and other contributors\n * Released under the MIT license\n * https://github.com/fians/Waves/blob/master/LICENSE\n */\n\n\n.waves-effect {\n position: relative;\n cursor: pointer;\n display: inline-block;\n overflow: hidden;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n vertical-align: middle;\n z-index: 1;\n transition: .3s ease-out;\n\n .waves-ripple {\n position: absolute;\n border-radius: 50%;\n width: 20px;\n height: 20px;\n margin-top:-10px;\n margin-left:-10px;\n opacity: 0;\n\n background: rgba(0,0,0,0.2);\n transition: all 0.7s ease-out;\n transition-property: transform, opacity;\n transform: scale(0);\n pointer-events: none;\n }\n\n // Waves Colors\n &.waves-light .waves-ripple {\n background-color: rgba(255, 255, 255, 0.45);\n }\n &.waves-red .waves-ripple {\n background-color: rgba(244, 67, 54, .70);\n }\n &.waves-yellow .waves-ripple {\n background-color: rgba(255, 235, 59, .70);\n }\n &.waves-orange .waves-ripple {\n background-color: rgba(255, 152, 0, .70);\n }\n &.waves-purple .waves-ripple {\n background-color: rgba(156, 39, 176, 0.70);\n }\n &.waves-green .waves-ripple {\n background-color: rgba(76, 175, 80, 0.70);\n }\n &.waves-teal .waves-ripple {\n background-color: rgba(0, 150, 136, 0.70);\n }\n\n // Style input button bug.\n input[type=\"button\"], input[type=\"reset\"], input[type=\"submit\"] {\n border: 0;\n font-style: normal;\n font-size: inherit;\n text-transform: inherit;\n background: none;\n }\n\n img {\n position: relative;\n z-index: -1;\n }\n}\n\n.waves-notransition {\n transition: none #{\"!important\"};\n}\n\n.waves-circle {\n transform: translateZ(0);\n -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);\n}\n\n.waves-input-wrapper {\n border-radius: 0.2em;\n vertical-align: bottom;\n\n .waves-button-input {\n position: relative;\n top: 0;\n left: 0;\n z-index: 1;\n }\n}\n\n.waves-circle {\n text-align: center;\n width: 2.5em;\n height: 2.5em;\n line-height: 2.5em;\n border-radius: 50%;\n -webkit-mask-image: none;\n}\n\n.waves-block {\n display: block;\n}\n\n/* Firefox Bug: link not triggered */\n.waves-effect .waves-ripple {\n z-index: -1;\n}",".modal {\n &:focus {\n outline: none;\n }\n\n @extend .shadow-5;\n\n //display: none;\n position: fixed;\n left: 0;\n right: 0;\n background-color: #fafafa;\n padding: 0;\n max-height: 70%;\n width: 55%;\n margin: auto;\n overflow-y: auto;\n\n border-radius: 2px;\n will-change: top, opacity;\n\n @media #{$medium-and-down} {\n width: 80%;\n }\n\n h1,h2,h3,h4 {\n margin-top: 0;\n }\n\n .modal-content {\n padding: 24px;\n }\n .modal-close {\n cursor: pointer;\n }\n\n .modal-footer {\n border-radius: 0 0 2px 2px;\n background-color: #fafafa;\n padding: 4px 6px;\n height: 56px;\n width: 100%;\n text-align: right;\n\n .btn, .btn-flat {\n margin: 6px 0;\n }\n }\n .modal-header {\n border-radius: 2px 2px 0 0 ;\n background-color: #fafafa;\n padding: 6px 4px;\n height: 56px;\n width: 100%;\n text-align: right;\n\n .btn, .btn-flat {\n margin: 6px 0;\n }\n }\n}\n.modal-overlay {\n position: fixed;\n z-index: 999;\n top: -25%;\n left: 0;\n bottom: 0;\n right: 0;\n height: 125%;\n width: 100%;\n background: #000;\n display: none;\n\n will-change: opacity;\n}\n\n// Modal with fixed action footer\n.modal.modal-fixed-footer {\n padding: 0;\n height: 70%;\n\n .modal-content {\n position: absolute;\n height: calc(100% - 56px);\n max-height: 100%;\n width: 100%;\n overflow-y: auto;\n }\n\n .modal-footer {\n border-top: 1px solid rgba(0,0,0,.1);\n position: absolute;\n bottom: 0;\n }\n}\n\n// Modal Bottom Sheet Style\n.modal.bottom-sheet {\n top: auto;\n bottom: -100%;\n margin: 0;\n width: 100%;\n max-height: 45%;\n border-radius: 0;\n will-change: bottom, opacity;\n}\n","html,\nbody,\n#root {\n margin: 0;\n height: 100%;\n}\n\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\n.noselect {\n -webkit-touch-callout: none; /* iOS Safari */\n -webkit-user-select: none; /* Safari */\n -khtml-user-select: none; /* Konqueror HTML */\n -moz-user-select: none; /* Old versions of Firefox */\n -ms-user-select: none; /* Internet Explorer/Edge */\n user-select: none;\n /* Non-prefixed version, currently\n supported by Chrome, Edge, Opera and Firefox */\n}\n\nul {\n &:not(.browser-default) {\n padding-left: 0;\n list-style-type: none;\n\n & > li {\n list-style-type: none;\n }\n }\n}\n\na {\n\tcolor: $link-color;\n\ttext-decoration: none;\n\n // Gets rid of tap active state\n -webkit-tap-highlight-color: transparent;\n}\n\n.w-100 {\n width: 100%;\n}\n\n.right-align {\n text-align: right;\n}\n.center-align{\n text-align: center;\n}\n\n.v-center {\n display: flex;\n align-items: center;\n}\n\n\n.mb1 {\n margin-bottom: 10px;\n}\n\n\n// Collections\n.collection {\n margin: $element-top-margin 0 $element-bottom-margin 0;\n border: 1px solid $collection-border-color;\n border-radius: 2px;\n overflow: hidden;\n position: relative;\n .collection-item {\n background-color: $collection-bg-color;\n line-height: $collection-line-height;\n padding: 10px 20px;\n margin: 0;\n border-bottom: 1px solid $collection-border-color;\n\n &.hover {\n &:hover {\n background-color: $collection-hover-bg-color;\n }\n }\n\n // Avatar Collection\n &.avatar {\n min-height: 84px;\n padding-left: 72px;\n position: relative;\n\n\n // Don't style circles inside preloader classes.\n &:not(.circle-clipper) > .circle,\n :not(.circle-clipper) > .circle {\n position: absolute;\n width: 42px;\n height: 42px;\n overflow: hidden;\n left: 15px;\n display: inline-block;\n vertical-align: middle;\n }\n\n i.circle {\n font-size: 18px;\n line-height: 42px;\n color: #fff;\n background-color: #999;\n text-align: center;\n }\n\n\n .title {\n font-size: 16px;\n }\n\n p {\n margin: 0;\n }\n\n .secondary-content {\n position: absolute;\n top: 16px;\n right: 16px;\n }\n\n }\n\n\n &:last-child {\n border-bottom: none;\n }\n\n &.active {\n background-color: $collection-active-bg-color;\n color: $collection-active-color;\n\n .secondary-content {\n color: #fff;\n }\n }\n }\n\n a.collection-item {\n display: block;\n transition: .25s;\n color: $collection-link-color;\n\n &:not(.active) {\n &:hover {\n background-color: $collection-hover-bg-color;\n }\n }\n }\n\n &.with-header {\n .collection-header {\n background-color: $collection-bg-color;\n border-bottom: 1px solid $collection-border-color;\n padding: 10px 20px;\n }\n\n .collection-item {\n padding-left: 30px;\n }\n\n .collection-item.avatar {\n padding-left: 72px;\n }\n }\n\n}\n\n// Made less specific to allow easier overriding\n.secondary-content {\n float: right;\n color: $secondary-color;\n}\n\n.collapsible .collection {\n margin: 0;\n border: none;\n}\n\n\n.modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: 100vh;\n width: 100vw;\n padding: 20px 0 20px 0;\n background-color: rgba(0, 0, 0, .5);\n z-index: 999;\n display: flex;\n justify-content: center;\n //align-items: center;\n .innerform{\n max-width: 650px;\n form{\n overflow: hidden;\n }\n }\n}\n\n\n\n\n\n\n\n\n\n\n\n/*********************\n Media Query Classes\n**********************/\n.hide-on-small-only, .hide-on-small-and-down {\n @media #{$small-and-down} {\n display: none !important;\n }\n}\n.hide-on-med-and-down {\n @media #{$medium-and-down} {\n display: none !important;\n }\n}\n.hide-on-med-and-up {\n @media #{$medium-and-up} {\n display: none !important;\n }\n}\n.hide-on-med-only {\n @media only screen and (min-width: $small-screen) and (max-width: $medium-screen) {\n display: none !important;\n }\n}\n.hide-on-large-only {\n @media #{$large-and-up} {\n display: none !important;\n }\n}\n.hide-on-extra-large-only {\n @media #{$extra-large-and-up} {\n display: none !important;\n }\n}\n.show-on-extra-large {\n @media #{$extra-large-and-up} {\n display: block !important;\n }\n}\n.show-on-large {\n @media #{$large-and-up} {\n display: block !important;\n }\n}\n.show-on-medium {\n @media only screen and (min-width: $small-screen) and (max-width: $medium-screen) {\n display: block !important;\n }\n}\n.show-on-small {\n @media #{$small-and-down} {\n display: block !important;\n }\n}\n.show-on-medium-and-up {\n @media #{$medium-and-up} {\n display: block !important;\n }\n}\n.show-on-medium-and-down {\n @media #{$medium-and-down} {\n display: block !important;\n }\n}\n\n\n// Center text on mobile\n.center-on-small-only {\n @media #{$small-and-down} {\n text-align: center;\n }\n}\n\n\n\n\n\n\n\n\n/*******************\n Utility Classes\n*******************/\n\n.hide {\n display: none !important;\n}\n\n// Text Align\n.left-align {\n text-align: left;\n}\n.right-align {\n text-align: right\n}\n.center, .center-align {\n text-align: center;\n}\n\n.left {\n float: left !important;\n}\n.right {\n float: right !important;\n}\n\n// No Text Select\n.no-select {\n user-select: none;\n}\n\n.circle {\n border-radius: 50%;\n}\n\n.center-block {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n\n.truncate {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.no-padding {\n padding: 0 !important;\n}\n","@use \"sass:math\";\n$primary-color: color(\"blue\", \"lighten-3\") !default;\n$primary-color-light: lighten($primary-color, 15%) !default;\n$primary-color-dark: darken($primary-color, 15%) !default;\n\n$secondary-color: color(\"teal\", \"lighten-1\") !default;\n$success-color: color(\"green\", \"base\") !default;\n$error-color: color(\"red\", \"base\") !default;\n$link-color: color(\"light-blue\", \"darken-1\") !default;\n\n\n\n// 2. Badges\n// ==========================================================================\n\n$badge-bg-color: $secondary-color !default;\n$badge-height: 22px !default;\n\n\n\n// 7. Chips\n// ==========================================================================\n\n$chip-bg-color: #e4e4e4 !default;\n$chip-border-color: #9e9e9e !default;\n$chip-selected-color: #26a69a !default;\n$chip-margin: 5px !default;\n\n\n// 16. Spinners | Loaders\n// ==========================================================================\n\n$spinner-default-color: $secondary-color !default;\n\n// 24. Progress Bar\n// ==========================================================================\n\n$progress-bar-color: $secondary-color !default;\n\n\n\n\n\n//inputs\n\n$input-height: 56px;\n\n// 6. Collapsible\n// ==========================================================================\n\n$collapsible-height: 3rem !default;\n$collapsible-line-height: $collapsible-height !default;\n$collapsible-header-color: #fff !default;\n$collapsible-border-color: #ddd !default;\n\n// 10. Forms\n// ==========================================================================\n\n// Text Inputs + Textarea\n$input-height: 3rem !default;\n$input-border-color: color(\"grey\", \"base\") !default;\n$input-border: 1px solid $input-border-color !default;\n$input-background: #fff !default;\n$input-error-color: $error-color !default;\n$input-success-color: $success-color !default;\n$input-focus-color: $secondary-color !default;\n$input-font-size: 16px !default;\n$input-margin-bottom: 8px;\n$input-margin: 0 0 $input-margin-bottom 0 !default;\n$input-padding: 0 !default;\n$label-font-size: .8rem !default;\n$input-disabled-color: rgba(0,0,0, .42) !default;\n$input-disabled-solid-color: #949494 !default;\n$input-disabled-border: 1px dotted $input-disabled-color !default;\n$input-invalid-border: 1px solid $input-error-color !default;\n$input-icon-size: 2rem;\n$placeholder-text-color: lighten($input-border-color, 20%) !default;\n\n// Radio Buttons\n$radio-fill-color: $secondary-color !default;\n$radio-empty-color: #5a5a5a !default;\n$radio-border: 2px solid $radio-fill-color !default;\n\n// Range\n$range-height: 14px !default;\n$range-width: 14px !default;\n$track-height: 3px !default;\n\n// Select\n$select-border: 1px solid #f2f2f2 !default;\n$select-background: rgba(255, 255, 255, 0.90) !default;\n$select-focus: 1px solid lighten($secondary-color, 47%) !default;\n$select-option-hover: rgba(0,0,0,.08) !default;\n$select-option-focus: rgba(0,0,0,.08) !default;\n$select-option-selected: rgba(0,0,0,.03) !default;\n$select-padding: 5px !default;\n$select-radius: 2px !default;\n$select-disabled-color: rgba(0,0,0,.3) !default;\n\n// Switches\n$switch-bg-color: $secondary-color !default;\n$switch-checked-lever-bg: desaturate(lighten($switch-bg-color, 25%), 25%) !default;\n$switch-unchecked-bg: #F1F1F1 !default;\n$switch-unchecked-lever-bg: rgba(0,0,0,.38) !default;\n$switch-radius: 15px !default;\n\n// 11. Global\n// ==========================================================================\n\n// Media Query Ranges\n$small-screen-up: 601px !default;\n$medium-screen-up: 993px !default;\n$large-screen-up: 1201px !default;\n$small-screen: 600px !default;\n$medium-screen: 992px !default;\n$large-screen: 1200px !default;\n\n$medium-and-up: \"only screen and (min-width : #{$small-screen-up})\" !default;\n$large-and-up: \"only screen and (min-width : #{$medium-screen-up})\" !default;\n$extra-large-and-up: \"only screen and (min-width : #{$large-screen-up})\" !default;\n$small-and-down: \"only screen and (max-width : #{$small-screen})\" !default;\n$medium-and-down: \"only screen and (max-width : #{$medium-screen})\" !default;\n$medium-only: \"only screen and (min-width : #{$small-screen-up}) and (max-width : #{$medium-screen})\" !default;\n\n\n\n// 12. Grid\n// ==========================================================================\n\n$num-cols: 12 !default;\n$gutter-width: 1rem !default;\n$element-top-margin: math.div($gutter-width, 3) !default;\n$element-bottom-margin: math.div($gutter-width * 2, 3) !default;\n\n// 13. Navigation Bar\n// ==========================================================================\n\n$navbar-height: 64px !default;\n$navbar-line-height: $navbar-height !default;\n$navbar-height-mobile: 56px !default;\n$navbar-line-height-mobile: $navbar-height-mobile !default;\n$navbar-font-size: 1rem !default;\n$navbar-font-color: #fff !default;\n$navbar-brand-font-size: 2.1rem !default;\n\n\n// 14. Side Navigation\n// ==========================================================================\n$button-raised-color: #fff !default;\n$button-flat-color: #343434 !default;\n$button-raised-background: #343434 !default;\n$primary-color:#343434 !default;\n\n\n \n$sidenav-width: 300px !default;\n$sidenav-font-size: 14px !default;\n$sidenav-font-color: rgba(0,0,0,.87) !default;\n$sidenav-bg-color: #fff !default;\n$sidenav-padding: 15px !default;\n$sidenav-item-height: 45px !default;\n$sidenav-line-height: $sidenav-item-height !default;\n\n\n\n\n\n\n// 3. Buttons\n// ==========================================================================\n\n$primary-color: green !default;\n$primary-color-light: lighten($primary-color, 15%) !default;\n$primary-color-dark: darken($primary-color, 15%) !default;\n$secondary-color: red !default;\n\n\n// Shared styles\n$button-border: none !default;\n$button-background-focus: lighten($secondary-color, 4%) !default;\n$button-font-size: 14px !default;\n$button-icon-font-size: 1.3rem !default;\n$button-height: 36px !default;\n$button-padding: 0 16px !default;\n$button-radius: 2px !default;\n\n// Disabled styles\n$button-disabled-background: #DFDFDF !default;\n$button-disabled-color: #9F9F9F !default;\n\n// Raised buttons\n$button-raised-background: $secondary-color !default;\n$button-raised-background-hover: lighten($button-raised-background, 5%) !default;\n$button-raised-color: #fff !default;\n\n// Large buttons\n$button-large-font-size: 15px !default;\n$button-large-icon-font-size: 1.6rem !default;\n$button-large-height: $button-height * 1.5 !default;\n$button-floating-large-size: 56px !default;\n\n// Small buttons\n$button-small-font-size: 13px !default;\n$button-small-icon-font-size: 1.2rem !default;\n$button-small-height: $button-height * .9 !default;\n$button-floating-small-size: $button-height * .9 !default;\n\n// Flat buttons\n$button-flat-color: #343434 !default;\n$button-flat-disabled-color: lighten(#999, 10%) !default;\n\n// Floating buttons\n$button-floating-background: $secondary-color !default;\n$button-floating-background-hover: $button-floating-background !default;\n$button-floating-color: #fff !default;\n$button-floating-size: 40px !default;\n$button-floating-radius: 50% !default;\n\n\n\n\n// 4. Cards\n// ==========================================================================\n\n$card-padding: 24px !default;\n$card-bg-color: #fff !default;\n$card-link-color: color(\"orange\", \"accent-2\") !default;\n$card-link-color-light: lighten($card-link-color, 20%) !default;\n\n\n\n\n\n\n// 23. Collections\n// ==========================================================================\n\n$collection-border-color: #e0e0e0 !default;\n$collection-bg-color: #fff !default;\n$collection-active-bg-color: $secondary-color !default;\n$collection-active-color: lighten($secondary-color, 55%) !default;\n$collection-hover-bg-color: #ddd !default;\n$collection-link-color: $secondary-color !default;\n$collection-line-height: 1.5rem !default;\n\n\n\n\n\n// 9. Dropdown\n// ==========================================================================\n\n$dropdown-bg-color: #fff !default;\n$dropdown-hover-bg-color: #eee !default;\n$dropdown-color: $secondary-color !default;\n$dropdown-item-height: 50px !default;\n\n\n$off-black: rgba(0, 0, 0, 0.87) !default;","// Badges\nspan.badge {\n min-width: 3rem;\n padding: 0 6px;\n margin-left: 14px;\n text-align: center;\n font-size: 1rem;\n line-height: $badge-height;\n height: $badge-height;\n color: color('grey', 'darken-1');\n float: right;\n box-sizing: border-box;\n\n &.new {\n font-weight: 300;\n font-size: 0.8rem;\n color: #fff;\n background-color: $badge-bg-color;\n border-radius: 2px;\n }\n\n &.new:after {\n content: \" new\";\n }\n\n &[data-badge-caption]::after {\n content: \" \" attr(data-badge-caption);\n }\n}\n\n// Special cases\nnav ul a span.badge {\n display: inline-block;\n float: none;\n margin-left: 4px;\n line-height: $badge-height;\n height: $badge-height;\n -webkit-font-smoothing: auto;\n}\n\n// Line height centering\n.collection-item span.badge {\n margin-top: calc(calc($collection-line-height / 2) - calc($badge-height / 2));\n}\n\n.collapsible span.badge {\n margin-left: auto;\n}\n\n.sidenav span.badge {\n margin-top: calc(calc($sidenav-line-height / 2) - calc($badge-height / 2));\n}\n\ntable span.badge {\n display: inline-block;\n float: none;\n margin-left: auto;\n}\n",".chip {\n &:focus {\n outline: none;\n background-color: $chip-selected-color;\n color: #fff;\n }\n\n display: inline-block;\n height: 32px;\n font-size: 13px;\n font-weight: 500;\n color: rgba(0,0,0,.6);\n line-height: 32px;\n padding: 0 12px;\n border-radius: 16px;\n background-color: $chip-bg-color;\n margin-bottom: $chip-margin;\n margin-right: $chip-margin;\n\n > img {\n float: left;\n margin: 0 8px 0 -12px;\n height: 32px;\n width: 32px;\n border-radius: 50%;\n }\n\n .close {\n cursor: pointer;\n float: right;\n font-size: 16px;\n line-height: 32px;\n padding-left: 8px;\n }\n}\n\n.chips {\n border: none;\n border-bottom: 1px solid $chip-border-color;\n box-shadow: none;\n margin: $input-margin;\n min-height: 45px;\n outline: none;\n transition: all .3s;\n\n &.focus {\n border-bottom: 1px solid $chip-selected-color;\n box-shadow: 0 1px 0 0 $chip-selected-color;\n }\n\n &:hover {\n cursor: text;\n }\n\n .input {\n background: none;\n border: 0;\n color: rgba(0,0,0,.6);\n display: inline-block;\n font-size: $input-font-size;\n height: $input-height;\n line-height: 32px;\n outline: 0;\n margin: 0;\n padding: 0 !important;\n width: 120px !important;\n }\n\n .input:focus {\n border: 0 !important;\n box-shadow: none !important;\n }\n\n // Autocomplete\n .autocomplete-content {\n margin-top: 0;\n margin-bottom: 0;\n }\n}\n\n// Form prefix\n.prefix ~ .chips {\n margin-left: 3rem;\n width: 92%;\n width: calc(100% - 3rem);\n}\n.chips:empty ~ label {\n font-size: 0.8rem;\n transform: translateY(-140%);\n}\n",".collapsible {\n border-top: 1px solid $collapsible-border-color;\n border-right: 1px solid $collapsible-border-color;\n border-left: 1px solid $collapsible-border-color;\n margin: $element-top-margin 0 $element-bottom-margin 0;\n @extend .shadow-1;\n}\n\n.collapsible-header {\n &:focus {\n outline: 0\n }\n\n display: flex;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n line-height: 1.5;\n padding: 1rem;\n background-color: $collapsible-header-color;\n border-bottom: 1px solid $collapsible-border-color;\n\n i {\n width: 2rem;\n font-size: 1.6rem;\n display: inline-block;\n text-align: center;\n margin-right: 1rem;\n }\n}\n.keyboard-focused .collapsible-header:focus {\n background-color: #eee;\n}\n\n.collapsible-body {\n display: none;\n border-bottom: 1px solid $collapsible-border-color;\n box-sizing: border-box;\n padding: 2rem;\n}\n\n// Sidenav collapsible styling\n.sidenav,\n.sidenav.fixed {\n\n .collapsible {\n border: none;\n box-shadow: none;\n\n li { padding: 0; }\n }\n\n .collapsible-header {\n background-color: transparent;\n border: none;\n line-height: inherit;\n height: inherit;\n padding: 0 $sidenav-padding;\n\n &:hover { background-color: rgba(0,0,0,.05); }\n i { line-height: inherit; }\n }\n\n .collapsible-body {\n border: 0;\n background-color: $collapsible-header-color;\n\n li a {\n padding: 0 (7.5px + $sidenav-padding)\n 0 (15px + $sidenav-padding);\n }\n }\n\n}\n\n// Popout Collapsible\n\n.collapsible.popout {\n border: none;\n box-shadow: none;\n > li {\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\n // transform: scaleX(.92);\n margin: 0 24px;\n transition: margin .35s cubic-bezier(0.250, 0.460, 0.450, 0.940);\n }\n > li.active {\n box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);\n margin: 16px 0;\n // transform: scaleX(1);\n }\n}\n","// 23. Collections - variables\n// ==========================================================================\n\n$collection-border-color: #e0e0e0 !default;\n$collection-bg-color: #fff !default;\n$collection-active-bg-color: $secondary-color !default;\n$collection-active-color: lighten($secondary-color, 55%) !default;\n$collection-hover-bg-color: #ddd !default;\n$collection-link-color: $secondary-color !default;\n$collection-line-height: 1.5rem !default;\n// 23. Collections\n// ==========================================================================\n\n.collection {\n margin: $element-top-margin 0 $element-bottom-margin 0;\n border: 1px solid $collection-border-color;\n border-radius: 2px;\n overflow: hidden;\n position: relative;\n \n .collection-item {\n background-color: $collection-bg-color;\n line-height: $collection-line-height;\n padding: 10px 20px;\n margin: 0;\n border-bottom: 1px solid $collection-border-color;\n \n // Avatar Collection\n &.avatar {\n min-height: 84px;\n padding-left: 72px;\n position: relative;\n \n // Don't style circles inside preloader classes.\n &:not(.circle-clipper) > .circle,\n :not(.circle-clipper) > .circle {\n position: absolute;\n width: 42px;\n height: 42px;\n overflow: hidden;\n left: 15px;\n display: inline-block;\n vertical-align: middle;\n }\n i.circle {\n font-size: 18px;\n line-height: 42px;\n color: #fff;\n background-color: #999;\n text-align: center;\n }\n \n \n .title {\n font-size: 16px;\n }\n \n p {\n margin: 0;\n }\n \n .secondary-content {\n position: absolute;\n top: 16px;\n right: 16px;\n }\n \n }\n \n \n &:last-child {\n border-bottom: none;\n }\n \n &.active {\n background-color: $collection-active-bg-color;\n color: $collection-active-color;\n \n .secondary-content {\n color: #fff;\n }\n }\n }\n a.collection-item{\n display: block;\n transition: .25s;\n color: $collection-link-color;\n &:not(.active) {\n &:hover {\n background-color: $collection-hover-bg-color;\n }\n }\n }\n \n &.with-header {\n .collection-header {\n background-color: $collection-bg-color;\n border-bottom: 1px solid $collection-border-color;\n padding: 10px 20px;\n }\n .collection-item {\n padding-left: 30px;\n }\n .collection-item.avatar {\n padding-left: 72px;\n }\n }\n .secondary-content {\n float: right;\n color: $secondary-color;\n }\n }","// Remove Focus Boxes\nselect:focus {\n outline: $select-focus;\n}\n\nbutton:focus {\n outline: none;\n background-color: $button-background-focus;\n}\n\nlabel {\n font-size: $label-font-size;\n color: $input-border-color;\n}\n\n@import 'input-fields';\n@import 'radio-buttons';\n@import 'checkboxes';\n@import 'switches';\n@import 'select';\n@import 'file-input';\n@import 'range';\n","/* Text Inputs + Textarea\n ========================================================================== */\n\n/* Style Placeholders */\n@use \"sass:math\";\n::placeholder {\n color: $placeholder-text-color;\n}\n\n/* Text inputs */\n\ninput:not([type]),\ninput[type=text]:not(.browser-default),\ninput[type=password]:not(.browser-default),\ninput[type=email]:not(.browser-default),\ninput[type=url]:not(.browser-default),\ninput[type=time]:not(.browser-default),\ninput[type=date]:not(.browser-default),\ninput[type=datetime]:not(.browser-default),\ninput[type=datetime-local]:not(.browser-default),\ninput[type=tel]:not(.browser-default),\ninput[type=number]:not(.browser-default),\ninput[type=search]:not(.browser-default),\ntextarea.textarea {\n\n // General Styles\n background-color: transparent;\n border: none;\n border-bottom: $input-border;\n border-radius: 0;\n outline: none;\n height: $input-height;\n width: 100%;\n font-size: $input-font-size;\n margin: $input-margin;\n padding: $input-padding;\n box-shadow: none;\n box-sizing: content-box;\n transition: box-shadow .3s, border .3s;\n\n // Disabled input style\n &:disabled,\n &[readonly=\"readonly\"] {\n color: $input-disabled-color;\n border-bottom: $input-disabled-border;\n }\n\n // Disabled label style\n &:disabled+label,\n &[readonly=\"readonly\"]+label {\n color: $input-disabled-color;\n }\n\n // Focused input style\n &:focus:not([readonly]) {\n border-bottom: 1px solid $input-focus-color;\n box-shadow: 0 1px 0 0 $input-focus-color;\n }\n\n // Focused label style\n &:focus:not([readonly])+label {\n color: $input-focus-color;\n }\n\n // Hide helper text on data message\n &.valid ~ .helper-text[data-success],\n &:focus.valid ~ .helper-text[data-success],\n &.invalid ~ .helper-text[data-error],\n &:focus.invalid ~ .helper-text[data-error] {\n @extend %hidden-text;\n }\n\n // Valid Input Style\n &.valid,\n &:focus.valid {\n @extend %valid-input-style;\n }\n\n // Custom Success Message\n &.valid ~ .helper-text:after,\n &:focus.valid ~ .helper-text:after {\n @extend %custom-success-message;\n }\n &:focus.valid ~ label {\n color: $input-success-color;\n }\n\n // Invalid Input Style\n &.invalid,\n &:focus.invalid {\n @extend %invalid-input-style;\n }\n\n // Custom Error message\n &.invalid ~ .helper-text:after,\n &:focus.invalid ~ .helper-text:after {\n @extend %custom-error-message;\n }\n &:focus.invalid ~ label {\n color: $input-error-color;\n }\n\n // Full width label when using validate for error messages\n &.validate + label {\n width: 100%;\n }\n\n // Form Message Shared Styles\n & + label:after {\n @extend %input-after-style;\n }\n}\n\n\n/* Validation Sass Placeholders */\n%valid-input-style {\n border-bottom: 1px solid $input-success-color;\n box-shadow: 0 1px 0 0 $input-success-color;\n}\n%invalid-input-style {\n border-bottom: $input-invalid-border;\n box-shadow: 0 1px 0 0 $input-error-color;\n}\n%hidden-text {\n color: transparent;\n user-select: none;\n pointer-events: none;\n}\n%custom-success-message {\n content: attr(data-success);\n color: $input-success-color;\n}\n%custom-error-message {\n content: attr(data-error);\n color: $input-error-color;\n}\n%input-after-style {\n display: block;\n content: \"\";\n position: absolute;\n top: 100%;\n left: 0;\n opacity: 0;\n transition: .2s opacity ease-out, .2s color ease-out;\n}\n\n\n// Styling for input field wrapper\n.input-field {\n // Inline styles\n &.inline {\n display: inline-block;\n vertical-align: middle;\n margin-left: 5px;\n\n input,\n .select-dropdown {\n margin-bottom: 1rem;\n }\n }\n\n // Gutter spacing\n &.col {\n label {\n left: math.div($gutter-width, 2);\n }\n\n .prefix ~ label,\n .prefix ~ .validate ~ label {\n width: calc(100% - 3rem - #{$gutter-width});\n }\n }\n\n position: relative;\n margin-top: 1rem;\n margin-bottom: 1rem;\n\n & > label {\n color: $input-border-color;\n position: absolute;\n top: 0;\n left: 0;\n font-size: 1rem;\n cursor: text;\n transition: transform .2s ease-out, color .2s ease-out;\n transform-origin: 0% 100%;\n text-align: initial;\n transform: translateY(12px);\n\n &:not(.label-icon).active {\n transform: translateY(-14px) scale(.8);\n transform-origin: 0 0;\n }\n }\n\n // Autofill + date + time inputs\n & > input[type]:-webkit-autofill:not(.browser-default):not([type=\"search\"]) + label,\n & > input[type=date]:not(.browser-default) + label,\n & > input[type=time]:not(.browser-default) + label {\n transform: translateY(-14px) scale(.8);\n transform-origin: 0 0;\n }\n\n .helper-text {\n &::after {\n opacity: 1;\n position: absolute;\n top: 0;\n left: 0;\n }\n\n position: relative;\n min-height: 18px;\n display: block;\n font-size: 12px;\n color: rgba(0,0,0,.54);\n }\n\n // Prefix Icons\n .prefix {\n position: absolute;\n width: $input-height;\n font-size: $input-icon-size;\n transition: color .2s;\n // top: ($input-height - $input-icon-size) / 2;\n\n &.active { color: $input-focus-color; }\n }\n\n .prefix ~ input,\n .prefix ~ textarea,\n .prefix ~ label,\n .prefix ~ .validate ~ label,\n .prefix ~ .helper-text,\n .prefix ~ .autocomplete-content {\n margin-left: 3rem;\n width: 92%;\n width: calc(100% - 3rem);\n }\n\n .prefix ~ label { margin-left: 3rem; }\n\n @media #{$medium-and-down} {\n .prefix ~ input {\n width: 86%;\n width: calc(100% - 3rem);\n }\n }\n\n @media #{$small-and-down} {\n .prefix ~ input {\n width: 80%;\n width: calc(100% - 3rem);\n }\n }\n}\n\n\n/* Search Field */\n\n.input-field input[type=search] {\n display: block;\n line-height: inherit;\n transition: .3s background-color;\n\n .nav-wrapper & {\n height: inherit;\n padding-left: 4rem;\n width: calc(100% - 4rem);\n border: 0;\n box-shadow: none;\n }\n\n &:focus:not(.browser-default) {\n background-color: $input-background;\n border: 0;\n box-shadow: none;\n color: #444;\n\n & + label i,\n & ~ .mdi-navigation-close,\n & ~ .material-icons {\n color: #444;\n }\n }\n\n & + .label-icon {\n transform: none;\n left: 1rem;\n }\n\n & ~ .mdi-navigation-close,\n & ~ .material-icons {\n position: absolute;\n top: 0;\n right: 1rem;\n color: transparent;\n cursor: pointer;\n font-size: $input-icon-size;\n transition: .3s color;\n }\n}\n\n\n/* Textarea */\n\n// Default textarea\ntextarea {\n width: 100%;\n height: $input-height;\n background-color: transparent;\n\n &.textarea {\n line-height: normal;\n overflow-y: hidden; /* prevents scroll bar flash */\n padding: .8rem 0 .8rem 0; /* prevents text jump on Enter keypress */\n resize: none;\n min-height: $input-height;\n box-sizing: border-box;\n }\n}\n\n// For textarea autoresize\n\n.hiddendiv {\n visibility: hidden;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: break-word; /* future version of deprecated 'word-wrap' */\n padding-top: 1.2rem; /* prevents text jump on Enter keypress */\n\n // Reduces repaints\n position: absolute;\n top: 0;\n z-index: -1;\n}\n\n\n/* Autocomplete */\n.autocomplete-content {\n li {\n .highlight { color: #444; }\n\n img {\n // height: $dropdown-item-height - 10;\n // width: $dropdown-item-height - 10;\n margin: 5px 15px;\n }\n }\n}\n\n/* Character Counter */\n.character-counter {\n min-height: 18px;\n}\n","/* Radio Buttons\n ========================================================================== */\n\n// Remove default Radio Buttons\n[type=\"radio\"]:not(:checked),\n[type=\"radio\"]:checked {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n}\n\n[type=\"radio\"]:not(:checked) + span,\n[type=\"radio\"]:checked + span {\n position: relative;\n padding-left: 35px;\n cursor: pointer;\n display: inline-block;\n height: 25px;\n line-height: 25px;\n font-size: 1rem;\n transition: .28s ease;\n user-select: none;\n}\n\n[type=\"radio\"] + span:before,\n[type=\"radio\"] + span:after {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n margin: 4px;\n width: 16px;\n height: 16px;\n z-index: 0;\n transition: .28s ease;\n}\n\n/* Unchecked styles */\n[type=\"radio\"]:not(:checked) + span:before,\n[type=\"radio\"]:not(:checked) + span:after,\n[type=\"radio\"]:checked + span:before,\n[type=\"radio\"]:checked + span:after,\n[type=\"radio\"].with-gap:checked + span:before,\n[type=\"radio\"].with-gap:checked + span:after {\n border-radius: 50%;\n}\n\n[type=\"radio\"]:not(:checked) + span:before,\n[type=\"radio\"]:not(:checked) + span:after {\n border: 2px solid $radio-empty-color;\n}\n\n[type=\"radio\"]:not(:checked) + span:after {\n transform: scale(0);\n}\n\n/* Checked styles */\n[type=\"radio\"]:checked + span:before {\n border: 2px solid transparent;\n}\n\n[type=\"radio\"]:checked + span:after,\n[type=\"radio\"].with-gap:checked + span:before,\n[type=\"radio\"].with-gap:checked + span:after {\n border: $radio-border;\n}\n\n[type=\"radio\"]:checked + span:after,\n[type=\"radio\"].with-gap:checked + span:after {\n background-color: $radio-fill-color;\n}\n\n[type=\"radio\"]:checked + span:after {\n transform: scale(1.02);\n}\n\n/* Radio With gap */\n[type=\"radio\"].with-gap:checked + span:after {\n transform: scale(.5);\n}\n\n/* Focused styles */\n[type=\"radio\"].tabbed:focus + span:before {\n box-shadow: 0 0 0 10px rgba(0,0,0,.1);\n}\n\n/* Disabled Radio With gap */\n[type=\"radio\"].with-gap:disabled:checked + span:before {\n border: 2px solid $input-disabled-color;\n}\n\n[type=\"radio\"].with-gap:disabled:checked + span:after {\n border: none;\n background-color: $input-disabled-color;\n}\n\n/* Disabled style */\n[type=\"radio\"]:disabled:not(:checked) + span:before,\n[type=\"radio\"]:disabled:checked + span:before {\n background-color: transparent;\n border-color: $input-disabled-color;\n}\n\n[type=\"radio\"]:disabled + span {\n color: $input-disabled-color;\n}\n\n[type=\"radio\"]:disabled:not(:checked) + span:before {\n border-color: $input-disabled-color;\n}\n\n[type=\"radio\"]:disabled:checked + span:after {\n background-color: $input-disabled-color;\n border-color: $input-disabled-solid-color;\n}\n","/* Checkboxes\n ========================================================================== */\n\n/* Remove default checkbox */\n[type=\"checkbox\"]:not(:checked),\n[type=\"checkbox\"]:checked {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n}\n\n// Checkbox Styles\n[type=\"checkbox\"] {\n // Text Label Style\n + span:not(.lever) {\n position: relative;\n padding-left: 35px;\n cursor: pointer;\n display: inline-block;\n height: 25px;\n line-height: 25px;\n font-size: 1rem;\n user-select: none;\n }\n\n /* checkbox aspect */\n + span:not(.lever):before,\n &:not(.filled-in) + span:not(.lever):after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 18px;\n height: 18px;\n z-index: 0;\n border: 2px solid $radio-empty-color;\n border-radius: 1px;\n margin-top: 3px;\n transition: .2s;\n }\n\n &:not(.filled-in) + span:not(.lever):after {\n border: 0;\n transform: scale(0);\n }\n\n &:not(:checked):disabled + span:not(.lever):before {\n border: none;\n background-color: $input-disabled-color;\n }\n\n // Focused styles\n &.tabbed:focus + span:not(.lever):after {\n transform: scale(1);\n border: 0;\n border-radius: 50%;\n box-shadow: 0 0 0 10px rgba(0,0,0,.1);\n background-color: rgba(0,0,0,.1);\n }\n}\n\n[type=\"checkbox\"]:checked {\n + span:not(.lever):before {\n top: -4px;\n left: -5px;\n width: 12px;\n height: 22px;\n border-top: 2px solid transparent;\n border-left: 2px solid transparent;\n border-right: $radio-border;\n border-bottom: $radio-border;\n transform: rotate(40deg);\n backface-visibility: hidden;\n transform-origin: 100% 100%;\n }\n\n &:disabled + span:before {\n border-right: 2px solid $input-disabled-color;\n border-bottom: 2px solid $input-disabled-color;\n }\n}\n\n/* Indeterminate checkbox */\n[type=\"checkbox\"]:indeterminate {\n + span:not(.lever):before {\n top: -11px;\n left: -12px;\n width: 10px;\n height: 22px;\n border-top: none;\n border-left: none;\n border-right: $radio-border;\n border-bottom: none;\n transform: rotate(90deg);\n backface-visibility: hidden;\n transform-origin: 100% 100%;\n }\n\n // Disabled indeterminate\n &:disabled + span:not(.lever):before {\n border-right: 2px solid $input-disabled-color;\n background-color: transparent;\n }\n}\n\n// Filled in Style\n[type=\"checkbox\"].filled-in {\n // General\n + span:not(.lever):after {\n border-radius: 2px;\n }\n\n + span:not(.lever):before,\n + span:not(.lever):after {\n content: '';\n left: 0;\n position: absolute;\n /* .1s delay is for check animation */\n transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;\n z-index: 1;\n }\n\n // Unchecked style\n &:not(:checked) + span:not(.lever):before {\n width: 0;\n height: 0;\n border: 3px solid transparent;\n left: 6px;\n top: 10px;\n transform: rotateZ(37deg);\n transform-origin: 100% 100%;\n }\n\n &:not(:checked) + span:not(.lever):after {\n height: 20px;\n width: 20px;\n background-color: transparent;\n border: 2px solid $radio-empty-color;\n top: 0px;\n z-index: 0;\n }\n\n // Checked style\n &:checked {\n + span:not(.lever):before {\n top: 0;\n left: 1px;\n width: 8px;\n height: 13px;\n border-top: 2px solid transparent;\n border-left: 2px solid transparent;\n border-right: 2px solid $input-background;\n border-bottom: 2px solid $input-background;\n transform: rotateZ(37deg);\n transform-origin: 100% 100%;\n }\n\n + span:not(.lever):after {\n top: 0;\n width: 20px;\n height: 20px;\n border: 2px solid $secondary-color;\n background-color: $secondary-color;\n z-index: 0;\n }\n }\n\n // Focused styles\n &.tabbed:focus + span:not(.lever):after {\n border-radius: 2px;\n border-color: $radio-empty-color;\n background-color: rgba(0,0,0,.1);\n }\n\n &.tabbed:checked:focus + span:not(.lever):after {\n border-radius: 2px;\n background-color: $secondary-color;\n border-color: $secondary-color;\n }\n\n // Disabled style\n &:disabled:not(:checked) + span:not(.lever):before {\n background-color: transparent;\n border: 2px solid transparent;\n }\n\n &:disabled:not(:checked) + span:not(.lever):after {\n border-color: transparent;\n background-color: $input-disabled-solid-color;\n }\n\n &:disabled:checked + span:not(.lever):before {\n background-color: transparent;\n }\n\n &:disabled:checked + span:not(.lever):after {\n background-color: $input-disabled-solid-color;\n border-color: $input-disabled-solid-color;\n }\n}\n","/* Switch\n ========================================================================== */\n\n.switch,\n.switch * {\n -webkit-tap-highlight-color: transparent;\n user-select: none;\n}\n\n.switch label {\n cursor: pointer;\n}\n\n.switch label input[type=checkbox] {\n opacity: 0;\n width: 0;\n height: 0;\n\n &:checked + .lever {\n background-color: $switch-checked-lever-bg;\n\n &:before, &:after {\n left: 18px;\n }\n\n &:after {\n background-color: $switch-bg-color;\n }\n }\n}\n\n.switch label .lever {\n content: \"\";\n display: inline-block;\n position: relative;\n width: 36px;\n height: 14px;\n background-color: $switch-unchecked-lever-bg;\n border-radius: $switch-radius;\n //margin-right: 10px;\n transition: background 0.3s ease;\n vertical-align: middle;\n margin: 0 16px;\n\n &:before, &:after {\n content: \"\";\n position: absolute;\n display: inline-block;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n left: 0;\n top: -3px;\n transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease, transform .1s ease;\n }\n\n &:before {\n background-color: transparentize($switch-bg-color, .85);\n }\n\n &:after {\n background-color: $switch-unchecked-bg;\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n }\n}\n\n// Switch active style\ninput[type=checkbox]:checked:not(:disabled) ~ .lever:active::before,\ninput[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::before {\n transform: scale(2.4);\n background-color: transparentize($switch-bg-color, .85);\n}\n\ninput[type=checkbox]:not(:disabled) ~ .lever:active:before,\ninput[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::before {\n transform: scale(2.4);\n background-color: rgba(0,0,0,.08);\n}\n\n// Disabled Styles\n.switch input[type=checkbox][disabled] + .lever {\n cursor: default;\n background-color: rgba(0,0,0,.12);\n}\n\n.switch label input[type=checkbox][disabled] + .lever:after,\n.switch label input[type=checkbox][disabled]:checked + .lever:after {\n background-color: $input-disabled-solid-color;\n}\n","/* Select Field\n ========================================================================== */\n\nselect { display: none; }\nselect.browser-default { display: block; }\n\nselect {\n background-color: $select-background;\n width: 100%;\n padding: $select-padding;\n border: $select-border;\n border-radius: $select-radius;\n height: $input-height;\n}\n\n.select-label {\n position: absolute;\n}\n\n.select-wrapper {\n &.valid .helper-text[data-success],\n &.invalid ~ .helper-text[data-error] {\n @extend %hidden-text;\n }\n\n &.valid {\n & > input.select-dropdown {\n @extend %valid-input-style;\n }\n\n & ~ .helper-text:after {\n @extend %custom-success-message;\n }\n }\n\n &.invalid {\n & > input.select-dropdown,\n & > input.select-dropdown:focus {\n @extend %invalid-input-style;\n }\n\n & ~ .helper-text:after {\n @extend %custom-error-message;\n }\n }\n\n &.valid + label,\n &.invalid + label {\n width: 100%;\n pointer-events: none;\n }\n\n & + label:after {\n @extend %input-after-style;\n }\n\n position: relative;\n\n input.select-dropdown {\n &:focus {\n border-bottom: 1px solid $input-focus-color;\n }\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: none;\n border-bottom: $input-border;\n outline: none;\n height: $input-height;\n line-height: $input-height;\n width: 100%;\n font-size: $input-font-size;\n margin: $input-margin;\n padding: 0;\n display: block;\n user-select:none;\n z-index: 1;\n }\n\n .caret {\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n margin: auto 0;\n z-index: 0;\n fill: rgba(0,0,0,.87);\n }\n\n & + label {\n position: absolute;\n top: -26px;\n font-size: $label-font-size;\n }\n}\n\n// Disabled styles\nselect:disabled {\n color: $input-disabled-color;\n}\n\n.select-wrapper.disabled {\n + label {\n color: $input-disabled-color;\n }\n .caret {\n fill: $input-disabled-color;\n }\n}\n\n.select-wrapper input.select-dropdown:disabled {\n color: $input-disabled-color;\n cursor: default;\n user-select: none;\n}\n\n.select-wrapper i {\n color: $select-disabled-color;\n}\n\n.select-dropdown li.disabled,\n.select-dropdown li.disabled > span,\n.select-dropdown li.optgroup {\n color: $select-disabled-color;\n background-color: transparent;\n}\n\nbody.keyboard-focused {\n .select-dropdown.dropdown-content li:focus {\n background-color: $select-option-focus;\n }\n}\n\n.select-dropdown.dropdown-content {\n li {\n &:hover {\n background-color: $select-option-hover;\n }\n\n &.selected {\n background-color: $select-option-selected;\n }\n }\n}\n\n// Prefix Icons\n.prefix ~ .select-wrapper {\n margin-left: 3rem;\n width: 92%;\n width: calc(100% - 3rem);\n}\n\n.prefix ~ label { margin-left: 3rem; }\n\n// Icons\n.select-dropdown li {\n img {\n // height: $dropdown-item-height - 10;\n // width: $dropdown-item-height - 10;\n margin: 5px 15px;\n float: right;\n }\n}\n\n// Optgroup styles\n.select-dropdown li.optgroup {\n // border-top: 1px solid $dropdown-hover-bg-color;\n\n &.selected > span {\n color: rgba(0, 0, 0, .7);\n }\n\n & > span {\n color: rgba(0, 0, 0, .4);\n }\n\n & ~ li.optgroup-option {\n padding-left: 1rem;\n }\n}\n","/* File Input\n ========================================================================== */\n\n.file-field {\n position: relative;\n\n .file-path-wrapper {\n overflow: hidden;\n padding-left: 10px;\n }\n\n input.file-path { width: 100%; }\n\n .btn {\n float: left;\n height: $input-height;\n line-height: $input-height;\n }\n\n span {\n cursor: pointer;\n }\n\n input[type=file] {\n\n // Needed to override webkit button\n &::-webkit-file-upload-button {\n display: none;\n }\n\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n margin: 0;\n padding: 0;\n font-size: 20px;\n cursor: pointer;\n opacity: 0;\n filter: alpha(opacity=0);\n }\n}\n","/* Range\n ========================================================================== */\n\n.range-field {\n position: relative;\n}\n\ninput[type=range],\ninput[type=range] + .thumb {\n // @extend .no-select;\n cursor: pointer;\n}\n\ninput[type=range] {\n position: relative;\n background-color: transparent;\n border: none;\n outline: none;\n width: 100%;\n margin: 15px 0;\n padding: 0;\n\n &:focus {\n outline: none;\n }\n}\n\ninput[type=range] + .thumb {\n position: absolute;\n top: 10px;\n left: 0;\n border: none;\n height: 0;\n width: 0;\n border-radius: 50%;\n background-color: $radio-fill-color;\n margin-left: 7px;\n\n transform-origin: 50% 50%;\n transform: rotate(-45deg);\n\n .value {\n display: block;\n width: 30px;\n text-align: center;\n color: $radio-fill-color;\n font-size: 0;\n transform: rotate(45deg);\n }\n\n &.active {\n border-radius: 50% 50% 50% 0;\n\n .value {\n color: $input-background;\n margin-left: -1px;\n margin-top: 8px;\n font-size: 10px;\n }\n }\n}\n\n// Shared\n@mixin range-track {\n height: $track-height;\n background: #c2c0c2;\n border: none;\n}\n\n@mixin range-thumb {\n border: none;\n height: $range-height;\n width: $range-width;\n border-radius: 50%;\n background: $radio-fill-color;\n transition: box-shadow .3s;\n}\n\n// WebKit\ninput[type=range] {\n -webkit-appearance: none;\n}\n\ninput[type=range]::-webkit-slider-runnable-track {\n @include range-track;\n}\n\ninput[type=range]::-webkit-slider-thumb {\n @include range-thumb;\n -webkit-appearance: none;\n background-color: $radio-fill-color;\n transform-origin: 50% 50%;\n margin: -5px 0 0 0;\n\n}\n\n.keyboard-focused input[type=range]:focus:not(.active)::-webkit-slider-thumb {\n box-shadow: 0 0 0 10px rgba($radio-fill-color, .26);\n}\n\n// FireFox\ninput[type=range] {\n /* fix for FF unable to apply focus style bug */\n border: 1px solid white;\n\n /*required for proper track sizing in FF*/\n}\n\ninput[type=range]::-moz-range-track {\n @include range-track;\n}\n\ninput[type=range]::-moz-focus-inner {\n border: 0;\n}\n\ninput[type=range]::-moz-range-thumb {\n @include range-thumb;\n margin-top: -5px;\n}\n\n// hide the outline behind the border\ninput[type=range]:-moz-focusring {\n outline: 1px solid #fff;\n outline-offset: -1px;\n}\n\n.keyboard-focused input[type=range]:focus:not(.active)::-moz-range-thumb {\n box-shadow: 0 0 0 10px rgba($radio-fill-color, .26);\n}\n\n// IE 10+\ninput[type=range]::-ms-track {\n height: $track-height;\n\n // remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead\n background: transparent;\n\n // leave room for the larger thumb to overflow with a transparent border */\n border-color: transparent;\n border-width: 6px 0;\n\n /*remove default tick marks*/\n color: transparent;\n}\n\ninput[type=range]::-ms-fill-lower {\n background: #777;\n}\n\ninput[type=range]::-ms-fill-upper {\n background: #ddd;\n}\n\ninput[type=range]::-ms-thumb {\n @include range-thumb;\n}\n\n.keyboard-focused input[type=range]:focus:not(.active)::-ms-thumb {\n box-shadow: 0 0 0 10px rgba($radio-fill-color, .26);\n}\n",".parallax {\n\n /* Set a specific height */\n min-height: 500px;\n\n /* Create the parallax scrolling effect */\n background-attachment: fixed;\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n}","$cube-height:200px;\n* { box-sizing: border-box; }\n\nbody { font-family: sans-serif; }\n\n.scene {\n width: $cube-height;\n height: $cube-height;\n border: 1px solid #CCC;\n margin: 80px;\n perspective: 400px;\n}\n\n.cube {\n width: $cube-height;\n height: $cube-height;\n position: relative;\n transform-style: preserve-3d;\n transform: translateZ(-400px);\n transition: transform 1s;\n}\n\n.cube.show-front { transform: translateZ(-10px) rotateY( 0deg); }\n.cube.show-right { transform: translateZ(-10px) rotateY( -90deg); }\n.cube.show-back { transform: translateZ(-10px) rotateY(-180deg); }\n.cube.show-left { transform: translateZ(-10px) rotateY( 90deg); }\n.cube.show-top { transform: translateZ(-10px) rotateX( -90deg); }\n.cube.show-bottom { transform: translateZ(-10px) rotateX( 90deg); }\n\n.cube__face {\n position: absolute;\n width: $cube-height;\n height: $cube-height;\n border: 2px solid black;\n line-height: $cube-height;\n font-size: 40px;\n font-weight: bold;\n color: white;\n text-align: center;\n}\n\n.cube__face--front { background: hsla( 0, 100%, 50%, 0.7); }\n.cube__face--right { background: hsla( 60, 100%, 50%, 0.7); }\n.cube__face--back { background: hsla(120, 100%, 50%, 0.7); }\n.cube__face--left { background: hsla(180, 100%, 50%, 0.7); }\n.cube__face--top { background: hsla(240, 100%, 50%, 0.7); }\n.cube__face--bottom { background: hsla(300, 100%, 50%, 0.7); }\n\n.cube__face--front { transform: rotateY( 0deg) translateZ(100px); }\n.cube__face--right { transform: rotateY( 90deg) translateZ(100px); }\n.cube__face--back { transform: rotateY(180deg) translateZ(100px); }\n.cube__face--left { transform: rotateY(-90deg) translateZ(100px); }\n.cube__face--top { transform: rotateX( 90deg) translateZ(100px); }\n.cube__face--bottom { transform: rotateX(-90deg) translateZ(100px); }\n\nlabel { margin-right: 10px; }","@use \"sass:math\";\n.container {\n margin: 0 auto;\n max-width: 1280px;\n width: 90%;\n}\n@media #{$medium-and-up} {\n .container {\n width: 85%;\n }\n}\n@media #{$large-and-up} {\n .container {\n width: 70%;\n }\n}\n.col .row {\n margin-left: math.div(-1 * $gutter-width , 2);\n margin-right: math.div(-1 * $gutter-width , 2);\n}\n\n.section {\n padding-top: 1rem;\n padding-bottom: 1rem;\n\n &.no-pad {\n padding: 0;\n }\n &.no-pad-bot {\n padding-bottom: 0;\n }\n &.no-pad-top {\n padding-top: 0;\n }\n}\n\n\n// Mixins to eliminate code repitition\n@mixin reset-offset {\n margin-left: auto;\n left: auto;\n right: auto;\n}\n@mixin grid-classes($size, $i, $perc) {\n &.offset-#{$size}#{$i} {\n margin-left: $perc;\n }\n &.pull-#{$size}#{$i} {\n right: $perc;\n }\n &.push-#{$size}#{$i} {\n left: $perc;\n }\n}\n\n\n.row {\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 20px;\n\n // Clear floating children\n &:after {\n content: \"\";\n display: table;\n clear: both;\n }\n\n .col {\n float: left;\n box-sizing: border-box;\n padding: 0 math.div($gutter-width , 2);\n min-height: 1px;\n\n &[class*=\"push-\"],\n &[class*=\"pull-\"] {\n position: relative;\n }\n\n $i: 1;\n @while $i <= $num-cols {\n $perc: unquote(math.div(100 , math.div($num-cols , $i)) + \"%\");\n &.s#{$i} {\n width: $perc;\n @include reset-offset;\n }\n $i: $i + 1;\n }\n\n $i: 1;\n @while $i <= $num-cols {\n $perc: unquote(math.div(100 , math.div($num-cols , $i)) + \"%\");\n @include grid-classes(\"s\", $i, $perc);\n $i: $i + 1;\n }\n\n @media #{$medium-and-up} {\n\n $i: 1;\n @while $i <= $num-cols {\n $perc: unquote(math.div(100 , math.div($num-cols , $i)) + \"%\");\n &.m#{$i} {\n width: $perc;\n @include reset-offset;\n }\n $i: $i + 1\n }\n\n $i: 1;\n @while $i <= $num-cols {\n $perc: unquote(math.div(100 , math.div($num-cols , $i)) + \"%\");\n @include grid-classes(\"m\", $i, $perc);\n $i: $i + 1;\n }\n }\n\n @media #{$large-and-up} {\n\n $i: 1;\n @while $i <= $num-cols {\n $perc: unquote(math.div(100 , math.div($num-cols , $i)) + \"%\");\n &.l#{$i} {\n width: $perc;\n @include reset-offset;\n }\n $i: $i + 1;\n }\n\n $i: 1;\n @while $i <= $num-cols {\n $perc: unquote(math.div(100 , math.div($num-cols , $i)) + \"%\");\n @include grid-classes(\"l\", $i, $perc);\n $i: $i + 1;\n }\n }\n\n @media #{$extra-large-and-up} {\n\n $i: 1;\n @while $i <= $num-cols {\n $perc: unquote(math.div(100 , math.div($num-cols , $i)) + \"%\");\n &.xl#{$i} {\n width: $perc;\n @include reset-offset;\n }\n $i: $i + 1;\n }\n\n $i: 1;\n @while $i <= $num-cols {\n $perc: unquote(math.div(100 , math.div($num-cols , $i)) + \"%\");\n @include grid-classes(\"xl\", $i, $perc);\n $i: $i + 1;\n }\n }\n }\n}\n","@use \"sass:math\";\nsvg{\n //fill:red;\n}\n.sidenav {\n position: fixed;\n width: $sidenav-width;\n left: 0;\n top: 0;\n margin: 0;\n //transform: translateX(-100%);\n height: 100%;\n height: calc(100% + 60px);\n height: -moz-calc(100%); //Temporary Firefox Fix\n padding-bottom: 60px;\n background-color: $sidenav-bg-color;\n z-index: 999;\n overflow-y: auto;\n will-change: transform;\n backface-visibility: hidden;\n transform: translateX(-105%);\n transition: transform 1s;\n\n //@extend .shadow-1;\n\n // Right Align\n &.right-aligned {\n right: 0;\n //transform: translateX(105%);\n left: auto;\n transform: translateX(100%);\n }\n\n .collapsible {\n margin: 0;\n }\n\n\n li {\n float: none;\n //line-height: $sidenav-line-height;\n // margin: 15px 0;\n // height: 45px;\n .iconSideLink {\n display: flex;\n align-items: center;\n \n svg {\n //stroke:rgba(0, 0, 0, 0.2);\n // fill: white;\n stroke:rgba(0, 0, 0, 0.2);\n width: 30px;\n }\n \n }\n &.active {\n background-color: rgba(0, 0, 0, 0.05);\n svg {\n stroke: white!important;\n //fill: white!important;\n width: 30px;\n }\n }\n\n &.last {\n position: sticky;\n top: calc(100% - #{$sidenav-item-height} - 35px);\n }\n }\n\n li > a {\n color: $sidenav-font-color;\n display: flex;\n font-size: $sidenav-font-size;\n font-weight: 700;\n height: $sidenav-item-height;\n line-height: $sidenav-line-height;\n padding: 0 ($sidenav-padding * 2);\n\n &:hover {\n background-color: rgba(0, 0, 0, 0.05);\n }\n\n &.btn,\n &.btn-large,\n &.btn-flat,\n &.btn-floating {\n margin: 10px 15px;\n }\n\n &.btn,\n &.btn-large,\n &.btn-floating {\n color: $button-raised-color;\n }\n\n &.btn-flat {\n color: $button-flat-color;\n }\n\n &.btn:hover,\n &.btn-large:hover {\n background-color: lighten($button-raised-background, 5%);\n }\n\n &.btn-floating:hover {\n background-color: $button-raised-background;\n }\n\n & > i,\n & > [class^=\"mdi-\"],\n li > a > [class*=\"mdi-\"],\n & > i.s-icon {\n float: left;\n height: $sidenav-item-height;\n line-height: $sidenav-line-height;\n margin: 0 ($sidenav-padding * 2) 0 0;\n width: math.div($sidenav-item-height, 2);\n color: rgba(0, 0, 0, 0.54);\n }\n }\n\n .divider {\n margin: math.div($sidenav-padding, 2) 0 0 0;\n }\n\n .subheader {\n &:hover {\n background-color: transparent;\n }\n\n cursor: initial;\n pointer-events: none;\n color: rgba(0, 0, 0, 0.54);\n font-size: $sidenav-font-size;\n font-weight: 500;\n line-height: $sidenav-line-height;\n }\n\n .user-view {\n position: relative;\n padding: ($sidenav-padding * 2) ($sidenav-padding * 2) 0;\n margin-bottom: math.div($sidenav-padding, 2);\n\n & > a {\n &:hover {\n background-color: transparent;\n }\n\n height: auto;\n padding: 0;\n }\n\n .background {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n }\n\n .circle,\n .name,\n .email {\n display: block;\n }\n\n .circle {\n height: 64px;\n width: 64px;\n }\n\n .name,\n .email {\n font-size: $sidenav-font-size;\n line-height: math.div($sidenav-line-height, 2);\n }\n\n .name {\n margin-top: 16px;\n font-weight: 500;\n }\n\n .email {\n padding-bottom: 16px;\n font-weight: 400;\n }\n }\n}\n\n// Touch interaction\n.drag-target {\n // Right Align\n &.right-aligned {\n right: 0;\n }\n\n height: 100%;\n width: 10px;\n position: fixed;\n top: 0;\n z-index: 998;\n}\n\n// Fixed Sidenav shown\n.sidenav.sidenav-fixed {\n // Right Align\n &.right-aligned {\n right: 0;\n left: auto;\n }\n\n left: 0;\n transform: translateX(0);\n position: fixed;\n}\n\n// Fixed Sidenav hide on smaller\n@media #{$medium-and-down} {\n .sidenav {\n &.sidenav-fixed {\n transform: translateX(-105%);\n\n &.right-aligned {\n transform: translateX(105%);\n }\n }\n\n > a {\n padding: 0 $sidenav-padding;\n }\n\n .user-view {\n padding: $sidenav-padding $sidenav-padding 0;\n }\n }\n}\n\n.sidenav .collapsible-body > ul:not(.collapsible) > li.active,\n.sidenav.sidenav-fixed .collapsible-body > ul:not(.collapsible) > li.active {\n background-color: $primary-color;\n\n a {\n color: $sidenav-bg-color;\n }\n}\n\n.sidenav .collapsible-body {\n padding: 0;\n}\n\n.sidenav-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n opacity: 0;\n height: 120vh;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 997;\n display: none;\n}\n\n\n\n\n .with-side-nav-open{\n padding-left: 300px;\n transition: padding 1s;\n }\n","// shared styles\n\n.btn,\n.btn-flat {\n border: $button-border;\n border-radius: $button-radius;\n display: inline-block;\n height: $button-height;\n line-height: $button-height;\n padding: $button-padding;\n text-transform: uppercase;\n vertical-align: middle;\n -webkit-tap-highlight-color: transparent; // Gets rid of tap active state\n}\n\n// Disabled shared style\n.btn.disabled,\n.btn-floating.disabled,\n.btn-large.disabled,\n.btn-small.disabled,\n.btn-flat.disabled,\n.btn:disabled,\n.btn-floating:disabled,\n.btn-large:disabled,\n.btn-small:disabled,\n.btn-flat:disabled,\n.btn[disabled],\n.btn-floating[disabled],\n.btn-large[disabled],\n.btn-small[disabled],\n.btn-flat[disabled] {\n pointer-events: none;\n background-color: $button-disabled-background !important;\n box-shadow: none;\n color: $button-disabled-color !important;\n cursor: default;\n &:hover {\n background-color: $button-disabled-background !important;\n color: $button-disabled-color !important;\n }\n}\n\n// Shared icon styles\n.btn,\n.btn-floating,\n.btn-large,\n.btn-small,\n.btn-flat {\n font-size: $button-font-size;\n outline: 0;\n i {\n font-size: $button-icon-font-size;\n line-height: inherit;\n }\n}\n\n// Shared focus button style\n.btn,\n.btn-floating {\n &:focus {\n background-color: darken($button-raised-background, 10%);\n }\n}\n\n// Raised Button\n.btn {\n text-decoration: none;\n color: $button-raised-color;\n background-color: $button-raised-background;\n text-align: center;\n letter-spacing: .5px;\n @extend .shadow-1;\n transition: background-color .2s ease-out;\n cursor: pointer;\n &:hover {\n background-color: $button-raised-background-hover;\n @extend .shadow-1-half;\n }\n}\n\n// Floating button\n.btn-floating {\n &:hover {\n background-color: $button-floating-background-hover;\n @extend .shadow-1-half;\n }\n &:before {\n border-radius: 0;\n }\n &.btn-large {\n &.halfway-fab {\n bottom: calc($button-floating-large-size / 2);\n }\n width: $button-floating-large-size;\n height: $button-floating-large-size;\n padding: 0;\n i {\n line-height: $button-floating-large-size;\n }\n }\n\n &.btn-small {\n &.halfway-fab {\n bottom: calc($button-floating-small-size / 2);\n }\n width: $button-floating-small-size;\n height: $button-floating-small-size;\n i {\n line-height: $button-floating-small-size;\n }\n }\n\n &.halfway-fab {\n &.left {\n right: auto;\n left: 24px;\n }\n position: absolute;\n right: 24px;\n bottom: calc($button-floating-size / 2);\n }\n display: inline-block;\n color: $button-floating-color;\n position: relative;\n overflow: hidden;\n z-index: 1;\n width: $button-floating-size;\n height: $button-floating-size;\n line-height: $button-floating-size;\n padding: 0;\n background-color: $button-floating-background;\n border-radius: $button-floating-radius;\n @extend .shadow-1;\n transition: background-color .3s;\n cursor: pointer;\n vertical-align: middle;\n i {\n width: inherit;\n display: inline-block;\n text-align: center;\n color: $button-floating-color;\n font-size: $button-large-icon-font-size;\n line-height: $button-floating-size;\n }\n}\n\n// button fix\nbutton.btn-floating {\n border: $button-border;\n}\n\n// Fixed Action Button\n.fixed-action-btn {\n &.active {\n ul {\n visibility: visible;\n }\n }\n\n // Directions\n &.direction-left,\n &.direction-right {\n padding: 0 0 0 15px;\n ul {\n text-align: right;\n right: 64px;\n top: 50%;\n transform: translateY(-50%);\n height: 100%;\n left: auto;\n /*width 100% only goes to width of button container */\n width: 500px;\n li {\n display: inline-block;\n margin: 7.5px 15px 0 0;\n }\n }\n }\n &.direction-right {\n padding: 0 15px 0 0;\n ul {\n text-align: left;\n direction: rtl;\n left: 64px;\n right: auto;\n li {\n margin: 7.5px 0 0 15px;\n }\n }\n }\n &.direction-bottom {\n padding: 0 0 15px 0;\n ul {\n top: 64px;\n bottom: auto;\n display: flex;\n flex-direction: column-reverse;\n li {\n margin: 15px 0 0 0;\n }\n }\n }\n &.toolbar {\n &.active {\n &>a i {\n opacity: 0;\n }\n }\n padding: 0;\n height: $button-floating-large-size;\n ul {\n display: flex;\n top: 0;\n bottom: 0;\n z-index: 1;\n li {\n flex: 1;\n display: inline-block;\n margin: 0;\n height: 100%;\n transition: none;\n a {\n display: block;\n overflow: hidden;\n position: relative;\n width: 100%;\n height: 100%;\n background-color: transparent;\n box-shadow: none;\n color: #fff;\n line-height: $button-floating-large-size;\n z-index: 1;\n i {\n line-height: inherit;\n }\n }\n }\n }\n }\n position: fixed;\n right: 23px;\n bottom: 23px;\n padding-top: 15px;\n margin-bottom: 0;\n z-index: 997;\n ul {\n left: 0;\n right: 0;\n text-align: center;\n position: absolute;\n bottom: 64px;\n margin: 0;\n visibility: hidden;\n li {\n margin-bottom: 15px;\n }\n a.btn-floating {\n opacity: 0;\n }\n }\n .fab-backdrop {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: $button-floating-size;\n height: $button-floating-size;\n background-color: $button-floating-background;\n border-radius: $button-floating-radius;\n transform: scale(0);\n }\n}\n\n// Flat button\n.btn-flat {\n box-shadow: none;\n background-color: transparent;\n color: $button-flat-color;\n cursor: pointer;\n transition: background-color .2s;\n &:focus,\n &:hover {\n box-shadow: none;\n }\n &:focus {\n background-color: rgba(0, 0, 0, .1);\n }\n &.disabled,\n &.btn-flat[disabled] {\n background-color: transparent !important;\n color: $button-flat-disabled-color !important;\n cursor: default;\n }\n}\n\n// Large button\n.btn-large {\n @extend .btn;\n height: $button-large-height;\n line-height: $button-large-height;\n font-size: $button-large-font-size;\n padding: 0 28px;\n\n i {\n font-size: $button-large-icon-font-size;\n }\n}\n\n// Small button\n.btn-small {\n @extend .btn;\n height: $button-small-height;\n line-height: $button-small-height;\n font-size: $button-small-font-size;\n i {\n font-size: $button-small-icon-font-size;\n }\n}\n\n// Block button\n.btn-block {\n display: block;\n}\n","$mainColor:#0062d6;\n$othermain:#034d82;\n$secondColor:#0077FA;\n$thirdColor:#09bddd;\n$forthColor:#cbe7fe;\n\n$tab1: $forthColor;\n$tab2: darken($forthColor,15%);\n$tab3: darken($forthColor,30%);\n\n.communTabHeader {\n height: 100px;\n padding: 40px;\n}\n\n.tabs {\n min-height: calc(100% - 150px);\n margin-top: 30px;\n padding:0!important;\n border-radius: 40px!important;\n.innerpage{\n min-height: 70VH!important;\n}\n .tabs-header-overlay {\n display: flex;\n height: 100px;\n }\n\n &.activeTab-0 {\n .tab-header-over0 {\n flex: 1;\n background-color: $tab2;\n border-radius: 40px 0 0 0;\n\n .tab-header {\n background-color: $tab1;\n border-radius: 40px 40px 0 0;\n @extend .communTabHeader;\n }\n }\n\n .tab-header-over1 {\n flex: 1;\n background: linear-gradient(0.25turn, $tab1, $tab3);\n border-radius: 0 0 0 0;\n\n .tab-header {\n background-color: $tab2;\n border-radius: 0 40px 0 40px;\n @extend .communTabHeader;\n }\n }\n\n .tab-header-over2 {\n flex: 1;\n background-color: $tab2;\n border-radius: 0 40px 0 0;\n\n .tab-header {\n background-color: $tab3;\n border-radius: 0 40px 0 40px;\n @extend .communTabHeader;\n }\n }\n }\n\n &.activeTab-1 {\n .tab-header-over0 {\n flex: 1;\n background-color: $tab1;\n //linear-gradient(0.25turn, $tab1, $tab1);\n //linear-gradient(0.25turn, $tab1, $tab1);\n border-radius: 40px 0 0 0;\n\n .tab-header {\n background-color: $tab2;\n // border-radius: 40px 40px 0 0;\n border-radius: 40px 0 40px 0;\n @extend .communTabHeader;\n }\n }\n\n .tab-header-over1 {\n flex: 1;\n background: linear-gradient(0.25turn, $tab2, $tab3);\n //$tab2;\n //border-radius: 40px 0 0;\n border-radius: 0 0 0 0;\n\n .tab-header {\n background-color: $tab1;\n border-radius: 40px 40px 0 0;\n @extend .communTabHeader;\n }\n }\n\n .tab-header-over2 {\n flex: 1;\n background-color: $tab1;\n border-radius: 0 40px 0 0;\n\n .tab-header {\n background-color: $tab3;\n border-radius: 0 40px 0 40px;\n @extend .communTabHeader;\n }\n }\n }\n\n\n &.activeTab-2 {\n .tab-header-over0 {\n flex: 1;\n background-color: $tab3;\n //linear-gradient(0.25turn, $tab1, $tab1);\n //linear-gradient(0.25turn, $tab1, $tab1);\n border-radius: 40px 0 0 0;\n\n .tab-header {\n background-color: $tab2;\n // border-radius: 40px 40px 0 0;\n border-radius: 40px 0 40px 0;\n @extend .communTabHeader;\n }\n }\n\n .tab-header-over1 {\n flex: 1;\n background: linear-gradient(0.25turn, $tab2, $tab1);\n //$tab2;\n //border-radius: 40px 0 0;\n border-radius: 0 0 0 0;\n\n .tab-header {\n background-color: $tab3;\n border-radius: 40px 0 40px 0;\n @extend .communTabHeader;\n }\n }\n\n .tab-header-over2 {\n flex: 1;\n background-color: $tab3;\n border-radius: 0 40px 0 0;\n\n .tab-header {\n background-color: $tab1;\n border-radius: 40px 40px 0 0;\n @extend .communTabHeader;\n }\n }\n }\n\n .tab-content {\n background-color: $tab1;\n padding: 10px;\n //border: 1px solid rgb(207, 205, 205);\n border-top: 0;\n min-height: 70vh;\n border-radius: 0 0 40px 40px;\n padding-bottom: 20px;\n \n }\n}\n\n// .tabs {\n// // display: flex;\n// // flex-direction: column;\n// .tabs-header-overlay {\n// display: flex;\n// height: 100px;\n\n// .tab-header-over {\n// flex: 1;\n// background-color: hotpink;\n// border-radius: 0 40px 0 0;\n// &.active {\n// background-color: rgb(155, 152, 153);\n// border-radius: 40px 0 0 0;\n// }\n// .tab-header {\n// &.active {\n// background-color: hotpink;\n// border-radius: 40px 40px 0 0;\n// }\n// border-radius: 0px 40px 0 40px;\n// padding: 40px;\n// background-color: rgb(155, 152, 153);\n// }\n// }\n// }\n\n// .tab-content {\n// background-color: hotpink;\n// padding: 10px;\n// border: 1px solid rgb(207, 205, 205);\n// border-top: 0;\n// }\n// }\n",".loader-overlay {\n z-index: 999;\n position: absolute;\n height: 100vh;\n width: 100vw;\n top: 0;\n left: 0;\n background-color: rgba(102, 100, 100, 0.603);\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n .loader {\n border: 7px solid #f3f3f3; /* Light grey */\n border-top: 7px solid #2ea2cc; /* Blue */\n border-radius: 50%;\n width: 70px;\n height: 70px;\n animation: spin 2s linear infinite;\n }\n .loader-text{\n margin-top: 20px;\n font-size: 25px;\n color: #2ea2cc;\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n}\n","\n\n.card-panel {\n transition: box-shadow .25s;\n padding: $card-padding;\n margin: $element-top-margin 0 $element-bottom-margin 0;\n border-radius: 2px;\n @extend .shadow-1;\n background-color: $card-bg-color;\n}\n\n.card {\n position: relative;\n margin: $element-top-margin 0 $element-bottom-margin 0;\n background-color: $card-bg-color;\n transition: box-shadow .25s;\n border-radius: 2px;\n @extend .shadow-1;\n\n\n .card-title {\n font-size: 24px;\n font-weight: 300;\n &.activator {\n cursor: pointer;\n }\n }\n\n // Card Sizes\n &.small, &.medium, &.large {\n position: relative;\n\n .card-image {\n max-height: 60%;\n overflow: hidden;\n }\n .card-image + .card-content {\n max-height: 40%;\n }\n .card-content {\n max-height: 100%;\n overflow: hidden;\n }\n .card-action {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n }\n }\n\n &.small {\n height: 300px;\n }\n\n &.medium {\n height: 400px;\n }\n\n &.large {\n height: 500px;\n }\n\n // Horizontal Cards\n &.horizontal {\n &.small, &.medium, &.large {\n .card-image {\n height: 100%;\n max-height: none;\n overflow: visible;\n\n img {\n height: 100%;\n }\n }\n }\n\n display: flex;\n\n .card-image {\n max-width: 50%;\n img {\n border-radius: 2px 0 0 2px;\n max-width: 100%;\n width: auto;\n }\n }\n\n .card-stacked {\n display: flex;\n flex-direction: column;\n flex: 1;\n position: relative;\n\n .card-content {\n flex-grow: 1;\n }\n }\n }\n\n // Sticky Action Section\n &.sticky-action {\n .card-action {\n z-index: 2;\n }\n\n .card-reveal {\n z-index: 1;\n padding-bottom: 64px;\n }\n }\n\n\n\n\n .card-image {\n position: relative;\n\n // Image background for content\n img {\n display: block;\n border-radius: 2px 2px 0 0;\n position: relative;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n width: 100%;\n }\n\n .card-title {\n color: $card-bg-color;\n position: absolute;\n bottom: 0;\n left: 0;\n max-width: 100%;\n padding: $card-padding;\n }\n }\n\n .card-content {\n padding: $card-padding;\n border-radius: 0 0 2px 2px;\n\n p {\n margin: 0;\n }\n .card-title {\n display: block;\n line-height: 32px;\n margin-bottom: 8px;\n\n i {\n line-height: 32px;\n }\n }\n }\n\n .card-action {\n &:last-child {\n border-radius: 0 0 2px 2px;\n }\n background-color: inherit; // Use inherit to inherit color classes\n border-top: 1px solid rgba(160,160,160,.2);\n position: relative;\n padding: 16px $card-padding;\n\n a:not(.btn):not(.btn-large):not(.btn-floating) {\n color: $card-link-color;\n margin-right: $card-padding;\n transition: color .3s ease;\n text-transform: uppercase;\n\n &:hover { color: $card-link-color-light; }\n }\n }\n\n .card-reveal {\n padding: $card-padding;\n position: absolute;\n background-color: $card-bg-color;\n width: 100%;\n overflow-y: auto;\n left: 0;\n top: 100%;\n height: 100%;\n z-index: 3;\n display: none;\n\n .card-title {\n cursor: pointer;\n display: block;\n }\n }\n}\n","/*\r\n @license\r\n Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\r\n This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\r\n The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\r\n The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\r\n Code distributed by Google as part of the polymer project is also\r\n subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\r\n */\r\n\r\n/**************************/\r\n/* STYLES FOR THE SPINNER */\r\n/**************************/\r\n\r\n/*\r\n * Constants:\r\n * STROKEWIDTH = 3px\r\n * ARCSIZE = 270 degrees (amount of circle the arc takes up)\r\n * ARCTIME = 1333ms (time it takes to expand and contract arc)\r\n * ARCSTARTROT = 216 degrees (how much the start location of the arc\r\n * should rotate each time, 216 gives us a\r\n * 5 pointed star shape (it's 360/5 * 3).\r\n * For a 7 pointed star, we might do\r\n * 360/7 * 3 = 154.286)\r\n * CONTAINERWIDTH = 28px\r\n * SHRINK_TIME = 400ms\r\n */\r\n\r\n\r\n.preloader-wrapper {\r\n display: inline-block;\r\n position: relative;\r\n width: 50px;\r\n height: 50px;\r\n\r\n &.small {\r\n width: 36px;\r\n height: 36px;\r\n }\r\n\r\n &.big {\r\n width: 64px;\r\n height: 64px;\r\n }\r\n\r\n &.active {\r\n /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */\r\n -webkit-animation: container-rotate 1568ms linear infinite;\r\n animation: container-rotate 1568ms linear infinite;\r\n }\r\n}\r\n\r\n@-webkit-keyframes container-rotate {\r\n to { -webkit-transform: rotate(360deg) }\r\n}\r\n\r\n@keyframes container-rotate {\r\n to { transform: rotate(360deg) }\r\n}\r\n\r\n.spinner-layer {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n opacity: 0;\r\n border-color: $spinner-default-color;\r\n}\r\n\r\n.spinner-blue,\r\n.spinner-blue-only {\r\n border-color: #4285f4;\r\n}\r\n\r\n.spinner-red,\r\n.spinner-red-only {\r\n border-color: #db4437;\r\n}\r\n\r\n.spinner-yellow,\r\n.spinner-yellow-only {\r\n border-color: #f4b400;\r\n}\r\n\r\n.spinner-green,\r\n.spinner-green-only {\r\n border-color: #0f9d58;\r\n}\r\n\r\n/**\r\n * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):\r\n *\r\n * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't\r\n * guarantee that the animation will start _exactly_ after that value. So we avoid using\r\n * animation-delay and instead set custom keyframes for each color (as redundant as it\r\n * seems).\r\n *\r\n * We write out each animation in full (instead of separating animation-name,\r\n * animation-duration, etc.) because under the polyfill, Safari does not recognize those\r\n * specific properties properly, treats them as -webkit-animation, and overrides the\r\n * other animation rules. See https://github.com/Polymer/platform/issues/53.\r\n */\r\n.active .spinner-layer.spinner-blue {\r\n /* durations: 4 * ARCTIME */\r\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\r\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\r\n}\r\n\r\n.active .spinner-layer.spinner-red {\r\n /* durations: 4 * ARCTIME */\r\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\r\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\r\n}\r\n\r\n.active .spinner-layer.spinner-yellow {\r\n /* durations: 4 * ARCTIME */\r\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\r\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\r\n}\r\n\r\n.active .spinner-layer.spinner-green {\r\n /* durations: 4 * ARCTIME */\r\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\r\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\r\n}\r\n\r\n.active .spinner-layer,\r\n.active .spinner-layer.spinner-blue-only,\r\n.active .spinner-layer.spinner-red-only,\r\n.active .spinner-layer.spinner-yellow-only,\r\n.active .spinner-layer.spinner-green-only {\r\n /* durations: 4 * ARCTIME */\r\n opacity: 1;\r\n -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\r\n animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\r\n}\r\n\r\n@-webkit-keyframes fill-unfill-rotate {\r\n 12.5% { -webkit-transform: rotate(135deg); } /* 0.5 * ARCSIZE */\r\n 25% { -webkit-transform: rotate(270deg); } /* 1 * ARCSIZE */\r\n 37.5% { -webkit-transform: rotate(405deg); } /* 1.5 * ARCSIZE */\r\n 50% { -webkit-transform: rotate(540deg); } /* 2 * ARCSIZE */\r\n 62.5% { -webkit-transform: rotate(675deg); } /* 2.5 * ARCSIZE */\r\n 75% { -webkit-transform: rotate(810deg); } /* 3 * ARCSIZE */\r\n 87.5% { -webkit-transform: rotate(945deg); } /* 3.5 * ARCSIZE */\r\n to { -webkit-transform: rotate(1080deg); } /* 4 * ARCSIZE */\r\n}\r\n\r\n@keyframes fill-unfill-rotate {\r\n 12.5% { transform: rotate(135deg); } /* 0.5 * ARCSIZE */\r\n 25% { transform: rotate(270deg); } /* 1 * ARCSIZE */\r\n 37.5% { transform: rotate(405deg); } /* 1.5 * ARCSIZE */\r\n 50% { transform: rotate(540deg); } /* 2 * ARCSIZE */\r\n 62.5% { transform: rotate(675deg); } /* 2.5 * ARCSIZE */\r\n 75% { transform: rotate(810deg); } /* 3 * ARCSIZE */\r\n 87.5% { transform: rotate(945deg); } /* 3.5 * ARCSIZE */\r\n to { transform: rotate(1080deg); } /* 4 * ARCSIZE */\r\n}\r\n\r\n@-webkit-keyframes blue-fade-in-out {\r\n from { opacity: 1; }\r\n 25% { opacity: 1; }\r\n 26% { opacity: 0; }\r\n 89% { opacity: 0; }\r\n 90% { opacity: 1; }\r\n 100% { opacity: 1; }\r\n}\r\n\r\n@keyframes blue-fade-in-out {\r\n from { opacity: 1; }\r\n 25% { opacity: 1; }\r\n 26% { opacity: 0; }\r\n 89% { opacity: 0; }\r\n 90% { opacity: 1; }\r\n 100% { opacity: 1; }\r\n}\r\n\r\n@-webkit-keyframes red-fade-in-out {\r\n from { opacity: 0; }\r\n 15% { opacity: 0; }\r\n 25% { opacity: 1; }\r\n 50% { opacity: 1; }\r\n 51% { opacity: 0; }\r\n}\r\n\r\n@keyframes red-fade-in-out {\r\n from { opacity: 0; }\r\n 15% { opacity: 0; }\r\n 25% { opacity: 1; }\r\n 50% { opacity: 1; }\r\n 51% { opacity: 0; }\r\n}\r\n\r\n@-webkit-keyframes yellow-fade-in-out {\r\n from { opacity: 0; }\r\n 40% { opacity: 0; }\r\n 50% { opacity: 1; }\r\n 75% { opacity: 1; }\r\n 76% { opacity: 0; }\r\n}\r\n\r\n@keyframes yellow-fade-in-out {\r\n from { opacity: 0; }\r\n 40% { opacity: 0; }\r\n 50% { opacity: 1; }\r\n 75% { opacity: 1; }\r\n 76% { opacity: 0; }\r\n}\r\n\r\n@-webkit-keyframes green-fade-in-out {\r\n from { opacity: 0; }\r\n 65% { opacity: 0; }\r\n 75% { opacity: 1; }\r\n 90% { opacity: 1; }\r\n 100% { opacity: 0; }\r\n}\r\n\r\n@keyframes green-fade-in-out {\r\n from { opacity: 0; }\r\n 65% { opacity: 0; }\r\n 75% { opacity: 1; }\r\n 90% { opacity: 1; }\r\n 100% { opacity: 0; }\r\n}\r\n\r\n/**\r\n * Patch the gap that appear between the two adjacent div.circle-clipper while the\r\n * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11).\r\n */\r\n.gap-patch {\r\n position: absolute;\r\n top: 0;\r\n left: 45%;\r\n width: 10%;\r\n height: 100%;\r\n overflow: hidden;\r\n border-color: inherit;\r\n}\r\n\r\n.gap-patch .circle {\r\n width: 1000%;\r\n left: -450%;\r\n}\r\n\r\n.circle-clipper {\r\n display: inline-block;\r\n position: relative;\r\n width: 50%;\r\n height: 100%;\r\n overflow: hidden;\r\n border-color: inherit;\r\n\r\n .circle {\r\n width: 200%;\r\n height: 100%;\r\n border-width: 3px; /* STROKEWIDTH */\r\n border-style: solid;\r\n border-color: inherit;\r\n border-bottom-color: transparent !important;\r\n border-radius: 50%;\r\n -webkit-animation: none;\r\n animation: none;\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n }\r\n\r\n &.left .circle {\r\n left: 0;\r\n border-right-color: transparent !important;\r\n -webkit-transform: rotate(129deg);\r\n transform: rotate(129deg);\r\n }\r\n &.right .circle {\r\n left: -100%;\r\n border-left-color: transparent !important;\r\n -webkit-transform: rotate(-129deg);\r\n transform: rotate(-129deg);\r\n }\r\n}\r\n\r\n\r\n\r\n.active .circle-clipper.left .circle {\r\n /* duration: ARCTIME */\r\n -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\r\n animation: left-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\r\n}\r\n\r\n.active .circle-clipper.right .circle {\r\n /* duration: ARCTIME */\r\n -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\r\n animation: right-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;\r\n}\r\n\r\n@-webkit-keyframes left-spin {\r\n from { -webkit-transform: rotate(130deg); }\r\n 50% { -webkit-transform: rotate(-5deg); }\r\n to { -webkit-transform: rotate(130deg); }\r\n}\r\n\r\n@keyframes left-spin {\r\n from { transform: rotate(130deg); }\r\n 50% { transform: rotate(-5deg); }\r\n to { transform: rotate(130deg); }\r\n}\r\n\r\n@-webkit-keyframes right-spin {\r\n from { -webkit-transform: rotate(-130deg); }\r\n 50% { -webkit-transform: rotate(5deg); }\r\n to { -webkit-transform: rotate(-130deg); }\r\n}\r\n\r\n@keyframes right-spin {\r\n from { transform: rotate(-130deg); }\r\n 50% { transform: rotate(5deg); }\r\n to { transform: rotate(-130deg); }\r\n}\r\n\r\n#spinnerContainer.cooldown {\r\n /* duration: SHRINK_TIME */\r\n -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0.0, 0.2, 1);\r\n animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0.0, 0.2, 1);\r\n}\r\n\r\n@-webkit-keyframes fade-out {\r\n from { opacity: 1; }\r\n to { opacity: 0; }\r\n}\r\n\r\n@keyframes fade-out {\r\n from { opacity: 1; }\r\n to { opacity: 0; }\r\n}\r\n","\r\n// Progress Bar\r\n.progress {\r\n position: relative;\r\n height: 4px;\r\n display: block;\r\n width: 100%;\r\n background-color: lighten($progress-bar-color, 40%);\r\n border-radius: 2px;\r\n margin: $element-top-margin 0 $element-bottom-margin 0;\r\n overflow: hidden;\r\n .determinate {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n background-color: $progress-bar-color;\r\n transition: width .3s linear;\r\n }\r\n .indeterminate {\r\n background-color: $progress-bar-color;\r\n &:before {\r\n content: '';\r\n position: absolute;\r\n background-color: inherit;\r\n top: 0;\r\n left:0;\r\n bottom: 0;\r\n will-change: left, right;\r\n // Custom bezier\r\n animation: indeterminate 2.1s cubic-bezier(0.650, 0.815, 0.735, 0.395) infinite;\r\n\r\n }\r\n &:after {\r\n content: '';\r\n position: absolute;\r\n background-color: inherit;\r\n top: 0;\r\n left:0;\r\n bottom: 0;\r\n will-change: left, right;\r\n // Custom bezier\r\n animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.840, 0.440, 1.000) infinite;\r\n animation-delay: 1.15s;\r\n }\r\n }\r\n}\r\n@keyframes indeterminate {\r\n 0% {\r\n left: -35%;\r\n right:100%;\r\n }\r\n 60% {\r\n left: 100%;\r\n right: -90%;\r\n }\r\n 100% {\r\n left: 100%;\r\n right: -90%;\r\n }\r\n}\r\n\r\n@keyframes indeterminate-short {\r\n 0% {\r\n left: -200%;\r\n right: 100%;\r\n }\r\n 60% {\r\n left: 107%;\r\n right: -8%;\r\n }\r\n 100% {\r\n left: 107%;\r\n right: -8%;\r\n }\r\n}\r\n\r\n",".flash-message {\n position: absolute;\n padding: 2px 10px;\n border-radius: 5px;\n z-index: 99999;\n right: 0;\n bottom: 0;\n font-size: 14px;\n\n\n &.info {\n background-color: #beddbe;\n border: 1px solid #728f72;\n }\n\n &.warn {\n background-color: #f5e6d0;\n border: 1px solid #ea7d17;\n }\n &.error {\n background-color: #e5b2bc;\n border: 1px solid #e33257;\n }\n}\n\n@keyframes messageIn {\n from {\n right: 80%;\n }\n\n to {\n right: 0;\n\n }\n}",".pulse {\n &::before {\n content: '';\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background-color: inherit;\n border-radius: inherit;\n transition: opacity .3s, transform .3s;\n animation: pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;\n //z-index: -1;\n }\n\n overflow: visible;\n position: relative;\n}\n\n@keyframes pulse-animation {\n 0% {\n opacity: 1;\n transform: scale(1);\n }\n 50% {\n opacity: 0;\n transform: scale(1.5);\n }\n 100% {\n opacity: 0;\n transform: scale(1.5);\n }\n}\n",".dropdown-content {\n &:focus {\n outline: 0;\n }\n\n\n @extend .shadow-1;\n background-color: $dropdown-bg-color;\n margin: 0;\n display: flow;\n min-width: 100px;\n overflow-y: auto;\n //opacity: 0;\n position: absolute;\n left: 0;\n top: 0;\n z-index: 9999; // TODO: Check if this doesn't break other things\n transform-origin: 0 0;\n\n\n li {\n &:hover, &.active {\n background-color: $dropdown-hover-bg-color;\n }\n\n &:focus {\n outline: none;\n }\n\n &.divider {\n min-height: 0;\n height: 1px;\n }\n\n & > a, & > span {\n font-size: 16px;\n color: $dropdown-color;\n display: block;\n line-height: 22px;\n padding: calc(($dropdown-item-height - 22px) / 2) 16px;\n }\n\n & > span > label {\n top: 1px;\n left: 0;\n height: 18px;\n }\n\n // Icon alignment override\n & > a > i {\n height: inherit;\n line-height: inherit;\n float: left;\n margin: 0 24px 0 0;\n width: 24px;\n }\n\n\n clear: both;\n color: $off-black;\n cursor: pointer;\n min-height: $dropdown-item-height;\n line-height: 1.5rem;\n width: 100%;\n text-align: left;\n }\n}\n\nbody.keyboard-focused {\n .dropdown-content li:focus {\n background-color: darken($dropdown-hover-bg-color, 8%);\n }\n}\n\n// Input field specificity bugfix\n.input-field.col .dropdown-content [type=\"checkbox\"] + label {\n top: 1px;\n left: 0;\n height: 18px;\n transform: none;\n}\n\n.dropdown-trigger {\n cursor: pointer;\n}","nav {\n &.nav-extended {\n height: auto;\n\n .nav-wrapper {\n display: flex;\n align-items: center;\n min-height: $navbar-height-mobile;\n height: auto;\n }\n\n .nav-content {\n position: relative;\n line-height: normal;\n }\n }\n\n color: $navbar-font-color;\n @extend .shadow-1;\n background-color: $primary-color;\n width: 100%;\n height: $navbar-height-mobile;\n line-height: $navbar-line-height-mobile;\n\n a { color: $navbar-font-color; }\n\n i,\n [class^=\"mdi-\"], [class*=\"mdi-\"],\n i.s-icons {\n display: block;\n font-size: 24px;\n height: $navbar-height-mobile;\n line-height: $navbar-line-height-mobile;\n }\n\n .nav-wrapper {\n position: relative;\n height: 100%;\n }\n\n @media #{$large-and-up} {\n a.sidenav-trigger { display: none; }\n }\n\n\n // Collapse button\n .sidenav-trigger {\n float: left;\n position: relative;\n z-index: 1;\n height: $navbar-height-mobile;\n margin: 0 18px;\n\n i {\n height: $navbar-height-mobile;\n line-height: $navbar-line-height-mobile;\n }\n }\n\n\n // Logo\n .brand-logo {\n position: absolute;\n color: $navbar-font-color;\n display: inline-block;\n font-size: $navbar-brand-font-size;\n padding: 0;\n img.circle {\n height: 32px;\n width: 32px;\n }\n\n &.center {\n left: 50%;\n transform: translateX(-50%);\n }\n\n @media #{$medium-and-down} {\n left: 50%;\n transform: translateX(-50%);\n\n &.left, &.right {\n padding: 0;\n transform: none;\n }\n\n &.left { left: 0.5rem; }\n &.right {\n right: 0.5rem;\n left: auto;\n }\n }\n\n &.right {\n right: 0.5rem;\n padding: 0;\n }\n\n i,\n [class^=\"mdi-\"], [class*=\"mdi-\"],\n i.s-icons {\n float: left;\n margin-right: 15px;\n }\n }\n\n\n // Title\n .nav-title {\n display: inline-block;\n font-size: 32px;\n padding: 28px 0;\n }\n\n\n // Navbar Links\n ul {\n margin: 0;\n\n li {\n transition: background-color .3s;\n float: left;\n padding: 0;\n\n &.active {\n background-color: rgba(0,0,0,.1);\n }\n }\n a {\n transition: background-color .3s;\n font-size: $navbar-font-size;\n color: $navbar-font-color;\n display: block;\n padding: 0 15px;\n cursor: pointer;\n\n &.btn, &.btn-large, &.btn-flat, &.btn-floating {\n margin-top: -2px;\n margin-left: 15px;\n margin-right: 15px;\n\n & > .material-icons {\n height: inherit;\n line-height: inherit;\n }\n }\n\n &:hover {\n background-color: rgba(0,0,0,.1);\n }\n }\n\n &.left {\n float: left;\n }\n }\n\n // Navbar Search Form\n form {\n height: 100%;\n }\n\n .input-field {\n margin: 0;\n height: 100%;\n\n input {\n height: 100%;\n font-size: 1.2rem;\n border: none;\n padding-left: 2rem;\n\n &:focus, &[type=text]:valid, &[type=password]:valid,\n &[type=email]:valid, &[type=url]:valid, &[type=date]:valid {\n border: none;\n box-shadow: none;\n }\n }\n\n label {\n top: 0;\n left: 0;\n\n i {\n color: rgba(255,255,255,.7);\n transition: color .3s;\n }\n &.active i { color: $navbar-font-color; }\n }\n }\n}\n\n// Fixed Navbar\n.navbar-fixed {\n position: relative;\n height: $navbar-height-mobile;\n z-index: 997;\n\n nav {\n position: fixed;\n }\n}\n@media #{$medium-and-up} {\n nav.nav-extended .nav-wrapper {\n min-height: $navbar-height;\n }\n nav, nav .nav-wrapper i, nav a.sidenav-trigger, nav a.sidenav-trigger i {\n height: $navbar-height;\n line-height: $navbar-line-height;\n }\n .navbar-fixed {\n height: $navbar-height;\n }\n}\n"],"sourceRoot":""}]); // Exports /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); /***/ }), /***/ "./node_modules/css-loader/dist/runtime/api.js": /*!*****************************************************!*\ !*** ./node_modules/css-loader/dist/runtime/api.js ***! \*****************************************************/ /***/ ((module) => { "use strict"; /* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ module.exports = function (cssWithMappingToString) { var list = []; // return the list of modules as css string list.toString = function toString() { return this.map(function (item) { var content = ""; var needLayer = typeof item[5] !== "undefined"; if (item[4]) { content += "@supports (".concat(item[4], ") {"); } if (item[2]) { content += "@media ".concat(item[2], " {"); } if (needLayer) { content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {"); } content += cssWithMappingToString(item); if (needLayer) { content += "}"; } if (item[2]) { content += "}"; } if (item[4]) { content += "}"; } return content; }).join(""); }; // import a list of modules into the list list.i = function i(modules, media, dedupe, supports, layer) { if (typeof modules === "string") { modules = [[null, modules, undefined]]; } var alreadyImportedModules = {}; if (dedupe) { for (var k = 0; k < this.length; k++) { var id = this[k][0]; if (id != null) { alreadyImportedModules[id] = true; } } } for (var _k = 0; _k < modules.length; _k++) { var item = [].concat(modules[_k]); if (dedupe && alreadyImportedModules[item[0]]) { continue; } if (typeof layer !== "undefined") { if (typeof item[5] === "undefined") { item[5] = layer; } else { item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}"); item[5] = layer; } } if (media) { if (!item[2]) { item[2] = media; } else { item[1] = "@media ".concat(item[2], " {").concat(item[1], "}"); item[2] = media; } } if (supports) { if (!item[4]) { item[4] = "".concat(supports); } else { item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}"); item[4] = supports; } } list.push(item); } }; return list; }; /***/ }), /***/ "./node_modules/css-loader/dist/runtime/getUrl.js": /*!********************************************************!*\ !*** ./node_modules/css-loader/dist/runtime/getUrl.js ***! \********************************************************/ /***/ ((module) => { "use strict"; module.exports = function (url, options) { if (!options) { options = {}; } if (!url) { return url; } url = String(url.__esModule ? url.default : url); // If url is already wrapped in quotes, remove them if (/^['"].*['"]$/.test(url)) { url = url.slice(1, -1); } if (options.hash) { url += options.hash; } // Should url be wrapped? // See https://drafts.csswg.org/css-values-3/#urls if (/["'() \t\n]|(%20)/.test(url) || options.needQuotes) { return "\"".concat(url.replace(/"/g, '\\"').replace(/\n/g, "\\n"), "\""); } return url; }; /***/ }), /***/ "./node_modules/css-loader/dist/runtime/sourceMaps.js": /*!************************************************************!*\ !*** ./node_modules/css-loader/dist/runtime/sourceMaps.js ***! \************************************************************/ /***/ ((module) => { "use strict"; module.exports = function (item) { var content = item[1]; var cssMapping = item[3]; if (!cssMapping) { return content; } if (typeof btoa === "function") { var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping)))); var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64); var sourceMapping = "/*# ".concat(data, " */"); var sourceURLs = cssMapping.sources.map(function (source) { return "/*# sourceURL=".concat(cssMapping.sourceRoot || "").concat(source, " */"); }); return [content].concat(sourceURLs).concat([sourceMapping]).join("\n"); } return [content].join("\n"); }; /***/ }), /***/ "./node_modules/object-assign/index.js": /*!*********************************************!*\ !*** ./node_modules/object-assign/index.js ***! \*********************************************/ /***/ ((module) => { "use strict"; /* object-assign (c) Sindre Sorhus @license MIT */ /* eslint-disable no-unused-vars */ var getOwnPropertySymbols = Object.getOwnPropertySymbols; var hasOwnProperty = Object.prototype.hasOwnProperty; var propIsEnumerable = Object.prototype.propertyIsEnumerable; function toObject(val) { if (val === null || val === undefined) { throw new TypeError('Object.assign cannot be called with null or undefined'); } return Object(val); } function shouldUseNative() { try { if (!Object.assign) { return false; } // Detect buggy property enumeration order in older V8 versions. // https://bugs.chromium.org/p/v8/issues/detail?id=4118 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers test1[5] = 'de'; if (Object.getOwnPropertyNames(test1)[0] === '5') { return false; } // https://bugs.chromium.org/p/v8/issues/detail?id=3056 var test2 = {}; for (var i = 0; i < 10; i++) { test2['_' + String.fromCharCode(i)] = i; } var order2 = Object.getOwnPropertyNames(test2).map(function (n) { return test2[n]; }); if (order2.join('') !== '0123456789') { return false; } // https://bugs.chromium.org/p/v8/issues/detail?id=3056 var test3 = {}; 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { test3[letter] = letter; }); if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') { return false; } return true; } catch (err) { // We don't expect any of the above to throw, but better to be safe. return false; } } module.exports = shouldUseNative() ? Object.assign : function (target, source) { var from; var to = toObject(target); var symbols; for (var s = 1; s < arguments.length; s++) { from = Object(arguments[s]); for (var key in from) { if (hasOwnProperty.call(from, key)) { to[key] = from[key]; } } if (getOwnPropertySymbols) { symbols = getOwnPropertySymbols(from); for (var i = 0; i < symbols.length; i++) { if (propIsEnumerable.call(from, symbols[i])) { to[symbols[i]] = from[symbols[i]]; } } } } return to; }; /***/ }), /***/ "./node_modules/prop-types/checkPropTypes.js": /*!***************************************************!*\ !*** ./node_modules/prop-types/checkPropTypes.js ***! \***************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /** * Copyright (c) 2013-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ var printWarning = function() {}; if (true) { var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "./node_modules/prop-types/lib/ReactPropTypesSecret.js"); var loggedTypeFailures = {}; var has = __webpack_require__(/*! ./lib/has */ "./node_modules/prop-types/lib/has.js"); printWarning = function(text) { var message = 'Warning: ' + text; if (typeof console !== 'undefined') { console.error(message); } try { // --- Welcome to debugging React --- // This error was thrown as a convenience so that you can use this stack // to find the callsite that caused this warning to fire. throw new Error(message); } catch (x) { /**/ } }; } /** * Assert that the values match with the type specs. * Error messages are memorized and will only be shown once. * * @param {object} typeSpecs Map of name to a ReactPropType * @param {object} values Runtime values that need to be type-checked * @param {string} location e.g. "prop", "context", "child context" * @param {string} componentName Name of the component for error messages. * @param {?Function} getStack Returns the component stack. * @private */ function checkPropTypes(typeSpecs, values, location, componentName, getStack) { if (true) { for (var typeSpecName in typeSpecs) { if (has(typeSpecs, typeSpecName)) { var error; // Prop type validation may throw. In case they do, we don't want to // fail the render phase where it didn't fail before. So we log it. // After these have been cleaned up, we'll let them throw. try { // This is intentionally an invariant that gets caught. It's the same // behavior as without this statement except with a better message. if (typeof typeSpecs[typeSpecName] !== 'function') { var err = Error( (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.' ); err.name = 'Invariant Violation'; throw err; } error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); } catch (ex) { error = ex; } if (error && !(error instanceof Error)) { printWarning( (componentName || 'React class') + ': type specification of ' + location + ' `' + typeSpecName + '` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).' ); } if (error instanceof Error && !(error.message in loggedTypeFailures)) { // Only monitor this failure once because there tends to be a lot of the // same error. loggedTypeFailures[error.message] = true; var stack = getStack ? getStack() : ''; printWarning( 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') ); } } } } } /** * Resets warning cache when testing. * * @private */ checkPropTypes.resetWarningCache = function() { if (true) { loggedTypeFailures = {}; } } module.exports = checkPropTypes; /***/ }), /***/ "./node_modules/prop-types/factoryWithTypeCheckers.js": /*!************************************************************!*\ !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***! \************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /** * Copyright (c) 2013-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ var ReactIs = __webpack_require__(/*! react-is */ "./node_modules/react-is/index.js"); var assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js"); var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "./node_modules/prop-types/lib/ReactPropTypesSecret.js"); var has = __webpack_require__(/*! ./lib/has */ "./node_modules/prop-types/lib/has.js"); var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "./node_modules/prop-types/checkPropTypes.js"); var printWarning = function() {}; if (true) { printWarning = function(text) { var message = 'Warning: ' + text; if (typeof console !== 'undefined') { console.error(message); } try { // --- Welcome to debugging React --- // This error was thrown as a convenience so that you can use this stack // to find the callsite that caused this warning to fire. throw new Error(message); } catch (x) {} }; } function emptyFunctionThatReturnsNull() { return null; } module.exports = function(isValidElement, throwOnDirectAccess) { /* global Symbol */ var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. /** * Returns the iterator method function contained on the iterable object. * * Be sure to invoke the function with the iterable as context: * * var iteratorFn = getIteratorFn(myIterable); * if (iteratorFn) { * var iterator = iteratorFn.call(myIterable); * ... * } * * @param {?object} maybeIterable * @return {?function} */ function getIteratorFn(maybeIterable) { var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); if (typeof iteratorFn === 'function') { return iteratorFn; } } /** * Collection of methods that allow declaration and validation of props that are * supplied to React components. Example usage: * * var Props = require('ReactPropTypes'); * var MyArticle = React.createClass({ * propTypes: { * // An optional string prop named "description". * description: Props.string, * * // A required enum prop named "category". * category: Props.oneOf(['News','Photos']).isRequired, * * // A prop named "dialog" that requires an instance of Dialog. * dialog: Props.instanceOf(Dialog).isRequired * }, * render: function() { ... } * }); * * A more formal specification of how these methods are used: * * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) * decl := ReactPropTypes.{type}(.isRequired)? * * Each and every declaration produces a function with the same signature. This * allows the creation of custom validation functions. For example: * * var MyLink = React.createClass({ * propTypes: { * // An optional string or URI prop named "href". * href: function(props, propName, componentName) { * var propValue = props[propName]; * if (propValue != null && typeof propValue !== 'string' && * !(propValue instanceof URI)) { * return new Error( * 'Expected a string or an URI for ' + propName + ' in ' + * componentName * ); * } * } * }, * render: function() {...} * }); * * @internal */ var ANONYMOUS = '<>'; // Important! // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. var ReactPropTypes = { array: createPrimitiveTypeChecker('array'), bigint: createPrimitiveTypeChecker('bigint'), bool: createPrimitiveTypeChecker('boolean'), func: createPrimitiveTypeChecker('function'), number: createPrimitiveTypeChecker('number'), object: createPrimitiveTypeChecker('object'), string: createPrimitiveTypeChecker('string'), symbol: createPrimitiveTypeChecker('symbol'), any: createAnyTypeChecker(), arrayOf: createArrayOfTypeChecker, element: createElementTypeChecker(), elementType: createElementTypeTypeChecker(), instanceOf: createInstanceTypeChecker, node: createNodeChecker(), objectOf: createObjectOfTypeChecker, oneOf: createEnumTypeChecker, oneOfType: createUnionTypeChecker, shape: createShapeTypeChecker, exact: createStrictShapeTypeChecker, }; /** * inlined Object.is polyfill to avoid requiring consumers ship their own * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is */ /*eslint-disable no-self-compare*/ function is(x, y) { // SameValue algorithm if (x === y) { // Steps 1-5, 7-10 // Steps 6.b-6.e: +0 != -0 return x !== 0 || 1 / x === 1 / y; } else { // Step 6.a: NaN == NaN return x !== x && y !== y; } } /*eslint-enable no-self-compare*/ /** * We use an Error-like object for backward compatibility as people may call * PropTypes directly and inspect their output. However, we don't use real * Errors anymore. We don't inspect their stack anyway, and creating them * is prohibitively expensive if they are created too often, such as what * happens in oneOfType() for any type before the one that matched. */ function PropTypeError(message, data) { this.message = message; this.data = data && typeof data === 'object' ? data: {}; this.stack = ''; } // Make `instanceof Error` still work for returned errors. PropTypeError.prototype = Error.prototype; function createChainableTypeChecker(validate) { if (true) { var manualPropTypeCallCache = {}; var manualPropTypeWarningCount = 0; } function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { componentName = componentName || ANONYMOUS; propFullName = propFullName || propName; if (secret !== ReactPropTypesSecret) { if (throwOnDirectAccess) { // New behavior only for users of `prop-types` package var err = new Error( 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use `PropTypes.checkPropTypes()` to call them. ' + 'Read more at http://fb.me/use-check-prop-types' ); err.name = 'Invariant Violation'; throw err; } else if ( true && typeof console !== 'undefined') { // Old behavior for people using React.PropTypes var cacheKey = componentName + ':' + propName; if ( !manualPropTypeCallCache[cacheKey] && // Avoid spamming the console because they are often not actionable except for lib authors manualPropTypeWarningCount < 3 ) { printWarning( 'You are manually calling a React.PropTypes validation ' + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + 'and will throw in the standalone `prop-types` package. ' + 'You may be seeing this warning due to a third-party PropTypes ' + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' ); manualPropTypeCallCache[cacheKey] = true; manualPropTypeWarningCount++; } } } if (props[propName] == null) { if (isRequired) { if (props[propName] === null) { return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); } return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); } return null; } else { return validate(props, propName, componentName, location, propFullName); } } var chainedCheckType = checkType.bind(null, false); chainedCheckType.isRequired = checkType.bind(null, true); return chainedCheckType; } function createPrimitiveTypeChecker(expectedType) { function validate(props, propName, componentName, location, propFullName, secret) { var propValue = props[propName]; var propType = getPropType(propValue); if (propType !== expectedType) { // `propValue` being instance of, say, date/regexp, pass the 'object' // check, but we can offer a more precise error message here rather than // 'of type `object`'. var preciseType = getPreciseType(propValue); return new PropTypeError( 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'), {expectedType: expectedType} ); } return null; } return createChainableTypeChecker(validate); } function createAnyTypeChecker() { return createChainableTypeChecker(emptyFunctionThatReturnsNull); } function createArrayOfTypeChecker(typeChecker) { function validate(props, propName, componentName, location, propFullName) { if (typeof typeChecker !== 'function') { return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); } var propValue = props[propName]; if (!Array.isArray(propValue)) { var propType = getPropType(propValue); return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); } for (var i = 0; i < propValue.length; i++) { var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); if (error instanceof Error) { return error; } } return null; } return createChainableTypeChecker(validate); } function createElementTypeChecker() { function validate(props, propName, componentName, location, propFullName) { var propValue = props[propName]; if (!isValidElement(propValue)) { var propType = getPropType(propValue); return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); } return null; } return createChainableTypeChecker(validate); } function createElementTypeTypeChecker() { function validate(props, propName, componentName, location, propFullName) { var propValue = props[propName]; if (!ReactIs.isValidElementType(propValue)) { var propType = getPropType(propValue); return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.')); } return null; } return createChainableTypeChecker(validate); } function createInstanceTypeChecker(expectedClass) { function validate(props, propName, componentName, location, propFullName) { if (!(props[propName] instanceof expectedClass)) { var expectedClassName = expectedClass.name || ANONYMOUS; var actualClassName = getClassName(props[propName]); return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); } return null; } return createChainableTypeChecker(validate); } function createEnumTypeChecker(expectedValues) { if (!Array.isArray(expectedValues)) { if (true) { if (arguments.length > 1) { printWarning( 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' ); } else { printWarning('Invalid argument supplied to oneOf, expected an array.'); } } return emptyFunctionThatReturnsNull; } function validate(props, propName, componentName, location, propFullName) { var propValue = props[propName]; for (var i = 0; i < expectedValues.length; i++) { if (is(propValue, expectedValues[i])) { return null; } } var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { var type = getPreciseType(value); if (type === 'symbol') { return String(value); } return value; }); return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); } return createChainableTypeChecker(validate); } function createObjectOfTypeChecker(typeChecker) { function validate(props, propName, componentName, location, propFullName) { if (typeof typeChecker !== 'function') { return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); } var propValue = props[propName]; var propType = getPropType(propValue); if (propType !== 'object') { return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); } for (var key in propValue) { if (has(propValue, key)) { var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); if (error instanceof Error) { return error; } } } return null; } return createChainableTypeChecker(validate); } function createUnionTypeChecker(arrayOfTypeCheckers) { if (!Array.isArray(arrayOfTypeCheckers)) { true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0; return emptyFunctionThatReturnsNull; } for (var i = 0; i < arrayOfTypeCheckers.length; i++) { var checker = arrayOfTypeCheckers[i]; if (typeof checker !== 'function') { printWarning( 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' ); return emptyFunctionThatReturnsNull; } } function validate(props, propName, componentName, location, propFullName) { var expectedTypes = []; for (var i = 0; i < arrayOfTypeCheckers.length; i++) { var checker = arrayOfTypeCheckers[i]; var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret); if (checkerResult == null) { return null; } if (checkerResult.data && has(checkerResult.data, 'expectedType')) { expectedTypes.push(checkerResult.data.expectedType); } } var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': ''; return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.')); } return createChainableTypeChecker(validate); } function createNodeChecker() { function validate(props, propName, componentName, location, propFullName) { if (!isNode(props[propName])) { return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); } return null; } return createChainableTypeChecker(validate); } function invalidValidatorError(componentName, location, propFullName, key, type) { return new PropTypeError( (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.' ); } function createShapeTypeChecker(shapeTypes) { function validate(props, propName, componentName, location, propFullName) { var propValue = props[propName]; var propType = getPropType(propValue); if (propType !== 'object') { return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); } for (var key in shapeTypes) { var checker = shapeTypes[key]; if (typeof checker !== 'function') { return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker)); } var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); if (error) { return error; } } return null; } return createChainableTypeChecker(validate); } function createStrictShapeTypeChecker(shapeTypes) { function validate(props, propName, componentName, location, propFullName) { var propValue = props[propName]; var propType = getPropType(propValue); if (propType !== 'object') { return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); } // We need to check all keys in case some are required but missing from props. var allKeys = assign({}, props[propName], shapeTypes); for (var key in allKeys) { var checker = shapeTypes[key]; if (has(shapeTypes, key) && typeof checker !== 'function') { return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker)); } if (!checker) { return new PropTypeError( 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') ); } var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); if (error) { return error; } } return null; } return createChainableTypeChecker(validate); } function isNode(propValue) { switch (typeof propValue) { case 'number': case 'string': case 'undefined': return true; case 'boolean': return !propValue; case 'object': if (Array.isArray(propValue)) { return propValue.every(isNode); } if (propValue === null || isValidElement(propValue)) { return true; } var iteratorFn = getIteratorFn(propValue); if (iteratorFn) { var iterator = iteratorFn.call(propValue); var step; if (iteratorFn !== propValue.entries) { while (!(step = iterator.next()).done) { if (!isNode(step.value)) { return false; } } } else { // Iterator will provide entry [k,v] tuples rather than values. while (!(step = iterator.next()).done) { var entry = step.value; if (entry) { if (!isNode(entry[1])) { return false; } } } } } else { return false; } return true; default: return false; } } function isSymbol(propType, propValue) { // Native Symbol. if (propType === 'symbol') { return true; } // falsy value can't be a Symbol if (!propValue) { return false; } // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' if (propValue['@@toStringTag'] === 'Symbol') { return true; } // Fallback for non-spec compliant Symbols which are polyfilled. if (typeof Symbol === 'function' && propValue instanceof Symbol) { return true; } return false; } // Equivalent of `typeof` but with special handling for array and regexp. function getPropType(propValue) { var propType = typeof propValue; if (Array.isArray(propValue)) { return 'array'; } if (propValue instanceof RegExp) { // Old webkits (at least until Android 4.0) return 'function' rather than // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ // passes PropTypes.object. return 'object'; } if (isSymbol(propType, propValue)) { return 'symbol'; } return propType; } // This handles more types than `getPropType`. Only used for error messages. // See `createPrimitiveTypeChecker`. function getPreciseType(propValue) { if (typeof propValue === 'undefined' || propValue === null) { return '' + propValue; } var propType = getPropType(propValue); if (propType === 'object') { if (propValue instanceof Date) { return 'date'; } else if (propValue instanceof RegExp) { return 'regexp'; } } return propType; } // Returns a string that is postfixed to a warning about an invalid type. // For example, "undefined" or "of type array" function getPostfixForTypeWarning(value) { var type = getPreciseType(value); switch (type) { case 'array': case 'object': return 'an ' + type; case 'boolean': case 'date': case 'regexp': return 'a ' + type; default: return type; } } // Returns class name of the object, if any. function getClassName(propValue) { if (!propValue.constructor || !propValue.constructor.name) { return ANONYMOUS; } return propValue.constructor.name; } ReactPropTypes.checkPropTypes = checkPropTypes; ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache; ReactPropTypes.PropTypes = ReactPropTypes; return ReactPropTypes; }; /***/ }), /***/ "./node_modules/prop-types/index.js": /*!******************************************!*\ !*** ./node_modules/prop-types/index.js ***! \******************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { /** * Copyright (c) 2013-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ if (true) { var ReactIs = __webpack_require__(/*! react-is */ "./node_modules/react-is/index.js"); // By explicitly using `prop-types` you are opting into new development behavior. // http://fb.me/prop-types-in-prod var throwOnDirectAccess = true; module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "./node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess); } else {} /***/ }), /***/ "./node_modules/prop-types/lib/ReactPropTypesSecret.js": /*!*************************************************************!*\ !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***! \*************************************************************/ /***/ ((module) => { "use strict"; /** * Copyright (c) 2013-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; module.exports = ReactPropTypesSecret; /***/ }), /***/ "./node_modules/prop-types/lib/has.js": /*!********************************************!*\ !*** ./node_modules/prop-types/lib/has.js ***! \********************************************/ /***/ ((module) => { module.exports = Function.call.bind(Object.prototype.hasOwnProperty); /***/ }), /***/ "./node_modules/react-is/cjs/react-is.development.js": /*!***********************************************************!*\ !*** ./node_modules/react-is/cjs/react-is.development.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; /** @license React v16.13.1 * react-is.development.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ if (true) { (function() { 'use strict'; // The Symbol used to tag the ReactElement-like types. If there is no native Symbol // nor polyfill, then a plain number is used for performance. var hasSymbol = typeof Symbol === 'function' && Symbol.for; var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary // (unstable) APIs that have been removed. Can we remove the symbols? var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; function isValidElementType(type) { return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); } function typeOf(object) { if (typeof object === 'object' && object !== null) { var $$typeof = object.$$typeof; switch ($$typeof) { case REACT_ELEMENT_TYPE: var type = object.type; switch (type) { case REACT_ASYNC_MODE_TYPE: case REACT_CONCURRENT_MODE_TYPE: case REACT_FRAGMENT_TYPE: case REACT_PROFILER_TYPE: case REACT_STRICT_MODE_TYPE: case REACT_SUSPENSE_TYPE: return type; default: var $$typeofType = type && type.$$typeof; switch ($$typeofType) { case REACT_CONTEXT_TYPE: case REACT_FORWARD_REF_TYPE: case REACT_LAZY_TYPE: case REACT_MEMO_TYPE: case REACT_PROVIDER_TYPE: return $$typeofType; default: return $$typeof; } } case REACT_PORTAL_TYPE: return $$typeof; } } return undefined; } // AsyncMode is deprecated along with isAsyncMode var AsyncMode = REACT_ASYNC_MODE_TYPE; var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; var ContextConsumer = REACT_CONTEXT_TYPE; var ContextProvider = REACT_PROVIDER_TYPE; var Element = REACT_ELEMENT_TYPE; var ForwardRef = REACT_FORWARD_REF_TYPE; var Fragment = REACT_FRAGMENT_TYPE; var Lazy = REACT_LAZY_TYPE; var Memo = REACT_MEMO_TYPE; var Portal = REACT_PORTAL_TYPE; var Profiler = REACT_PROFILER_TYPE; var StrictMode = REACT_STRICT_MODE_TYPE; var Suspense = REACT_SUSPENSE_TYPE; var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated function isAsyncMode(object) { { if (!hasWarnedAboutDeprecatedIsAsyncMode) { hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); } } return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; } function isConcurrentMode(object) { return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; } function isContextConsumer(object) { return typeOf(object) === REACT_CONTEXT_TYPE; } function isContextProvider(object) { return typeOf(object) === REACT_PROVIDER_TYPE; } function isElement(object) { return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; } function isForwardRef(object) { return typeOf(object) === REACT_FORWARD_REF_TYPE; } function isFragment(object) { return typeOf(object) === REACT_FRAGMENT_TYPE; } function isLazy(object) { return typeOf(object) === REACT_LAZY_TYPE; } function isMemo(object) { return typeOf(object) === REACT_MEMO_TYPE; } function isPortal(object) { return typeOf(object) === REACT_PORTAL_TYPE; } function isProfiler(object) { return typeOf(object) === REACT_PROFILER_TYPE; } function isStrictMode(object) { return typeOf(object) === REACT_STRICT_MODE_TYPE; } function isSuspense(object) { return typeOf(object) === REACT_SUSPENSE_TYPE; } exports.AsyncMode = AsyncMode; exports.ConcurrentMode = ConcurrentMode; exports.ContextConsumer = ContextConsumer; exports.ContextProvider = ContextProvider; exports.Element = Element; exports.ForwardRef = ForwardRef; exports.Fragment = Fragment; exports.Lazy = Lazy; exports.Memo = Memo; exports.Portal = Portal; exports.Profiler = Profiler; exports.StrictMode = StrictMode; exports.Suspense = Suspense; exports.isAsyncMode = isAsyncMode; exports.isConcurrentMode = isConcurrentMode; exports.isContextConsumer = isContextConsumer; exports.isContextProvider = isContextProvider; exports.isElement = isElement; exports.isForwardRef = isForwardRef; exports.isFragment = isFragment; exports.isLazy = isLazy; exports.isMemo = isMemo; exports.isPortal = isPortal; exports.isProfiler = isProfiler; exports.isStrictMode = isStrictMode; exports.isSuspense = isSuspense; exports.isValidElementType = isValidElementType; exports.typeOf = typeOf; })(); } /***/ }), /***/ "./node_modules/react-is/index.js": /*!****************************************!*\ !*** ./node_modules/react-is/index.js ***! \****************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; if (false) {} else { module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "./node_modules/react-is/cjs/react-is.development.js"); } /***/ }), /***/ "./node_modules/react-router-dom/dist/index.js": /*!*****************************************************!*\ !*** ./node_modules/react-router-dom/dist/index.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "AbortedDeferredError": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_1__.AbortedDeferredError), /* harmony export */ "Await": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.Await), /* harmony export */ "BrowserRouter": () => (/* binding */ BrowserRouter), /* harmony export */ "Form": () => (/* binding */ Form), /* harmony export */ "HashRouter": () => (/* binding */ HashRouter), /* harmony export */ "Link": () => (/* binding */ Link), /* harmony export */ "MemoryRouter": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.MemoryRouter), /* harmony export */ "NavLink": () => (/* binding */ NavLink), /* harmony export */ "Navigate": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.Navigate), /* harmony export */ "NavigationType": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_1__.Action), /* harmony export */ "Outlet": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.Outlet), /* harmony export */ "Route": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.Route), /* harmony export */ "Router": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.Router), /* harmony export */ "RouterProvider": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.RouterProvider), /* harmony export */ "Routes": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.Routes), /* harmony export */ "ScrollRestoration": () => (/* binding */ ScrollRestoration), /* harmony export */ "UNSAFE_DataRouterContext": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.UNSAFE_DataRouterContext), /* harmony export */ "UNSAFE_DataRouterStateContext": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.UNSAFE_DataRouterStateContext), /* harmony export */ "UNSAFE_DataStaticRouterContext": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.UNSAFE_DataStaticRouterContext), /* harmony export */ "UNSAFE_LocationContext": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.UNSAFE_LocationContext), /* harmony export */ "UNSAFE_NavigationContext": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.UNSAFE_NavigationContext), /* harmony export */ "UNSAFE_RouteContext": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.UNSAFE_RouteContext), /* harmony export */ "UNSAFE_enhanceManualRouteObjects": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.UNSAFE_enhanceManualRouteObjects), /* harmony export */ "createBrowserRouter": () => (/* binding */ createBrowserRouter), /* harmony export */ "createHashRouter": () => (/* binding */ createHashRouter), /* harmony export */ "createMemoryRouter": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.createMemoryRouter), /* harmony export */ "createPath": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_1__.createPath), /* harmony export */ "createRoutesFromChildren": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.createRoutesFromChildren), /* harmony export */ "createRoutesFromElements": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.createRoutesFromElements), /* harmony export */ "createSearchParams": () => (/* binding */ createSearchParams), /* harmony export */ "defer": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_1__.defer), /* harmony export */ "generatePath": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_1__.generatePath), /* harmony export */ "isRouteErrorResponse": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_1__.isRouteErrorResponse), /* harmony export */ "json": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_1__.json), /* harmony export */ "matchPath": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_1__.matchPath), /* harmony export */ "matchRoutes": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_1__.matchRoutes), /* harmony export */ "parsePath": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_1__.parsePath), /* harmony export */ "redirect": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_1__.redirect), /* harmony export */ "renderMatches": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.renderMatches), /* harmony export */ "resolvePath": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_1__.resolvePath), /* harmony export */ "unstable_HistoryRouter": () => (/* binding */ HistoryRouter), /* harmony export */ "useActionData": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useActionData), /* harmony export */ "useAsyncError": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useAsyncError), /* harmony export */ "useAsyncValue": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useAsyncValue), /* harmony export */ "useFetcher": () => (/* binding */ useFetcher), /* harmony export */ "useFetchers": () => (/* binding */ useFetchers), /* harmony export */ "useFormAction": () => (/* binding */ useFormAction), /* harmony export */ "useHref": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useHref), /* harmony export */ "useInRouterContext": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useInRouterContext), /* harmony export */ "useLinkClickHandler": () => (/* binding */ useLinkClickHandler), /* harmony export */ "useLoaderData": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useLoaderData), /* harmony export */ "useLocation": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useLocation), /* harmony export */ "useMatch": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useMatch), /* harmony export */ "useMatches": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useMatches), /* harmony export */ "useNavigate": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useNavigate), /* harmony export */ "useNavigation": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useNavigation), /* harmony export */ "useNavigationType": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useNavigationType), /* harmony export */ "useOutlet": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useOutlet), /* harmony export */ "useOutletContext": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useOutletContext), /* harmony export */ "useParams": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useParams), /* harmony export */ "useResolvedPath": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useResolvedPath), /* harmony export */ "useRevalidator": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useRevalidator), /* harmony export */ "useRouteError": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useRouteError), /* harmony export */ "useRouteLoaderData": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useRouteLoaderData), /* harmony export */ "useRoutes": () => (/* reexport safe */ react_router__WEBPACK_IMPORTED_MODULE_2__.useRoutes), /* harmony export */ "useSearchParams": () => (/* binding */ useSearchParams), /* harmony export */ "useSubmit": () => (/* binding */ useSubmit) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); /* harmony import */ var react_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-router */ "./node_modules/react-router/dist/index.js"); /* harmony import */ var react_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @remix-run/router */ "./node_modules/@remix-run/router/dist/router.js"); /** * React Router DOM v6.4.3 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } const defaultMethod = "get"; const defaultEncType = "application/x-www-form-urlencoded"; function isHtmlElement(object) { return object != null && typeof object.tagName === "string"; } function isButtonElement(object) { return isHtmlElement(object) && object.tagName.toLowerCase() === "button"; } function isFormElement(object) { return isHtmlElement(object) && object.tagName.toLowerCase() === "form"; } function isInputElement(object) { return isHtmlElement(object) && object.tagName.toLowerCase() === "input"; } function isModifiedEvent(event) { return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey); } function shouldProcessLinkClick(event, target) { return event.button === 0 && ( // Ignore everything but left clicks !target || target === "_self") && // Let browser handle "target=_blank" etc. !isModifiedEvent(event) // Ignore clicks with modifier keys ; } /** * Creates a URLSearchParams object using the given initializer. * * This is identical to `new URLSearchParams(init)` except it also * supports arrays as values in the object form of the initializer * instead of just strings. This is convenient when you need multiple * values for a given key, but don't want to use an array initializer. * * For example, instead of: * * let searchParams = new URLSearchParams([ * ['sort', 'name'], * ['sort', 'price'] * ]); * * you can do: * * let searchParams = createSearchParams({ * sort: ['name', 'price'] * }); */ function createSearchParams(init) { if (init === void 0) { init = ""; } return new URLSearchParams(typeof init === "string" || Array.isArray(init) || init instanceof URLSearchParams ? init : Object.keys(init).reduce((memo, key) => { let value = init[key]; return memo.concat(Array.isArray(value) ? value.map(v => [key, v]) : [[key, value]]); }, [])); } function getSearchParamsForLocation(locationSearch, defaultSearchParams) { let searchParams = createSearchParams(locationSearch); for (let key of defaultSearchParams.keys()) { if (!searchParams.has(key)) { defaultSearchParams.getAll(key).forEach(value => { searchParams.append(key, value); }); } } return searchParams; } function getFormSubmissionInfo(target, defaultAction, options) { let method; let action; let encType; let formData; if (isFormElement(target)) { let submissionTrigger = options.submissionTrigger; method = options.method || target.getAttribute("method") || defaultMethod; action = options.action || target.getAttribute("action") || defaultAction; encType = options.encType || target.getAttribute("enctype") || defaultEncType; formData = new FormData(target); if (submissionTrigger && submissionTrigger.name) { formData.append(submissionTrigger.name, submissionTrigger.value); } } else if (isButtonElement(target) || isInputElement(target) && (target.type === "submit" || target.type === "image")) { let form = target.form; if (form == null) { throw new Error("Cannot submit a