diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d50c47d..b59c8848 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Release Notes for Feed Me +## 5.1.2 - 2023-04-17 + +- Added support for importing into CKEditor as an inner element field. +- Fixed a PHP error that could occur when saving a feed using an Asset element type with no volume selected. +- Fixed a PHP error that could occur when importing a feed that has `setEmptyValues` set to off on the feed. ([#1269](https://github.com/craftcms/feed-me/issues/1269)) +- Fixed several bugs related to empty and non-existent feed values and the “Set Empty Values” feed setting. ([#1271](https://github.com/craftcms/feed-me/pull/1271)) +- Fixed a bug where that prevented importing data as Commerce Variants. ([#464](https://github.com/craftcms/feed-me/issues/464), [#1168](https://github.com/craftcms/feed-me/issues/1168)) +- Fixed a bug were you could not import into Redactor as an inner element field. +- Fixed a bug where mapping into fields that support inner elements that were inside of Matrix, content from the first element was used to populate all other elements. ([#1227](https://github.com/craftcms/feed-me/issues/1227), [#1278](https://github.com/craftcms/feed-me/pull/1278)) +- Fixed a bug where importing a user with an empty user photo in the feed, would assign an incorrect photo for the user. ([#582](https://github.com/craftcms/feed-me/issues/582), [#1283](https://github.com/craftcms/feed-me/pull/1283)) +- Fixed a bug where importing into Matrix sub fields could use incorrect data when “Use default value” was selected for the field. ([#674](https://github.com/craftcms/feed-me/issues/674), [#1282](https://github.com/craftcms/feed-me/pull/1282)) +- Removed the “Collapsed” checkbox from Matrix feed mapping screens. ([#709](https://github.com/craftcms/feed-me/issues/709), [#1284](https://github.com/craftcms/feed-me/pull/1284)) +- Fixed an XSS vulnerability. + ## 5.1.1.1 - 2023-02-24 - Fixed a PHP error that could occur when importing into some 3rd party fields. ([#1264](https://github.com/craftcms/feed-me/issues/1264), [#1265](https://github.com/craftcms/feed-me/pull/1265)) @@ -74,6 +88,14 @@ ### Removed - Removed built-in support for the Verbb Comments plugin, which provides its own Feed Me driver. +## 4.6.1.1 - 2023-03-24 + +- Fixed a PHP error that could occur when importing into some 3rd party fields. ([#1264](https://github.com/craftcms/feed-me/issues/1264), [#1265](https://github.com/craftcms/feed-me/pull/1265)) + +## 4.6.1 - 2023-03-20 + +- Fixed a JavaScript error that would occur on case-sensitive filesystems when using Feed Me. ([#1260](https://github.com/craftcms/feed-me/pull/1260), [#1257](https://github.com/craftcms/feed-me/issues/1257), [#1258](https://github.com/craftcms/feed-me/issues/1258), [#1259](https://github.com/craftcms/feed-me/issues/1259)) + ## 4.6.0 - 2023-03-16 - Added the “Set Empty Values” feed setting, which determines whether empty values in the feed should be respected or ignored. ([#1228](https://github.com/craftcms/feed-me/pull/1228), [#797](https://github.com/craftcms/feed-me/issues/797), [#723](https://github.com/craftcms/feed-me/issues/723), [#854](https://github.com/craftcms/feed-me/issues/854), [#680](https://github.com/craftcms/feed-me/issues/680)) diff --git a/docs/content-mapping/element-types.md b/docs/content-mapping/element-types.md index de87962c..ca39e19c 100644 --- a/docs/content-mapping/element-types.md +++ b/docs/content-mapping/element-types.md @@ -1,13 +1,17 @@ # Element Types -Selecting which Element Type to import into is the first step in using Feed Me. As each Element Type is different, you'll have different attributes to map depending on which you'd like to create. +Selecting which element type your import targets is the first step in using Feed Me. As each element type is different, the presented [mapping](../feature-tour/field-mapping.md) options will be unique. ## Built-in Importers -Feed Me can import content for the following element types out of the box: +The following element types are supported by Feed Me, out of the box: -- **Core element types:** entries, categories, tags, assets, and users -- **[Craft Commerce](https://plugins.craftcms.com/commerce):** products -- **[Digital Products](https://plugins.craftcms.com/digital-products):** digital products -- **[Calendar by Solspace](https://plugins.craftcms.com/calendar):** events -- **[Verbb Comments](https://plugins.craftcms.com/comments):** comments +- **[Core element types](https://craftcms.com/docs/4.x/elements.html):** Assets, categories, entries, tags, and users; +- **[Craft Commerce](https://plugins.craftcms.com/commerce):** Products and variants; +- **[Digital Products](https://plugins.craftcms.com/digital-products):** Digital products; +- **[Calendar by Solspace](https://plugins.craftcms.com/calendar):** Events; +- **[Verbb Comments](https://plugins.craftcms.com/comments):** Comments; + +::: tip +Plugins can add support for their own [custom element types](../developers/element-types.md), as well. +::: diff --git a/docs/content-mapping/field-types.md b/docs/content-mapping/field-types.md index 14146559..7cd61dba 100644 --- a/docs/content-mapping/field-types.md +++ b/docs/content-mapping/field-types.md @@ -1,6 +1,6 @@ # Field Types -Feed Me supports all native [Craft Fields](https://craftcms.com/docs/fields), and even some third-party ones. +Feed Me supports all native [Craft Fields](https://craftcms.com/docs/4.x/fields.html), and even some third-party ones. ### Assets @@ -190,6 +190,7 @@ Accepts a single value. You must provide the Value of the option to select, not ::: ### Entries + Accepts single or multiple values. #### Additional Options @@ -343,43 +344,6 @@ Accepts a single value. ``` ::: -### Position Select - -Accepts a single or multiple values. Should provide from the below options: - -- `left` -- `center` -- `right` -- `full` -- `drop-left` -- `drop-right` - -:::code -```xml -right - -// Or - - left - right - -``` - -```json -{ - "Position": "right" -} - -// Or -{ - "Positions": [ - "left", - "right" - ] -} -``` -::: - ### Radio Buttons Accepts a single value. You must provide the Value of the option to select, not the Label. @@ -396,22 +360,6 @@ Accepts a single value. You must provide the Value of the option to select, not ``` ::: -### Rich Text - -Accepts a single value. Be sure to escape your content properly if it contains HTML. - -:::code -```xml -Lorem ipsum dolor sit amet.

]]>
-``` - -```json -{ - "RichText": "

Lorem ipsum dolor sit amet.

" -} -``` -::: - ### Table Each Table field row has multiple columns, so you map each field value to a column, rather than the entire Table field. You also group your columns into rows, as shown below. @@ -577,3 +525,5 @@ Depending on what data your feed contains, you'll need to select the appropriate ## Inner Element Fields As each Element (Assets, Categories, Entries, Tags, Users) can have custom fields themselves, Feed Me gives you the chance to map to those fields as well. They'll appear under any row when mapping to an Element field. + +See the introduction to field mapping for more information on setting up nested fields. diff --git a/docs/feature-tour/creating-your-feed.md b/docs/feature-tour/creating-your-feed.md index 1dbf1418..abe82ba1 100644 --- a/docs/feature-tour/creating-your-feed.md +++ b/docs/feature-tour/creating-your-feed.md @@ -38,20 +38,24 @@ If you have a multi-site Craft installation, you'll have an additional “Target ### Import Strategy -The Import Strategy tells Feed Me how to act when (or if) it comes across elements that are similar to what you're importing. If you've imported your content once, there will very likely be elements with the same title or content as what you're trying to import. +The **Import Strategy** tells Feed Me how to act when (or if) it comes across elements that are similar to what you’re importing. If you’ve imported your content once, there will very likely be elements with the same title or content as what you're trying to import. -For example - you have an existing entry called "About Us", but you also have an item in your feed with exactly the same title. You should tell Feed Me what to do when it comes to processing this entry in your feed. Do you want to update that same entry, or add a new one? +::: tip +The actual matching behavior is determined by a [unique identifier](field-mapping.md#unique-identifiers), which you’ll configure in a moment. +::: + +For example: you have an existing entry called “About Us,” but you also have an item in your feed with exactly the same title. You should tell Feed Me what to do when it comes to processing this entry in your feed. Do you want to update that same entry, or add a new one? You can select from any combination of the following: Attribute | Description --- | --- -`Create new elements` | Adds new elements if they do not already exist. If an element does exist, it simply skips over it, leaving it unchanged. -`Update existing elements` | Updates elements that match the Unique Identifier (next step). If no existing element to update, it won't create it unless you select `Create new elements`. -`Disable missing elements` | Disables elements that are not updated by this feed. -`Disable missing elements in the target site` | Disables elements that are not updated by this feed, but only in the feed’s [target site](#target-site). -`Delete missing elements` | Deletes elements that are not updated by this feed. **Be careful when deleting**. -`Update search indexes` | Whether search indexes should be updated. +**Create new elements** | Adds new elements if they do not already exist (as determined by a _unique identifier_). If an element _does_ exist, it will only be updated if **Update existing elements** is enabled. +**Update existing elements** | Updates elements that match the _unique identifier_. If no existing element matches, one will be only be created if **Create new elements** is also enabled. +**Disable missing elements** | Disables elements that are not updated by this feed. +**Disable missing elements in the target site** | Disables elements that are not updated by this feed, but only in the feed’s [target site](#target-site). +**Delete missing elements** | Deletes elements that are not updated by this feed. **Be careful when deleting**. +**Update search indexes** | Whether search indexes should be updated. ### Passkey @@ -61,7 +65,12 @@ A generated, unique string to increase security against imports being run inadve Enable a backup of your database to be taken on each import. Please note the [performance implications](../troubleshooting.md#performance) when switching this on. -* * * +### Set Empty Values -Click on the _Save & Continue_ button to be taken to the [Primary Element](primary-element.md) screen, or press _Save_ to continue editing this screen. +When enabled, empty values in a feed item are considered valid and will clear the corresponding fields when your [Import Strategy](#import-strategy) includes _update existing elements_. When disabled, empty values are ignored or treated as unchanged. + +Keys omitted from a feed item are not considered “empty” and will not clear values on existing entries. + +* * * +Click **Save & Continue** to be taken to the [Primary Element](primary-element.md) screen, or **Save** to continue making changes on this screen. diff --git a/docs/feature-tour/field-mapping.md b/docs/feature-tour/field-mapping.md index 887a36e3..169cf78c 100644 --- a/docs/feature-tour/field-mapping.md +++ b/docs/feature-tour/field-mapping.md @@ -1,33 +1,102 @@ # Field Mapping -Field Mapping provides an interface to match items in your feed to fields in Craft. Depending on the element you’ve selected to import into will determine what fields you have available to map against. +Now that you’ve told Feed Me where your data comes from, it’s time to define how individual items in the feed map to new or existing elements in Craft. + +While the specifics will vary widely depending on your content model (and the structure of the incoming data), the same pattern applies to most map configuration: + +1. Find the _target_ field in the **Field** column; +1. Choose a _source_ for that field’s data from the menu in its row’s **Feed Element** column; +1. Customize options for the type of data being imported; +1. (Optional) Set a static or dynamic [default value](#default-values); + +## Native Fields + +The native fields you have available to map against depend on the element type you’ve selected as the target for the import—for example, entries support a **Title**, **Slug**, **Parent**, **Post Date**, **Expiry Date**, **Status**, and **Author** in addition to the [custom fields](#custom-fields) attached via its field layout. + +::: tip +Native fields have similar options to [custom fields](#custom-fields), so we’ll only cover the novel ones, in this section. +::: ### Element IDs -You can map data in your feed to the Element ID, which is useful if you know for certain an element you want to update. This can be when updating for content in other locales, or bulk-updating existing items. +You can map data in your feed to the element ID, which is useful if you are certain which element you want a given feed item to update. This can be when updating for content in other locales, or bulk-updating existing items. ::: danger -Do not use this when importing new data. If you’re importing your content from another system (ExpressionEngine, WordPress, etc.), your new content will almost assuredly not have the same ID between systems. This is how Craft’s Elements work, and if you specify the wrong Element ID to update, you could be updating the wrong content altogether (an Asset when you meant to update an Entry). +Do not use this when importing “new” data! Content from another system (ExpressionEngine, WordPress, etc.) will _not_ have the same IDs as their corresponding elements in Craft, by virtue of how records are created in the database. If you specify the _wrong_ element ID (deliberately or coincidentally), you run the risk of updating completely unrelated content (i.e. an asset when you meant to update an entry). + +There are only two situations in which setting IDs is recommended: +- When re-importing data that was exported from Craft, then modified; +- Importing or synchronizing data from external systems that already track Craft element IDs; + +In most cases, incoming data should be matched based on a different [unique identifier](#unique-identifiers). ::: -### Unique Identifiers +## Custom Fields -It's important to select a Unique Identifier for your feed to assist with the Import Strategy you’ve chosen. When comparing against existing entries, it will compare the fields you select here with the data in your feed. Most commonly, this would be the Title for the element, but is also a good idea to be against a unique ID. +Like native fields, each custom field type’s configuration options depend on what kind of data it stores. -::: danger -Updating content based on a Unique Identifier will not work for content stored in Matrix and other nested, Matrix-like fields such as Super Table and Neo. +### Scalar Data + +Text, numbers, booleans, and other basic data types require no additional configuration. Color, dropdown, email, lightswitch, money, radio, and URL fields all use “scalar” values. + +### Dates + +Feed Me can parse [most date formats](https://www.php.net/manual/en/function.strtotime.php), but to handle cases where it may be ambiguous (i.e. `01-02-2023`), you can lock the mapping to a specific pattern. + +### Relational Fields + +When setting up related content through an assets, categories, entries, tags, or users field, you will be asked how Feed Me should locate the referenced element(s). + +For example, if you were importing a list of AKC winners that contained a `breed` property with values like `Dachshund` or `Greyhound`, you might tell Feed Me to look up existing _Breed_ entries by their **Title**, and to **Create entries if they do not exist**. The same holds true for other element types and their corresponding relational field types. + +#### Nested Fields + +When importing relational data, you have an opportunity to map values onto those elements’ fields, as well. Enable **Element fields (x)** to expand controls for those nested fields. + +::: warning +Keep in mind that nested field values will be applied uniformly to all relations. ::: -### Default Value +### Matrix + +See the [Importing into Matrix](../guides/importing-into-matrix.md) guide to learn more about this special field type. + +### Plugin Fields + +Feed Me comes with support for the following plugin-provided field types: -You can set a default value for any field, and depending on the field, this may be in the form of a text field or a select field. You can also provide a default value using shorthand Twig (if you enable `parseTwig` in your [Configuration](../get-started/configuration.md)), referring to other fields in the element you're importing. +Field Type | Developer +--- | --- +[Calendar Events](https://plugins.craftcms.com/calendar) | Solspace +[Commerce Products](https://plugins.craftcms.com/commerce) | Pixel & Tonic +[Commerce Variants](https://plugins.craftcms.com/commerce) | Pixel & Tonic +[Entries Subset](https://plugins.craftcms.com/entriessubset) | Nathaniel Hammond +[Google Maps](https://plugins.craftcms.com/google-maps) | Double Secret Agency +[Linkit](https://plugins.craftcms.com/linkit) | Pressed Digital +[Simplemap](https://plugins.craftcms.com/simplemap) | Ether Creative +[Super Table](https://plugins.craftcms.com/supertable) | Verbb +[Typed Link](https://plugins.craftcms.com/typedlinkfield) | Sebastian Lenz ::: tip -Make sure you select `Use default value` in the “Feed Element” dropdown, otherwise it won’t work! +Other fields that store simple text values (like [Redactor](https://plugins.craftcms.com/redactor)) will work automatically. ::: -![Feedme Mapping](../screenshots/feedme-mapping.png) +## Default Values -The screenshot above shows three columns. The first is for your Craft field, the second is a dropdown for selecting the node in your feed, and the third is for setting the default value. +When the source for a native or custom field is set to “Use default value,” you may provide a value in the third column that will supersede any default value defined by the field itself. If `parseTwig` is enabled in your [Configuration](../get-started/configuration.md), textual fields are treated as Twig “object templates,” and have access to other fields on the element you're importing: -You’ll notice the `Assets` field has a Plain Text row in slight grey below it. This represents a field on the element itself. +```txt +{title} was last imported on {{ now | date }} +``` + +## Unique Identifiers + +It's important to select a **unique identifier** for your feed to assist with the **Import Strategy** you’ve chosen. When comparing against existing entries, it will compare the fields you select here with the data in your feed. In addition to the element’s native fields (like title, slug, status, or ID), you may use custom field values for matching. + +::: warning +There are _some_ limitations to the matching engine, though—it will not work for content stored in Matrix and other nested, Matrix-like fields such as Super Table and Neo which can’t be easily or reliably serialized. +::: + +::: danger +If data that is used as part of a unique identifier is altered between imports by a user (or any other means—including a different import), Feed Me may not be able to match it again! When combined with the **Delete missing elements** [import strategy](creating-your-feed.md#import-strategy), this can result in inadvertent data loss. +::: diff --git a/docs/screenshots/feedme-logs.png b/docs/screenshots/feedme-logs.png index 49173410..818bf155 100644 Binary files a/docs/screenshots/feedme-logs.png and b/docs/screenshots/feedme-logs.png differ diff --git a/docs/screenshots/feedme-overview.png b/docs/screenshots/feedme-overview.png index 4541e3af..e895d589 100644 Binary files a/docs/screenshots/feedme-overview.png and b/docs/screenshots/feedme-overview.png differ diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index 41300cbe..3c84985a 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -21,14 +21,18 @@ For example, if you're mapping 20+ fields for an Entry import, but it isn't work ### Logging -Feed Me create a log event for just about everything it does, notably errors, but other useful information. If you're experiencing issues or unexpected results with a Feed, consult the Logs tab first. +Feed Me create a log event for just about everything it does, including errors and other status information. If you're experiencing issues or unexpected results with a Feed, consult the **Logs** tab first. ![The Logs tab](./screenshots/feedme-logs.png) ### Debugging -There is a special controller action to assist with debugging your feed, should you encounter issues, or errors during an import. The easiest way to get to this is clicking on the small 'bug' icon on the feeds index page (image below). The icon is placed in the Actions column on the far right, but only visible when [devMode](https://craftcms.com/docs/config-settings#devMode) is turned on. +Feed Me includes a special view to assist with debugging your feed, should you encounter issues or errors during an import. With [devMode](https://craftcms.com/docs/config-settings#devMode) enabled, click the “gear” in the problematic feed’s row to expand its utility drawer, then click **Debug**. ![Feedme Overview](./screenshots/feedme-overview.png) -The output from this page will be in raw format, providing you with as much information as possible about your feed settings, field-mappings and data. If there are code exceptions, they'll appear on this page. +Debug output will be a combination of [`print_r`](https://www.php.net/manual/en/function.print-r.php)-formatted objects and log messages, providing you with as much information as possible about your feed settings, field-mappings, and data. If exceptions occur while processing the feed, they’ll appear on this page, too. + +::: warning +Debugging a feed attempts to actually run the import, so make sure you have [backups](./feature-tour/creating-your-feed.md#backup) on, or are working in a disposable environment! +::: diff --git a/src/base/Field.php b/src/base/Field.php index dd494bf0..6aab418f 100644 --- a/src/base/Field.php +++ b/src/base/Field.php @@ -144,11 +144,12 @@ public function fetchValue(): mixed /** * @param $elementIds + * @param null $nodeKey * @throws Throwable * @throws ElementNotFoundException * @throws Exception */ - protected function populateElementFields($elementIds): void + protected function populateElementFields($elementIds, $nodeKey = null): void { $elementsService = Craft::$app->getElements(); $fields = Hash::get($this->fieldInfo, 'fields'); @@ -166,7 +167,7 @@ protected function populateElementFields($elementIds): void // Arrayed content doesn't provide defaults because it's unable to determine how many items it _should_ return // This also checks if there was any data that corresponds on the same array index/level as our element - $value = Hash::get($fieldValue, $key, $default); + $value = Hash::get($fieldValue, $nodeKey, $default); if ($value) { $fieldData[$elementId][$fieldHandle] = $value; @@ -193,4 +194,25 @@ protected function populateElementFields($elementIds): void Plugin::info('`{handle}` - Processed {name} [`#{id}`]({url}) sub-fields with content: `{content}`.', ['name' => $element::displayName(), 'id' => $elementId, 'url' => $element->cpEditUrl, 'handle' => $this->fieldHandle, 'content' => Json::encode($fieldContent)]); } } + + /** + * Get numerical node key from node name. + * E.g. if $nodeName is authors/1/author/name, the $nodeKey should be 1 + * + * @param $nodeName + * @return mixed|null + */ + protected function getArrayKeyFromNode($nodeName) + { + $nodeKey = null; + + if (!empty($nodeName)) { + preg_match('/\/(\d+)\//', $nodeName, $matches); + if (isset($matches[1])) { + $nodeKey = $matches[1]; + } + } + + return $nodeKey; + } } diff --git a/src/controllers/FeedsController.php b/src/controllers/FeedsController.php index 63f9c5c9..d57fd026 100644 --- a/src/controllers/FeedsController.php +++ b/src/controllers/FeedsController.php @@ -160,6 +160,17 @@ public function actionSaveFeed(): ?Response { $feed = $this->_getModelFromPost(); + if ($feed->getErrors()) { + $this->setFailFlash(Craft::t('feed-me', 'Couldn’t save the feed.')); + + // Send the category group back to the template + Craft::$app->getUrlManager()->setRouteParams([ + 'feed' => $feed, + ]); + + return null; + } + return $this->_saveAndRedirect($feed, 'feed-me/feeds/', true); } diff --git a/src/elements/CommerceProduct.php b/src/elements/CommerceProduct.php index 15c59d5a..246024e8 100644 --- a/src/elements/CommerceProduct.php +++ b/src/elements/CommerceProduct.php @@ -16,6 +16,8 @@ use craft\feedme\helpers\DataHelper; use craft\feedme\Plugin; use craft\feedme\services\Process; +use craft\fields\Matrix; +use craft\fields\Table; use craft\helpers\Json; use DateTime; use Exception; @@ -124,7 +126,7 @@ public function getQuery($settings, array $params = []): mixed ->typeId($settings['elementGroup'][ProductElement::class]) ->siteId(Hash::get($settings, 'siteId') ?: Craft::$app->getSites()->getPrimarySite()->id); Craft::configure($query, $params); - + return $query; } @@ -317,9 +319,9 @@ private function _parseVariants($event): void } } - $isMatrixField = (Hash::get($fieldInfo, 'field') === 'craft\fields\Matrix'); + $isNestedField = (in_array(Hash::get($fieldInfo, 'field'), [Matrix::class, Table::class])); - if ($isMatrixField) { + if ($isNestedField === true) { $complexFields[$variantIndex][$fieldHandle]['info'] = $fieldInfo; $complexFields[$variantIndex][$fieldHandle]['data'][$nodePath] = $value; continue; diff --git a/src/elements/User.php b/src/elements/User.php index 312201d4..47ff9e55 100644 --- a/src/elements/User.php +++ b/src/elements/User.php @@ -246,6 +246,15 @@ protected function parsePhotoId($feedData, $fieldInfo): mixed $upload = Hash::get($fieldInfo, 'options.upload'); $conflict = Hash::get($fieldInfo, 'options.conflict'); + // if the value in the feed is empty, return null or empty string depending on setEmptyValues setting + if (empty($value)) { + if ($this->feed->setEmptyValues) { + return ""; + } + + return null; + } + // Try to find an existing element $urlToUpload = null; diff --git a/src/fields/Assets.php b/src/fields/Assets.php index a7f0eefb..1ed27ea7 100644 --- a/src/fields/Assets.php +++ b/src/fields/Assets.php @@ -10,6 +10,7 @@ use craft\feedme\base\Field; use craft\feedme\base\FieldInterface; use craft\feedme\helpers\AssetHelper; +use craft\feedme\helpers\DataHelper; use craft\feedme\Plugin; use craft\fields\Assets as AssetsField; use craft\helpers\Db; @@ -63,6 +64,17 @@ public function parseField(): mixed $value = $this->fetchArrayValue(); $default = $this->fetchDefaultArrayValue(); + // if the mapped value is not set in the feed + if ($value === null) { + return null; + } + + // if value from the feed is empty and default is not set + // return an empty array; no point bothering further + if (empty($default) && DataHelper::isArrayValueEmpty($value)) { + return []; + } + $settings = Hash::get($this->field, 'settings'); $folders = Hash::get($this->field, 'settings.sources'); $limit = Hash::get($this->field, 'settings.limit'); @@ -72,6 +84,7 @@ public function parseField(): mixed $conflict = Hash::get($this->fieldInfo, 'options.conflict'); $fields = Hash::get($this->fieldInfo, 'fields'); $node = Hash::get($this->fieldInfo, 'node'); + $nodeKey = null; // Get folder id's for connecting $folderIds = $this->field->resolveDynamicPathToFolderId($this->element); @@ -100,10 +113,6 @@ public function parseField(): mixed $urlsToUpload = []; $base64ToUpload = []; - if (!$value) { - return $foundElements; - } - foreach ($value as $key => $dataValue) { // Prevent empty or blank values (string or array), which match all elements if (empty($dataValue) && empty($default)) { @@ -118,7 +127,7 @@ public function parseField(): mixed // special provision for falling back on default BaseRelationField value // https://github.com/craftcms/feed-me/issues/1195 - if (empty($dataValue)) { + if (trim($dataValue) === '') { $foundElements = $default; break; } @@ -175,6 +184,8 @@ public function parseField(): mixed Plugin::info('Skipping asset upload (already exists).'); } } + + $nodeKey = $this->getArrayKeyFromNode($node); } if ($upload) { @@ -196,7 +207,7 @@ public function parseField(): mixed // Check for any sub-fields for the element if ($fields) { - $this->populateElementFields($foundElements); + $this->populateElementFields($foundElements, $nodeKey); } $foundElements = array_unique($foundElements); diff --git a/src/fields/CalendarEvents.php b/src/fields/CalendarEvents.php index 078480ce..b7d0a7e1 100644 --- a/src/fields/CalendarEvents.php +++ b/src/fields/CalendarEvents.php @@ -6,6 +6,7 @@ use Craft; use craft\feedme\base\Field; use craft\feedme\base\FieldInterface; +use craft\feedme\helpers\DataHelper; use craft\feedme\Plugin; use craft\helpers\Json; use Solspace\Calendar\Elements\Event as EventElement; @@ -56,6 +57,17 @@ public function parseField(): mixed $value = $this->fetchArrayValue(); $default = $this->fetchDefaultArrayValue(); + // if the mapped value is not set in the feed + if ($value === null) { + return null; + } + + // if value from the feed is empty and default is not set + // return an empty array; no point bothering further + if (empty($default) && DataHelper::isArrayValueEmpty($value)) { + return []; + } + $sources = Hash::get($this->field, 'settings.sources'); $limit = Hash::get($this->field, 'settings.limit'); $targetSiteId = Hash::get($this->field, 'settings.targetSiteId'); @@ -76,10 +88,6 @@ public function parseField(): mixed $foundElements = []; - if (!$value) { - return $foundElements; - } - foreach ($value as $dataValue) { // Prevent empty or blank values (string or array), which match all elements if (empty($dataValue) && empty($default)) { @@ -94,7 +102,7 @@ public function parseField(): mixed // special provision for falling back on default BaseRelationField value // https://github.com/craftcms/feed-me/issues/1195 - if (empty($dataValue)) { + if (trim($dataValue) === '') { $foundElements = $default; break; } diff --git a/src/fields/Categories.php b/src/fields/Categories.php index c9ee3269..0cd7a61d 100644 --- a/src/fields/Categories.php +++ b/src/fields/Categories.php @@ -8,6 +8,7 @@ use craft\elements\Category as CategoryElement; use craft\feedme\base\Field; use craft\feedme\base\FieldInterface; +use craft\feedme\helpers\DataHelper; use craft\feedme\Plugin; use craft\fields\Categories as CategoriesField; use craft\helpers\Db; @@ -59,6 +60,17 @@ public function parseField(): mixed $value = $this->fetchArrayValue(); $default = $this->fetchDefaultArrayValue(); + // if the mapped value is not set in the feed + if ($value === null) { + return null; + } + + // if value from the feed is empty and default is not set + // return an empty array; no point bothering further + if (empty($default) && DataHelper::isArrayValueEmpty($value)) { + return []; + } + $source = Hash::get($this->field, 'settings.source'); $branchLimit = Hash::get($this->field, 'settings.branchLimit'); $targetSiteId = Hash::get($this->field, 'settings.targetSiteId'); @@ -67,6 +79,7 @@ public function parseField(): mixed $create = Hash::get($this->fieldInfo, 'options.create'); $fields = Hash::get($this->fieldInfo, 'fields'); $node = Hash::get($this->fieldInfo, 'node'); + $nodeKey = null; // Get source id's for connecting [, $groupUid] = explode(':', $source); @@ -74,10 +87,6 @@ public function parseField(): mixed $foundElements = []; - if (!$value) { - return $foundElements; - } - foreach ($value as $dataValue) { // Prevent empty or blank values (string or array), which match all elements if (empty($dataValue) && empty($default)) { @@ -92,7 +101,7 @@ public function parseField(): mixed // special provision for falling back on default BaseRelationField value // https://github.com/craftcms/feed-me/issues/1195 - if (empty($dataValue)) { + if (trim($dataValue) === '') { $foundElements = $default; break; } @@ -139,6 +148,8 @@ public function parseField(): mixed if ((count($ids) == 0) && $create && $match === 'title') { $foundElements[] = $this->_createElement($dataValue, $groupId); } + + $nodeKey = $this->getArrayKeyFromNode($node); } // Check for field limit - only return the specified amount @@ -148,7 +159,7 @@ public function parseField(): mixed // Check for any sub-fields for the element if ($fields) { - $this->populateElementFields($foundElements); + $this->populateElementFields($foundElements, $nodeKey); } $foundElements = array_unique($foundElements); diff --git a/src/fields/Checkboxes.php b/src/fields/Checkboxes.php index bce4df7f..4d55a8ee 100644 --- a/src/fields/Checkboxes.php +++ b/src/fields/Checkboxes.php @@ -48,6 +48,10 @@ public function parseField(): mixed $value = $this->fetchArrayValue(); $default = $this->fetchDefaultArrayValue(); + if ($value === null) { + return null; + } + $preppedData = []; $options = Hash::get($this->field, 'settings.options'); diff --git a/src/fields/CommerceProducts.php b/src/fields/CommerceProducts.php index 86a0c419..a4b4462a 100644 --- a/src/fields/CommerceProducts.php +++ b/src/fields/CommerceProducts.php @@ -8,6 +8,7 @@ use craft\commerce\fields\Products; use craft\feedme\base\Field; use craft\feedme\base\FieldInterface; +use craft\feedme\helpers\DataHelper; use craft\feedme\Plugin; use craft\helpers\Db; use craft\helpers\Json; @@ -58,6 +59,17 @@ public function parseField(): mixed $value = $this->fetchArrayValue(); $default = $this->fetchDefaultArrayValue(); + // if the mapped value is not set in the feed + if ($value === null) { + return null; + } + + // if value from the feed is empty and default is not set + // return an empty array; no point bothering further + if (empty($default) && DataHelper::isArrayValueEmpty($value)) { + return []; + } + $sources = Hash::get($this->field, 'settings.sources'); $limit = Hash::get($this->field, 'settings.limit'); $targetSiteId = Hash::get($this->field, 'settings.targetSiteId'); @@ -78,10 +90,6 @@ public function parseField(): mixed $foundElements = []; - if (!$value) { - return $foundElements; - } - foreach ($value as $dataValue) { // Prevent empty or blank values (string or array), which match all elements if (empty($dataValue) && empty($default)) { @@ -96,7 +104,7 @@ public function parseField(): mixed // special provision for falling back on default BaseRelationField value // https://github.com/craftcms/feed-me/issues/1195 - if (empty($dataValue)) { + if (trim($dataValue) === '') { $foundElements = $default; break; } diff --git a/src/fields/CommerceVariants.php b/src/fields/CommerceVariants.php index b9766e0a..87170a73 100644 --- a/src/fields/CommerceVariants.php +++ b/src/fields/CommerceVariants.php @@ -8,6 +8,7 @@ use craft\commerce\fields\Variants; use craft\feedme\base\Field; use craft\feedme\base\FieldInterface; +use craft\feedme\helpers\DataHelper; use craft\feedme\Plugin; use craft\helpers\Json; @@ -57,6 +58,17 @@ public function parseField(): mixed $value = $this->fetchArrayValue(); $default = $this->fetchDefaultArrayValue(); + // if the mapped value is not set in the feed + if ($value === null) { + return null; + } + + // if value from the feed is empty and default is not set + // return an empty array; no point bothering further + if (empty($default) && DataHelper::isArrayValueEmpty($value)) { + return []; + } + $sources = Hash::get($this->field, 'settings.sources'); $limit = Hash::get($this->field, 'settings.limit'); $targetSiteId = Hash::get($this->field, 'settings.targetSiteId'); @@ -77,10 +89,6 @@ public function parseField(): mixed $foundElements = []; - if (!$value) { - return $foundElements; - } - foreach ($value as $dataValue) { // Prevent empty or blank values (string or array), which match all elements if (empty($dataValue) && empty($default)) { @@ -95,7 +103,7 @@ public function parseField(): mixed // special provision for falling back on default BaseRelationField value // https://github.com/craftcms/feed-me/issues/1195 - if (empty($dataValue)) { + if (trim($dataValue) === '') { $foundElements = $default; break; } diff --git a/src/fields/Date.php b/src/fields/Date.php index b7c57d7e..547512f8 100644 --- a/src/fields/Date.php +++ b/src/fields/Date.php @@ -48,6 +48,10 @@ public function parseField(): mixed { $value = $this->fetchValue(); + if ($value === null) { + return null; + } + $formatting = Hash::get($this->fieldInfo, 'options.match'); $dateValue = DateHelper::parseString($value, $formatting); diff --git a/src/fields/DefaultField.php b/src/fields/DefaultField.php index 885e8862..aa15decb 100644 --- a/src/fields/DefaultField.php +++ b/src/fields/DefaultField.php @@ -46,6 +46,10 @@ public function parseField(): mixed { $value = $this->fetchValue(); + if ($value === null) { + return null; + } + // Default fields expect strings, if it's an array for an odd reason, serialise it if (is_array($value)) { if (empty($value)) { diff --git a/src/fields/DigitalProducts.php b/src/fields/DigitalProducts.php index a7d0a234..395ac72c 100644 --- a/src/fields/DigitalProducts.php +++ b/src/fields/DigitalProducts.php @@ -7,6 +7,7 @@ use craft\digitalproducts\elements\Product as ProductElement; use craft\feedme\base\Field; use craft\feedme\base\FieldInterface; +use craft\feedme\helpers\DataHelper; use craft\feedme\Plugin; use craft\helpers\Json; @@ -58,6 +59,17 @@ public function parseField(): mixed $value = $this->fetchArrayValue(); $default = $this->fetchDefaultArrayValue(); + // if the mapped value is not set in the feed + if ($value === null) { + return null; + } + + // if value from the feed is empty and default is not set + // return an empty array; no point bothering further + if (empty($default) && DataHelper::isArrayValueEmpty($value)) { + return []; + } + $sources = Hash::get($this->field, 'settings.sources'); $limit = Hash::get($this->field, 'settings.limit'); $targetSiteId = Hash::get($this->field, 'settings.targetSiteId'); @@ -78,10 +90,6 @@ public function parseField(): mixed $foundElements = []; - if (!$value) { - return $foundElements; - } - foreach ($value as $dataValue) { // Prevent empty or blank values (string or array), which match all elements if (empty($dataValue) && empty($default)) { @@ -96,7 +104,7 @@ public function parseField(): mixed // special provision for falling back on default BaseRelationField value // https://github.com/craftcms/feed-me/issues/1195 - if (empty($dataValue)) { + if (trim($dataValue) === '') { $foundElements = $default; break; } diff --git a/src/fields/Dropdown.php b/src/fields/Dropdown.php index 01822945..9aa4645e 100644 --- a/src/fields/Dropdown.php +++ b/src/fields/Dropdown.php @@ -48,15 +48,29 @@ public function parseField(): mixed { $value = $this->fetchValue(); + if ($value === null) { + return null; + } + + $value = (string) $value; + $default = Hash::get($this->fieldInfo, 'default'); + $options = Hash::get($this->field, 'settings.options'); $match = Hash::get($this->fieldInfo, 'options.match', 'value'); foreach ($options as $option) { - if (isset($option['value']) && $value === $option[$match]) { + if ( + (isset($option['value']) && $value === $option[$match]) || + ($match === 'label' && $value === $default && $value === $option['value']) + ) { return $option['value']; } } + if (empty($value)) { + return $value; + } + return null; } diff --git a/src/fields/Entries.php b/src/fields/Entries.php index 8a8a5221..cf765d1c 100644 --- a/src/fields/Entries.php +++ b/src/fields/Entries.php @@ -9,6 +9,7 @@ use craft\errors\ElementNotFoundException; use craft\feedme\base\Field; use craft\feedme\base\FieldInterface; +use craft\feedme\helpers\DataHelper; use craft\feedme\Plugin; use craft\fields\Entries as EntriesField; use craft\helpers\Db; @@ -62,6 +63,17 @@ public function parseField(): mixed $value = $this->fetchArrayValue(); $default = $this->fetchDefaultArrayValue(); + // if the mapped value is not set in the feed + if ($value === null) { + return null; + } + + // if value from the feed is empty and default is not set + // return an empty array; no point bothering further + if (empty($default) && DataHelper::isArrayValueEmpty($value)) { + return []; + } + $sources = Hash::get($this->field, 'settings.sources'); $limit = Hash::get($this->field, 'settings.limit'); $targetSiteId = Hash::get($this->field, 'settings.targetSiteId'); @@ -70,6 +82,7 @@ public function parseField(): mixed $create = Hash::get($this->fieldInfo, 'options.create'); $fields = Hash::get($this->fieldInfo, 'fields'); $node = Hash::get($this->fieldInfo, 'node'); + $nodeKey = null; $sectionIds = []; @@ -91,10 +104,6 @@ public function parseField(): mixed $foundElements = []; - if (!$value) { - return $foundElements; - } - foreach ($value as $dataValue) { // Prevent empty or blank values (string or array), which match all elements if (empty($dataValue) && empty($default)) { @@ -109,7 +118,7 @@ public function parseField(): mixed // special provision for falling back on default BaseRelationField value // https://github.com/craftcms/feed-me/issues/1195 - if (empty($dataValue)) { + if (trim($dataValue) === '') { $foundElements = $default; break; } @@ -156,6 +165,8 @@ public function parseField(): mixed if ((count($ids) == 0) && $create && $match === 'title') { $foundElements[] = $this->_createElement($dataValue); } + + $nodeKey = $this->getArrayKeyFromNode($node); } // Check for field limit - only return the specified amount @@ -165,7 +176,7 @@ public function parseField(): mixed // Check for any sub-fields for the element if ($fields) { - $this->populateElementFields($foundElements); + $this->populateElementFields($foundElements, $nodeKey); } $foundElements = array_unique($foundElements); diff --git a/src/fields/GoogleMaps.php b/src/fields/GoogleMaps.php index 4c957e07..1a87095b 100644 --- a/src/fields/GoogleMaps.php +++ b/src/fields/GoogleMaps.php @@ -75,7 +75,10 @@ public function parseField(): mixed } foreach ($fields as $subFieldHandle => $subFieldInfo) { - $preppedData[$subFieldHandle] = DataHelper::fetchValue($this->feedData, $subFieldInfo, $this->feed); + $value = DataHelper::fetchValue($this->feedData, $subFieldInfo, $this->feed); + if ($value !== null) { + $preppedData[$subFieldHandle] = $value; + } } // Protect against sending an empty array diff --git a/src/fields/Lightswitch.php b/src/fields/Lightswitch.php index a137b016..ca00af98 100644 --- a/src/fields/Lightswitch.php +++ b/src/fields/Lightswitch.php @@ -47,6 +47,10 @@ public function parseField(): mixed { $value = $this->fetchValue(); + if ($value === null) { + return null; + } + return $this->parseValue($value); } diff --git a/src/fields/Linkit.php b/src/fields/Linkit.php index 6974b687..5c5ebc64 100644 --- a/src/fields/Linkit.php +++ b/src/fields/Linkit.php @@ -58,6 +58,14 @@ public function parseField(): mixed $preppedData[$subFieldHandle] = DataHelper::fetchValue($this->feedData, $subFieldInfo, $this->feed); } + if (empty( + array_filter($preppedData, function($val) { + return $val !== null; + }) + )) { + return null; + } + if ($preppedData) { // Handle Link Type $preppedData['type'] = empty($preppedData['type'] ?? '') ? 'presseddigital\linkit\models\Url' : $preppedData['type']; diff --git a/src/fields/Matrix.php b/src/fields/Matrix.php index 597ab942..d148c4cd 100644 --- a/src/fields/Matrix.php +++ b/src/fields/Matrix.php @@ -5,6 +5,7 @@ use Cake\Utility\Hash; use craft\feedme\base\Field; use craft\feedme\base\FieldInterface; +use craft\feedme\helpers\DataHelper; use craft\feedme\Plugin; use craft\fields\Matrix as MatrixField; @@ -62,6 +63,7 @@ public function parseField(): mixed foreach ($this->feedData as $nodePath => $value) { // Get the field mapping info for this node in the feed $fieldInfo = $this->_getFieldMappingInfoForNodePath($nodePath, $blocks); + $nodePathSegments = explode('/', $nodePath); // If this is data concerning our Matrix field and blocks if ($fieldInfo) { @@ -70,20 +72,7 @@ public function parseField(): mixed $subFieldInfo = $fieldInfo['subFieldInfo']; $isComplexField = $fieldInfo['isComplexField']; - $nodePathSegments = explode('/', $nodePath); - $blockIndex = Hash::get($nodePathSegments, 1); - - if (!is_numeric($blockIndex)) { - // Try to check if its only one-level deep (only importing one block type) - // which is particularly common for JSON. - $blockIndex = Hash::get($nodePathSegments, 2); - - if (!is_numeric($blockIndex)) { - $blockIndex = 0; - } - } - - $key = $blockIndex . '.' . $blockHandle . '.' . $subFieldHandle; + $key = $this->_getBlockKey($nodePathSegments, $blockHandle, $subFieldHandle); // Check for complex fields (think Table, Super Table, etc), essentially anything that has // sub-fields, and doesn't have data directly mapped to the field itself. It needs to be @@ -109,6 +98,18 @@ public function parseField(): mixed $fieldData[$key] = $parsedValue; } } + + foreach ($blocks as $blockHandle => $fields) { + foreach ($fields['fields'] as $fieldHandle => $fieldInfo) { + $node = Hash::get($fieldInfo, 'node'); + if ($node === 'usedefault') { + $key = $this->_getBlockKey($nodePathSegments, $blockHandle, $fieldHandle); + + $parsedValue = DataHelper::fetchSimpleValue($this->feedData, $fieldInfo); + $fieldData[$key] = $parsedValue; + } + } + } } // Handle some complex fields that don't directly have nodes, but instead have nested properties mapped. @@ -124,10 +125,12 @@ public function parseField(): mixed $parsedValue = $this->_parseSubField($nodePaths, $subFieldHandle, $subFieldInfo); - if (isset($fieldData[$key])) { - $fieldData[$key] = array_merge_recursive($fieldData[$key], $parsedValue); - } else { - $fieldData[$key] = $parsedValue; + if ($parsedValue !== null) { + if (isset($fieldData[$key])) { + $fieldData[$key] = array_merge_recursive($fieldData[$key], $parsedValue); + } else { + $fieldData[$key] = $parsedValue; + } } } @@ -145,22 +148,33 @@ public function parseField(): mixed $subFieldHandle = $handles[2]; $disabled = Hash::get($this->fieldInfo, 'blocks.' . $blockHandle . '.disabled', false); - $collapsed = Hash::get($this->fieldInfo, 'blocks.' . $blockHandle . '.collapsed', false); // Prepare an array that's ready for Matrix to import it $preppedData[$blockIndex . '.type'] = $blockHandle; $preppedData[$blockIndex . '.enabled'] = !$disabled; - $preppedData[$blockIndex . '.collapsed'] = $collapsed; $preppedData[$blockIndex . '.fields.' . $subFieldHandle] = $value; } + // if there's nothing in the prepped data, return null, as if mapping doesn't exist + if (empty($preppedData)) { + return null; + } + $expanded = Hash::expand($preppedData); // Although it seems to work with block handles in keys, it's better to keep things clean $index = 1; $resultBlocks = []; foreach ($expanded as $blockData) { - $resultBlocks['new' . $index++] = $blockData; + // all the fields are empty and setEmptyValues is off, ignore the block + if ( + !empty(array_filter( + $blockData['fields'], + fn($value) => (is_string($value) && !empty($value)) || (is_array($value) && !empty(array_filter($value))) + )) + ) { + $resultBlocks['new' . $index++] = $blockData; + } } return $resultBlocks; @@ -170,10 +184,35 @@ public function parseField(): mixed // Private Methods // ========================================================================= + /** + * Get block's key + * + * @param array $nodePathSegments + * @param string $blockHandle + * @param string $fieldHandle + * @return string + */ + private function _getBlockKey(array $nodePathSegments, string $blockHandle, string $fieldHandle): string + { + $blockIndex = Hash::get($nodePathSegments, 1); + + if (!is_numeric($blockIndex)) { + // Try to check if its only one-level deep (only importing one block type) + // which is particularly common for JSON. + $blockIndex = Hash::get($nodePathSegments, 2); + + if (!is_numeric($blockIndex)) { + $blockIndex = 0; + } + } + + return $blockIndex . '.' . $blockHandle . '.' . $fieldHandle; + } + /** * @param $nodePath * @param $blocks - * @return array|null + * @return array|null|string */ private function _getFieldMappingInfoForNodePath($nodePath, $blocks): ?array { @@ -202,7 +241,7 @@ private function _getFieldMappingInfoForNodePath($nodePath, $blocks): ?array } } - if ($feedPath == $node || $node === 'usedefault') { + if ($feedPath == $node) { return [ 'blockHandle' => $blockHandle, 'subFieldHandle' => $subFieldHandle, diff --git a/src/fields/MultiSelect.php b/src/fields/MultiSelect.php index 2047b4f3..06f40a59 100644 --- a/src/fields/MultiSelect.php +++ b/src/fields/MultiSelect.php @@ -48,6 +48,10 @@ public function parseField(): mixed $value = $this->fetchArrayValue(); $default = $this->fetchDefaultArrayValue(); + if ($value === null) { + return null; + } + $preppedData = []; $options = Hash::get($this->field, 'settings.options'); diff --git a/src/fields/Number.php b/src/fields/Number.php index 05670b20..10a9e36f 100644 --- a/src/fields/Number.php +++ b/src/fields/Number.php @@ -47,6 +47,10 @@ public function parseField(): mixed { $value = $this->fetchValue(); + if ($value === null) { + return null; + } + return $this->parseValue($value); } diff --git a/src/fields/RadioButtons.php b/src/fields/RadioButtons.php index daf13382..c88bb3b9 100644 --- a/src/fields/RadioButtons.php +++ b/src/fields/RadioButtons.php @@ -48,16 +48,24 @@ public function getMappingTemplate(): string public function parseField(): mixed { $value = $this->fetchValue(); + $default = Hash::get($this->fieldInfo, 'default'); $options = Hash::get($this->field, 'settings.options'); $match = Hash::get($this->fieldInfo, 'options.match', 'value'); foreach ($options as $option) { - if ($value === $option[$match]) { + if ( + (isset($option['value']) && $value === $option[$match]) || + ($match === 'label' && $value === $default && $value === $option['value']) + ) { return $option['value']; } } + if (empty($value)) { + return $value; + } + return null; } } diff --git a/src/fields/SmartMap.php b/src/fields/SmartMap.php index 9ac7b0cf..7ade76b1 100644 --- a/src/fields/SmartMap.php +++ b/src/fields/SmartMap.php @@ -54,7 +54,10 @@ public function parseField(): mixed } foreach ($fields as $subFieldHandle => $subFieldInfo) { - $preppedData[$subFieldHandle] = DataHelper::fetchValue($this->feedData, $subFieldInfo, $this->feed); + $value = DataHelper::fetchValue($this->feedData, $subFieldInfo, $this->feed); + if ($value !== null) { + $preppedData[$subFieldHandle] = $value; + } } // Protect against sending an empty array diff --git a/src/fields/SuperTable.php b/src/fields/SuperTable.php index e005fe1f..28093748 100644 --- a/src/fields/SuperTable.php +++ b/src/fields/SuperTable.php @@ -132,6 +132,9 @@ public function parseField(): mixed $order = 0; + // check if all values in fieldData are empty strings + $allEmpty = true; + // New, we've got a collection of prepared data, but its formatted a little rough, due to catering for // sub-field data that could be arrays or single values. Let's build our Matrix-ready data foreach ($fieldData as $blockSubFieldHandle => $value) { @@ -145,9 +148,23 @@ public function parseField(): mixed $preppedData[$blockIndex . '.enabled'] = true; $preppedData[$blockIndex . '.fields.' . $subFieldHandle] = $value; + if ((is_string($value) && !empty($value)) || (is_array($value) && !empty(array_filter($value)))) { + $allEmpty = false; + } + $order++; } + // if there's nothing in the prepped data, return null, as if mapping doesn't exist + if (empty($preppedData)) { + return null; + } + + // if everything in the $preppedData[][fields] is empty - return empty array + if ($allEmpty === true) { + return []; + } + return Hash::expand($preppedData); } diff --git a/src/fields/Tags.php b/src/fields/Tags.php index 13816fc7..67f82ef6 100644 --- a/src/fields/Tags.php +++ b/src/fields/Tags.php @@ -9,6 +9,7 @@ use craft\errors\ElementNotFoundException; use craft\feedme\base\Field; use craft\feedme\base\FieldInterface; +use craft\feedme\helpers\DataHelper; use craft\feedme\Plugin; use craft\fields\Tags as TagsField; use craft\helpers\Db; @@ -63,6 +64,17 @@ public function parseField(): mixed $value = $this->fetchArrayValue(); $default = $this->fetchDefaultArrayValue(); + // if the mapped value is not set in the feed + if ($value === null) { + return null; + } + + // if value from the feed is empty and default is not set + // return an empty array; no point bothering further + if (empty($default) && DataHelper::isArrayValueEmpty($value)) { + return []; + } + $source = Hash::get($this->field, 'settings.source'); $limit = Hash::get($this->field, 'settings.limit'); $targetSiteId = Hash::get($this->field, 'settings.targetSiteId'); @@ -71,6 +83,7 @@ public function parseField(): mixed $create = Hash::get($this->fieldInfo, 'options.create'); $fields = Hash::get($this->fieldInfo, 'fields'); $node = Hash::get($this->fieldInfo, 'node'); + $nodeKey = null; // Get tag group id [, $groupUid] = explode(':', $source); @@ -78,10 +91,6 @@ public function parseField(): mixed $foundElements = []; - if (!$value) { - return $foundElements; - } - foreach ($value as $dataValue) { // Prevent empty or blank values (string or array), which match all elements if (empty($dataValue) && empty($default)) { @@ -96,7 +105,7 @@ public function parseField(): mixed // special provision for falling back on default BaseRelationField value // https://github.com/craftcms/feed-me/issues/1195 - if (empty($dataValue)) { + if (trim($dataValue) === '') { $foundElements = $default; break; } @@ -143,6 +152,8 @@ public function parseField(): mixed if ((count($ids) == 0) && $create && $match === 'title') { $foundElements[] = $this->_createElement($dataValue, $groupId); } + + $nodeKey = $this->getArrayKeyFromNode($node); } // Check for field limit - only return the specified amount @@ -152,7 +163,7 @@ public function parseField(): mixed // Check for any sub-fields for the element if ($fields) { - $this->populateElementFields($foundElements); + $this->populateElementFields($foundElements, $nodeKey); } $foundElements = array_unique($foundElements); diff --git a/src/fields/TypedLink.php b/src/fields/TypedLink.php index 1ec9e19b..989abc95 100644 --- a/src/fields/TypedLink.php +++ b/src/fields/TypedLink.php @@ -57,6 +57,14 @@ public function parseField(): mixed $preppedData[$subFieldHandle] = DataHelper::fetchValue($this->feedData, $subFieldInfo, $this->feed); } + if (empty( + array_filter($preppedData, function($val) { + return $val !== null; + }) + )) { + return null; + } + // Protect against sending an empty array if (!$preppedData) { return null; diff --git a/src/fields/Users.php b/src/fields/Users.php index 606cf657..c26e6999 100644 --- a/src/fields/Users.php +++ b/src/fields/Users.php @@ -9,6 +9,7 @@ use craft\errors\ElementNotFoundException; use craft\feedme\base\Field; use craft\feedme\base\FieldInterface; +use craft\feedme\helpers\DataHelper; use craft\feedme\Plugin; use craft\fields\Users as UsersField; use craft\helpers\Db; @@ -63,12 +64,24 @@ public function parseField(): mixed $value = $this->fetchArrayValue(); $default = $this->fetchDefaultArrayValue(); + // if the mapped value is not set in the feed + if ($value === null) { + return null; + } + + // if value from the feed is empty and default is not set + // return an empty array; no point bothering further + if (empty($default) && DataHelper::isArrayValueEmpty($value)) { + return []; + } + $sources = Hash::get($this->field, 'settings.sources'); $limit = Hash::get($this->field, 'settings.limit'); $match = Hash::get($this->fieldInfo, 'options.match', 'email'); $create = Hash::get($this->fieldInfo, 'options.create'); $fields = Hash::get($this->fieldInfo, 'fields'); $node = Hash::get($this->fieldInfo, 'node'); + $nodeKey = null; // Get source id's for connecting $groupIds = []; @@ -84,10 +97,6 @@ public function parseField(): mixed $foundElements = []; - if (!$value) { - return $foundElements; - } - foreach ($value as $dataValue) { // Prevent empty or blank values (string or array), which match all elements if (empty($dataValue) && empty($default)) { @@ -102,7 +111,7 @@ public function parseField(): mixed // special provision for falling back on default BaseRelationField value // https://github.com/craftcms/feed-me/issues/1195 - if (empty($dataValue)) { + if (trim($dataValue) === '') { $foundElements = $default; break; } @@ -137,6 +146,8 @@ public function parseField(): mixed if ((count($ids) == 0) && $create && $match === 'email') { $foundElements[] = $this->_createElement($dataValue, $groupIds); } + + $nodeKey = $this->getArrayKeyFromNode($node); } // Check for field limit - only return the specified amount @@ -146,7 +157,7 @@ public function parseField(): mixed // Check for any sub-fields for the element if ($fields) { - $this->populateElementFields($foundElements); + $this->populateElementFields($foundElements, $nodeKey); } $foundElements = array_unique($foundElements); diff --git a/src/helpers/DataHelper.php b/src/helpers/DataHelper.php index 3c689884..1359aaf9 100644 --- a/src/helpers/DataHelper.php +++ b/src/helpers/DataHelper.php @@ -18,6 +18,17 @@ class DataHelper // Public Methods // ========================================================================= + /** + * Check if provided value is not set or empty or an array of empties + * + * @param $value + * @return bool + */ + public static function isArrayValueEmpty($value) + { + return (!$value || (is_array($value) && empty(array_filter($value)))); + } + /** * @param $feedData * @param $fieldInfo @@ -51,7 +62,7 @@ public static function fetchSimpleValue($feedData, $fieldInfo): mixed */ public static function fetchArrayValue($feedData, $fieldInfo): mixed { - $value = []; + $value = null; $node = Hash::get($fieldInfo, 'node'); @@ -126,7 +137,7 @@ public static function fetchValue($feedData, $fieldInfo, $feed = null): mixed $feed = $feed->toArray(); } - $value = []; + $value = null; $node = Hash::get($fieldInfo, 'node'); $default = Hash::get($fieldInfo, 'default'); @@ -162,6 +173,10 @@ public static function fetchValue($feedData, $fieldInfo, $feed = null): mixed } } + if ($value === null) { + return null; + } + // Help to normalise things if an array with only one item. Probably a better idea to offload this to each // attribute of field definition, as it's quite an assumption at this point... if (count($value) === 1) { @@ -178,11 +193,6 @@ public static function fetchValue($feedData, $fieldInfo, $feed = null): mixed return $value; } - // If setEmptyValues is enabled allow overwriting existing data - if ($value === "" && $feed['setEmptyValues']) { - return $value; - } - // We want to preserve 0 and '0', but if it's empty, return null. // https://github.com/craftcms/feed-me/issues/779 if (!is_numeric($value) && empty($value)) { diff --git a/src/services/Process.php b/src/services/Process.php index 22ef49c5..3ca6205d 100644 --- a/src/services/Process.php +++ b/src/services/Process.php @@ -394,12 +394,10 @@ public function processFeed($step, $feed, &$processedElementIds, $feedData = nul if (Hash::get($fieldInfo, 'field')) { $fieldValue = Plugin::$plugin->fields->parseField($feed, $element, $feedData, $fieldHandle, $fieldInfo); - if ($feed['setEmptyValues'] === 1 && $fieldValue === null) { - $fieldData[$fieldHandle] = ""; - } - if ($fieldValue !== null) { - $fieldData[$fieldHandle] = $fieldValue; + if ($feed['setEmptyValues'] === 1 || ($feed['setEmptyValues'] === 0 && !empty($fieldValue))) { + $fieldData[$fieldHandle] = $fieldValue; + } } } } diff --git a/src/templates/_includes/fields/matrix.html b/src/templates/_includes/fields/matrix.html index c08e06c8..f22d319b 100644 --- a/src/templates/_includes/fields/matrix.html +++ b/src/templates/_includes/fields/matrix.html @@ -35,7 +35,6 @@ {% set blockPath = [ handle, 'blocks', blocktype.handle ] %} {% set disabled = hash_get(feed.fieldMapping, blockPath|join('.') ~ '.disabled') ?: '' %} - {% set collapsed = hash_get(feed.fieldMapping, blockPath|join('.') ~ '.collapsed') ?: '' %} {% namespace 'fieldMapping[' ~ blockPath|join('][') ~ ']' %} {{ feedMeMacro.checkbox({ @@ -44,13 +43,6 @@ value: 1, checked: disabled, }) }} - - {{ feedMeMacro.checkbox({ - label: 'Collapsed'|t('feed-me'), - name: 'collapsed', - value: 1, - checked: collapsed, - }) }} {% endnamespace %} diff --git a/src/templates/feeds/index.html b/src/templates/feeds/index.html index e71f1490..6a9e2fac 100644 --- a/src/templates/feeds/index.html +++ b/src/templates/feeds/index.html @@ -82,7 +82,7 @@
-
+
{% if craft.app.config.general.devMode %} {% set debugUrl = actionUrl('feed-me/feeds/debug', { feedId: feed.id }) %} diff --git a/src/web/assets/feedme/dist/css/FeedMe.css b/src/web/assets/feedme/dist/css/FeedMe.css index 19ef4e5b..f3f2b425 100644 --- a/src/web/assets/feedme/dist/css/FeedMe.css +++ b/src/web/assets/feedme/dist/css/FeedMe.css @@ -7,5 +7,5 @@ */@font-face{font-family:Font Awesome\ 5 Pro;font-style:normal;font-weight:400;src:url(../fonts/fa-regular-400.eot);src:url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.woff) format("woff"),url(../fonts/fa-regular-400.ttf) format("truetype"),url(../fonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}/*! * Font Awesome Pro 5.0.9 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license (Commercial License) - */@font-face{font-family:Font Awesome\ 5 Pro;font-style:normal;font-weight:900;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:Font Awesome\ 5 Pro}.fa,.fas{font-weight:900}body.ltr .table-feed-me .thin.action{padding-left:10px}.table-feed-me .thin.action .icon{color:rgba(0,0,0,.2)}.table-feed-me .thin.action .icon:hover{color:#0d78f2}.table-feed-me .element-group-sub{color:rgba(51,63,77,.5);display:block;font-size:11px;font-weight:700;line-height:1.2}.table-feed-me .index-url{color:#8f98a3;display:block;font-size:12px;font-weight:400;margin-top:5px}.table-feed-me .settings-pane{display:none;padding:0}.table-feed-me .settings-pane-wrap{background:#f6f7f8;box-shadow:0 0 0 1px #e4e6e8;font-size:12px;line-height:1.4;padding:15px}.table-feed-me .settings-pane .fa,.table-feed-me .settings-pane .icon{color:rgba(0,0,0,.2);margin-right:3px}.table-feed-me .settings-pane .fa:hover,.table-feed-me .settings-pane .icon:hover{color:rgba(0,0,0,.2)}#feeds .settings-pane .btn-group{display:-webkit-inline-flex;display:inline-flex}#feeds .settings-pane .btn-group .btn{height:auto}#feeds .settings-pane .input input{font-size:12px}.feedme-mapping{font-size:13px}.feedme-mapping th:first-child{width:25%}.feedme-mapping th:nth-child(2){width:40%}.feedme-mapping th:nth-child(3){width:25%}.feedme-mapping td.col-field .field.instructions{line-height:18px}.feedme-mapping td.col-map .field .heading{font-size:11px}.feedme-mapping td.col-map .field{margin:5px 0}.feedme-mapping td.col-field .field>.heading{font-size:12px;margin-bottom:0}.feedme-mapping td{vertical-align:top}.feedme-mapping .select{background-image:-o-linear-gradient(#fff,#fafafa);background-image:linear-gradient(#fff,#fafafa);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.025),0 1px 1px rgba(0,0,0,.1);display:inline-block;height:32px;position:relative}.feedme-mapping .select:after{speak:none;-webkit-font-feature-settings:"liga","dlig";font-feature-settings:"liga","dlig";word-wrap:normal!important;content:"downangle";direction:ltr;display:inline-block;font-family:Craft;font-size:10px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;pointer-events:none;position:absolute;text-align:center;text-rendering:optimizeLegibility;text-transform:none;top:calc(50% - 5px);-webkit-user-select:none;user-select:none;vertical-align:middle;z-index:1}body.ltr .feedme-mapping .select:after{right:9px}body.rtl .feedme-mapping .select:after{left:9px}.feedme-mapping .select.selectize select{opacity:0}.feedme-mapping .selectize.select .selectize-control{background:none;box-shadow:none;max-width:100%}.feedme-mapping .selectize.select .selectize-control:after{display:none}.feedme-mapping .selectize.select .selectize-control .selectize-input{background:none;box-shadow:none;font-size:13px}.feedme-mapping .selectize-input input{position:relative!important}.feedme-mapping .selectize-dropdown .optgroup-header,.feedme-mapping .selectize-dropdown [data-selectable]{font-size:12px;padding:3px 10px}.feedme-mapping .selectize-dropdown-content{max-height:600px}.feedme-mapping .selectize-input div[data-value=noimport]{color:#b9bfc6}.feedme-mapping .field-extra-settings{font-size:11px}.feedme-mapping .field-extra-settings .select{height:22px}.feedme-mapping .field-extra-settings .select select{font-size:11px;line-height:13px;padding:3px 22px 5px 8px!important}.feedme-mapping .field-extra-settings .assets-uploads .asset-label-hide{visibility:hidden}.feedme-mapping .field-extra-settings .assets-uploads .checkboxfield{float:left;margin-bottom:3px;margin-right:10px;padding-top:0;z-index:1}.feedme-mapping .field-extra-settings .assets-uploads .select{height:auto;opacity:0;visibility:hidden}.feedme-mapping .field-extra-settings .assets-create .heading label{color:#29323d;float:left;font-weight:400;margin-right:10px}.feedme-mapping .field-extra-settings .element-match span{float:left;margin-bottom:0;margin-right:10px;z-index:1}.feedme-mapping .field-extra-settings .element-create{margin-top:5px}.feedme-mapping .field-extra-settings .element-groups{display:-webkit-inline-flex;display:inline-flex;display:none;margin-top:5px}.feedme-mapping .field-extra-settings .element-group{-webkit-align-items:center;align-items:center;display:-webkit-inline-flex;display:inline-flex;margin-right:10px}.feedme-mapping .field-extra-settings .element-group span{margin:4px 5px 0 0}.feedme-mapping .element-sub-field{display:none}.feedme-mapping .element-sub-field td{background:#fafafa}.feedme-mapping .element-sub-field .col-field{padding-left:30px}.feedme-mapping .element-sub-field .col-default{padding-right:30px}.feedme-mapping .element-sub-field td.col-field .field>.heading{font-size:11px;margin-bottom:0}.feedme-mapping .element-sub-field td.col-field .field>.heading>.instructions{margin-top:-2px}.feedme-mapping .element-sub-field .fa-level-up{color:#cacaca;display:block;float:left;height:100%;margin-left:-18px;margin-top:3px;-webkit-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.subelement-toggle .field{display:-webkit-flex;display:flex;-webkit-flex-direction:row-reverse;flex-direction:row-reverse;-webkit-justify-content:flex-end;justify-content:flex-end;padding-top:8px;text-align:left}.subelement-toggle .field .lightswitch.small{height:16px;margin-bottom:-4px;width:25px}.subelement-toggle .field .lightswitch.small .label{height:16px}.subelement-toggle .field .lightswitch.small .handle{height:14px;margin:1px -8px;width:14px}.subelement-toggle .field>.heading>label{color:#8f98a3;cursor:pointer;font-weight:400;margin-left:8px}.feedme-mapping .complex-field td{background:#fafafa}.feedme-mapping .complex-field .col-field{padding-left:13px}.feedme-mapping .complex-field .col-field .field>.heading{font-size:11px}.feedme-mapping .complex-field .col-field .field>.heading>.instructions{line-height:12px;margin-top:0}.feedme-mapping .complex-field td.col-map .field{margin-bottom:0}.feedme-mapping .complex-field .col-default{padding-right:13px}.feedme-mapping .complex-field-header td{background:#f0f0f0}.feedme-mapping .complex-field-header+.complex-field-header{display:none}.feedme-mapping .complex-field-header .col-field{padding-left:13px}.feedme-mapping .complex-field-header .col-field .field>.heading{font-size:14px}.feedme-mapping .complex-field-header .field-extra-settings .checkboxfield{display:inline-block;margin-right:10px}.additional-mapping-fields{display:none}.feed-me-logs-table{font-size:13px;table-layout:fixed}.feed-me-logs-table th:first-child{width:50px}.feed-me-logs-table th:nth-child(3){width:140px}.feed-me-logs-table .col-label code{background:#f3f4f6;border:1px solid #e5e8ea;border-radius:2px;font-size:80%!important;padding:3px}.log-result{background:#fff;background:#a4adb6;border-radius:3px;color:#fff!important;display:inline-block;font-size:12px;font-variant:small-caps;font-weight:300;margin-right:5px;padding:0 4px}.log-result.type-error{background:#d0021b}.log-detail-link{float:right;font-size:80%}.log-type-form,.log-type-form .field{display:-webkit-inline-flex;display:inline-flex}.log-type-form .field{-webkit-align-items:center;align-items:center;margin:0}.log-type-form .field .heading{margin:0}.log-type-form .field .input{margin:0 1rem}.feedme-fullpage{margin:24px auto 48px;max-width:40em;text-align:center}.feedme-fullpage h2{font-size:18px}.feedme-fullpage img{margin:auto;width:70px}.feedme-fullpage .buttons{display:inline-block;margin-top:15px}.feedme-success-btns{margin-top:2em}.feedme-success-btns a:not(:first-child){margin-left:7px}.fullpage-error-message{background:#f4f5f6;border:1px solid rgba(0,0,20,.1);font-size:12px;margin:20px 0 10px;padding:10px}body.feedme-message .message-container .pane{margin:0 auto!important;padding:2em;-webkit-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%);width:36em}body.feedme-message .feedme-fullpage{margin-bottom:24px}.feedme-welcome{margin:0 auto;text-align:center}.feedme-welcome h1{font-size:28px}.feedme-welcome .plugin-icon-welcome{-webkit-align-items:center;align-items:center;display:-webkit-flex;display:flex;margin:20px 0 30px}.feedme-welcome .plugin-icon-welcome svg{height:120px;width:120px}.feedme-welcome .btn-start{font-size:15px;height:auto;margin-top:20px;padding:14px 28px}.feedme-welcome .or{display:block;font-style:italic;padding:10px}.feedme-welcome .btn .fa{margin-left:5px} + */@font-face{font-family:Font Awesome\ 5 Pro;font-style:normal;font-weight:900;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:Font Awesome\ 5 Pro}.fa,.fas{font-weight:900}body.ltr .table-feed-me .thin.action{padding-left:10px}.table-feed-me .thin.action .icon{color:var(--ui-control-color)}.table-feed-me .thin.action .icon:hover{color:var(--link-color)}.table-feed-me .element-group-sub{color:rgba(51,63,77,.5);display:block;font-size:11px;font-weight:700;line-height:1.2}.table-feed-me .index-url{color:#8f98a3;display:block;font-size:12px;font-weight:400;margin-top:5px}.table-feed-me .settings-pane{display:none;padding:0}.table-feed-me .settings-pane-wrap{background:#f6f7f8;box-shadow:0 0 0 1px #e4e6e8;font-size:12px;line-height:1.4;padding:15px}.table-feed-me .settings-pane .fa,.table-feed-me .settings-pane .icon{color:rgba(0,0,0,.2);margin-right:3px}.table-feed-me .settings-pane .fa:hover,.table-feed-me .settings-pane .icon:hover{color:rgba(0,0,0,.2)}#feeds .settings-pane .input input{font-size:12px}.feedme-mapping{font-size:13px}.feedme-mapping th:first-child{width:25%}.feedme-mapping th:nth-child(2){width:40%}.feedme-mapping th:nth-child(3){width:25%}.feedme-mapping td.col-field .field.instructions{line-height:18px}.feedme-mapping td.col-map .field .heading{font-size:11px}.feedme-mapping td.col-map .field{margin:5px 0}.feedme-mapping td.col-field .field>.heading{font-size:12px;margin-bottom:0}.feedme-mapping td{vertical-align:top}.feedme-mapping .select{background-image:-o-linear-gradient(#fff,#fafafa);background-image:linear-gradient(#fff,#fafafa);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.025),0 1px 1px rgba(0,0,0,.1);display:inline-block;height:32px;position:relative}.feedme-mapping .select:after{speak:none;-webkit-font-feature-settings:"liga","dlig";font-feature-settings:"liga","dlig";word-wrap:normal!important;content:"downangle";direction:ltr;display:inline-block;font-family:Craft;font-size:10px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;pointer-events:none;position:absolute;text-align:center;text-rendering:optimizeLegibility;text-transform:none;top:calc(50% - 5px);-webkit-user-select:none;user-select:none;vertical-align:middle;z-index:1}body.ltr .feedme-mapping .select:after{right:9px}body.rtl .feedme-mapping .select:after{left:9px}.feedme-mapping .select.selectize select{opacity:0}.feedme-mapping .selectize.select .selectize-control{background:none;box-shadow:none;max-width:100%}.feedme-mapping .selectize.select .selectize-control:after{display:none}.feedme-mapping .selectize.select .selectize-control .selectize-input{background:none;box-shadow:none;font-size:13px}.feedme-mapping .selectize-input input{position:relative!important}.feedme-mapping .selectize-dropdown .optgroup-header,.feedme-mapping .selectize-dropdown [data-selectable]{font-size:12px;padding:3px 10px}.feedme-mapping .selectize-dropdown-content{max-height:600px}.feedme-mapping .selectize-input div[data-value=noimport]{color:#b9bfc6}.feedme-mapping .field-extra-settings{font-size:11px}.feedme-mapping .field-extra-settings .select{height:22px}.feedme-mapping .field-extra-settings .select select{font-size:11px;line-height:13px;padding:3px 22px 5px 8px!important}.feedme-mapping .field-extra-settings .assets-uploads .asset-label-hide{visibility:hidden}.feedme-mapping .field-extra-settings .assets-uploads .checkboxfield{float:left;margin-bottom:3px;margin-right:10px;padding-top:0;z-index:1}.feedme-mapping .field-extra-settings .assets-uploads .select{height:auto;opacity:0;visibility:hidden}.feedme-mapping .field-extra-settings .assets-create .heading label{color:#29323d;float:left;font-weight:400;margin-right:10px}.feedme-mapping .field-extra-settings .element-match span{float:left;margin-bottom:0;margin-right:10px;z-index:1}.feedme-mapping .field-extra-settings .element-create{margin-top:5px}.feedme-mapping .field-extra-settings .element-groups{display:-webkit-inline-flex;display:inline-flex;display:none;margin-top:5px}.feedme-mapping .field-extra-settings .element-group{-webkit-align-items:center;align-items:center;display:-webkit-inline-flex;display:inline-flex;margin-right:10px}.feedme-mapping .field-extra-settings .element-group span{margin:4px 5px 0 0}.feedme-mapping .element-sub-field{display:none}.feedme-mapping .element-sub-field td{background:#fafafa}.feedme-mapping .element-sub-field .col-field{padding-left:30px}.feedme-mapping .element-sub-field .col-default{padding-right:30px}.feedme-mapping .element-sub-field td.col-field .field>.heading{font-size:11px;margin-bottom:0}.feedme-mapping .element-sub-field td.col-field .field>.heading>.instructions{margin-top:-2px}.feedme-mapping .element-sub-field .fa-level-up{color:#cacaca;display:block;float:left;height:100%;margin-left:-18px;margin-top:3px;-webkit-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.subelement-toggle .field{display:-webkit-flex;display:flex;-webkit-flex-direction:row-reverse;flex-direction:row-reverse;-webkit-justify-content:flex-end;justify-content:flex-end;padding-top:8px;text-align:left}.subelement-toggle .field>.heading>label{color:#8f98a3;cursor:pointer;font-weight:400;margin-left:8px}.feedme-mapping .complex-field td{background:#fafafa}.feedme-mapping .complex-field .col-field{padding-left:13px}.feedme-mapping .complex-field .col-field .field>.heading{font-size:11px}.feedme-mapping .complex-field .col-field .field>.heading>.instructions{line-height:12px;margin-top:0}.feedme-mapping .complex-field td.col-map .field{margin-bottom:0}.feedme-mapping .complex-field .col-default{padding-right:13px}.feedme-mapping .complex-field-header td{background:#f0f0f0}.feedme-mapping .complex-field-header+.complex-field-header{display:none}.feedme-mapping .complex-field-header .col-field{padding-left:13px}.feedme-mapping .complex-field-header .col-field .field>.heading{font-size:14px}.feedme-mapping .complex-field-header .field-extra-settings .checkboxfield{display:inline-block;margin-right:10px}.additional-mapping-fields{display:none}.feed-me-logs-table{font-size:13px;table-layout:fixed}.feed-me-logs-table th:first-child{width:50px}.feed-me-logs-table th:nth-child(3){width:140px}.feed-me-logs-table .col-label code{background:#f3f4f6;border:1px solid #e5e8ea;border-radius:2px;font-size:80%!important;padding:3px}.log-result{background:#fff;background:#a4adb6;border-radius:3px;color:#fff!important;display:inline-block;font-size:12px;font-variant:small-caps;font-weight:300;margin-right:5px;padding:0 4px}.log-result.type-error{background:#d0021b}.log-detail-link{float:right;font-size:80%}.log-type-form,.log-type-form .field{display:-webkit-inline-flex;display:inline-flex}.log-type-form .field{-webkit-align-items:center;align-items:center;margin:0}.log-type-form .field .heading{margin:0}.log-type-form .field .input{margin:0 1rem}.feedme-fullpage{margin:24px auto 48px;max-width:40em;text-align:center}.feedme-fullpage h2{font-size:18px}.feedme-fullpage img{margin:auto;width:70px}.feedme-fullpage .buttons{display:inline-block;margin-top:15px}.feedme-success-btns{margin-top:2em}.feedme-success-btns a:not(:first-child){margin-left:7px}.fullpage-error-message{background:#f4f5f6;border:1px solid rgba(0,0,20,.1);font-size:12px;margin:20px 0 10px;padding:10px}body.feedme-message .message-container .pane{margin:0 auto!important;padding:2em;-webkit-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%);width:36em}body.feedme-message .feedme-fullpage{margin-bottom:24px}.feedme-welcome{margin:0 auto;text-align:center}.feedme-welcome h1{font-size:28px}.feedme-welcome .plugin-icon-welcome{-webkit-align-items:center;align-items:center;display:-webkit-flex;display:flex;margin:20px 0 30px}.feedme-welcome .plugin-icon-welcome svg{height:120px;width:120px}.feedme-welcome .btn-start{font-size:15px;height:auto;margin-top:20px;padding:14px 28px}.feedme-welcome .or{display:block;font-style:italic;padding:10px}.feedme-welcome .btn .fa{margin-left:5px} /*# sourceMappingURL=FeedMe.css.map*/ \ No newline at end of file diff --git a/src/web/assets/feedme/dist/css/FeedMe.css.map b/src/web/assets/feedme/dist/css/FeedMe.css.map index 9f35388e..f7086a2f 100644 --- a/src/web/assets/feedme/dist/css/FeedMe.css.map +++ b/src/web/assets/feedme/dist/css/FeedMe.css.map @@ -1 +1 @@ -{"version":3,"file":"css/FeedMe.css","mappings":"AAAA;;;ECAA,CAIA,wBAKE,kCACA,mCACA,qBACA,kBACA,oBAEA,aAAY,CADZ,mBACA,CAGF,OACE,oBACA,kBACA,wBAGF,OACE,gBAGF,OACE,iBAGF,OACE,cAGF,OACE,cAGF,OACE,cAGF,OACE,cAGF,OACE,cAGF,OACE,cAGF,OACE,cAGF,OACE,cAGF,OACE,cAGF,QACE,eAGF,OACE,kBACA,aAGF,OACE,qBACA,kBACA,eAEF,UACE,kBAGF,OACE,UAIA,oBAHA,kBACA,kBACA,SACA,CAGF,WACE,wBACA,mBACA,yBAGF,cACE,WAGF,eACE,YAGF,yFAKE,kBAGF,8FAKE,iBAGF,SACE,6CACA,6EAGF,UACE,+CACA,iFAGF,2BACE,GACE,+BACA,uBAEF,GACE,gCACA,yBAIJ,sBACE,GACE,+BACA,iDAEF,GACE,gCACA,oDAPJ,mBACE,GACE,+BACA,iDAEF,GACE,gCACA,oDAIJ,cACE,sEACA,gCACA,mDAGF,eACE,sEACA,iCACA,qDAGF,eACE,sEACA,iCACA,qDAGF,oBACE,gFACA,6BACA,6CAGF,kBAEE,6BACA,6CAGF,uDALE,+EAQA,CAHF,qCAEE,4BACA,2CAGF,gHAKE,oBACA,YAGF,UACE,qBACA,WACA,gBACA,kBACA,sBACA,UAGF,0BAEE,OACA,kBACA,kBACA,WAGF,aACE,oBAGF,aACE,cAGF,YACE,WAKF,iBACE,YAGF,2BACE,YAGF,oBACE,YAGF,wBACE,YAGF,wBACE,YAGF,kBACE,YAGF,eACE,YAGF,oBACE,YAGF,0BACE,YAGF,uBACE,YAGF,mBACE,YAGF,wBACE,YAGF,yBACE,YAGF,sBACE,YAGF,uBACE,YAGF,qBACE,YAGF,kBACE,YAGF,sBACE,YAGF,qBACE,YAGF,+CACE,YAGF,kBACE,YAGF,kBACE,YAGF,mBACE,YAGF,qBACE,YAGF,6BACE,YAGF,6BACE,YAGF,8BACE,YAGF,2BACE,YAGF,sBACE,YAGF,sBACE,YAGF,uBACE,YAGF,oBACE,YAGF,yBACE,YAGF,mBACE,YAGF,qBACE,YAGF,yBACE,YAGF,iBACE,YAGF,iBACE,YAGF,qBACE,YAGF,mBACE,YAGF,iCACE,YAGF,iCACE,YAGF,kCACE,YAGF,+BACE,YAGF,0BACE,YAGF,iCACE,YAGF,+BACE,YAGF,gCACE,YAGF,8BACE,YAGF,0BACE,YAGF,2BACE,YAGF,iCACE,YAGF,iCACE,YAGF,kCACE,YAGF,+BACE,YAGF,+BACE,YAGF,6BACE,YAGF,8BACE,YAGF,4BACE,YAGF,wBACE,YAGF,6BACE,YAGF,6BACE,YAGF,8BACE,YAGF,2BACE,YAGF,sBACE,YAGF,6BACE,YAGF,2BACE,YAGF,4BACE,YAGF,0BACE,YAGF,sBACE,YAGF,uBACE,YAGF,6BACE,YAGF,6BACE,YAGF,8BACE,YAGF,2BACE,YAGF,2BACE,YAGF,yBACE,YAGF,0BACE,YAGF,wBACE,YAGF,oBACE,YAGF,kBACE,YAGF,sBACE,YAGF,wBACE,YAGF,wBACE,YAGF,oBACE,YAGF,oBACE,YAGF,uCACE,YAGF,oBACE,YAGF,sBACE,YAGF,cACE,YAGF,mBACE,YAGF,6BACE,YAGF,wBACE,YAGF,mBACE,YAGF,kBACE,YAGF,eACE,YAGF,oBACE,YAGF,iBACE,YAGF,uBACE,YAGF,yBACE,YAGF,eACE,YAGF,oBACE,YAGF,oBACE,YAGF,mBACE,YAGF,uBACE,YAGF,wBACE,YAGF,wBACE,YAGF,gBACE,YAGF,oBACE,YAGF,yBACE,YAGF,2BACE,YAGF,2BACE,YAGF,gBACE,YAGF,wBACE,YAGF,yBACE,YAGF,wBACE,YAGF,wBACE,YAGF,2BACE,YAGF,yBACE,YAGF,kCACE,YAGF,eACE,YAGF,gBACE,YAGF,mBACE,YAGF,0BACE,YAGF,gBACE,YAGF,sBACE,YAGF,mBACE,YAGF,qBACE,YAGF,sBACE,YAGF,yBACE,YAGF,qBACE,YAGF,mBACE,YAGF,gBACE,YAGF,qBACE,YAGF,sBACE,YAGF,mBACE,YAGF,iBACE,YAGF,mBACE,YAGF,qBACE,YAGF,qBACE,YAGF,uBACE,YAGF,gBACE,YAGF,gBACE,YAGF,gBACE,YAGF,gBACE,YAGF,sBACE,YAGF,oBACE,YAGF,wBACE,YAGF,wBACE,YAGF,eACE,YAGF,mBACE,YAGF,qBACE,YAGF,uBACE,YAGF,oBACE,YAGF,qBACE,YAGF,oBACE,YAGF,kBACE,YAGF,mBACE,YAGF,iBACE,YAGF,qBACE,YAGF,wBACE,YAGF,mBACE,YAGF,qBACE,YAGF,6BACE,YAGF,mBACE,YAGF,eACE,YAGF,eACE,YAGF,oBACE,YAGF,oBACE,YAGF,oBACE,YAGF,gBACE,YAGF,4BACE,YAGF,eACE,YAGF,sBACE,YAGF,sBACE,YAGF,oBACE,YAGF,wBACE,YAGF,0BACE,YAGF,yBACE,YAGF,gCACE,YAGF,0BACE,YAGF,yBACE,YAGF,0BACE,YAGF,kBACE,YAGF,sBACE,YAGF,wBACE,YAGF,oBACE,YAGF,eACE,YAGF,6BACE,YAGF,6BACE,YAGF,8BACE,YAGF,2BACE,YAGF,sBACE,YAGF,sBACE,YAGF,uBACE,YAGF,6BACE,YAGF,6BACE,YAGF,8BACE,YAGF,2BACE,YAGF,oBACE,YAGF,2BACE,YAGF,qBACE,YAGF,yBACE,YAGF,mBACE,YAGF,wBACE,YAGF,0BACE,YAGF,uBACE,YAGF,kBACE,YAGF,yBACE,YAGF,qBACE,YAGF,qBACE,YAGF,mBACE,YAGF,sBACE,YAGF,uBACE,YAGF,sBACE,YAGF,qBACE,YAGF,sBACE,YAGF,qBACE,YAGF,iBACE,YAGF,wBACE,YAGF,wBACE,YAGF,iBACE,YAGF,wBACE,YAGF,4BACE,YAGF,uBACE,YAGF,uBACE,YAGF,2BACE,YAGF,sBACE,YAGF,0BACE,YAGF,wBACE,YAGF,4BACE,YAGF,sBACE,YAGF,0BACE,YAGF,uBACE,YAGF,2BACE,YAGF,sBACE,YAGF,0BACE,YAGF,+BACE,YAGF,+BACE,YAGF,gCACE,YAGF,6BACE,YAGF,+BACE,YAGF,+BACE,YAGF,gCACE,YAGF,6BACE,YAGF,wBACE,YAGF,wBACE,YAGF,yBACE,YAGF,+BACE,YAGF,+BACE,YAGF,gCACE,YAGF,6BACE,YAGF,sBACE,YAGF,iBACE,YAGF,kBACE,YAGF,kBACE,YAGF,wBACE,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uBACE,YAGF,qBACE,YAGF,6BACE,YAGF,qBACE,YAGF,mBACE,YAGF,kBACE,YAGF,kBACE,YAGF,uBACE,YAGF,0BACE,YAGF,mBACE,YAGF,iBACE,YAGF,kBACE,YAGF,cACE,YAGF,qBACE,YAGF,oBACE,YAGF,eACE,YAGF,oBACE,YAGF,kBACE,YAGF,uBACE,YAGF,yBACE,YAGF,kBACE,YAGF,gBACE,YAGF,oBACE,YAGF,kBACE,YAGF,mBACE,YAGF,kBACE,YAGF,yBACE,YAGF,gBACE,YAGF,sBACE,YAGF,mBACE,YAGF,iBACE,YAGF,gBACE,YAGF,sBACE,YAGF,0BACE,YAGF,oBACE,YAGF,wBACE,YAGF,qBACE,YAGF,qBACE,YAGF,gBACE,YAGF,gBACE,YAGF,oBACE,YAGF,uBACE,YAGF,kBACE,YAGF,iBACE,YAGF,qBACE,YAGF,gBACE,YAGF,oBACE,YAGF,mBACE,YAGF,mBACE,YAGF,0BACE,YAGF,gBACE,YAGF,oBACE,YAGF,qBACE,YAGF,yBACE,YAGF,+BACE,YAGF,+BACE,YAGF,gCACE,YAGF,6BACE,YAGF,2BACE,YAGF,2BACE,YAGF,4BACE,YAGF,yBACE,YAGF,oBACE,YAGF,sBACE,YAGF,oBACE,YAGF,gBACE,YAGF,mBACE,YAGF,iBACE,YAGF,kBACE,YAGF,gBACE,YAGF,eACE,YAGF,sBACE,YAGF,0BACE,YAGF,mBACE,YAGF,qBACE,YAGF,gBACE,YAGF,uBACE,YAGF,uBACE,YAGF,yBACE,YAGF,yBACE,YAGF,kBACE,YAGF,mBACE,YAGF,kBACE,YAGF,oBACE,YAGF,kBACE,YAGF,iBACE,YAGF,kBACE,YAGF,eACE,YAGF,mBACE,YAGF,qBACE,YAGF,sBACE,YAGF,0BACE,YAGF,4BACE,YAGF,qBACE,YAGF,iBACE,YAGF,wBACE,YAGF,yBACE,YAGF,yBACE,YAGF,wBACE,YAGF,eACE,YAGF,oBACE,YAGF,kBACE,YAGF,kBACE,YAGF,sBACE,YAGF,0BACE,YAGF,8BACE,YAGF,gBACE,YAGF,kBACE,YAGF,sBACE,YAGF,0BACE,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BACE,YAGF,0BACE,YAGF,iBACE,YAGF,gBACE,YAGF,iBACE,YAGF,oBACE,YAGF,qBACE,YAGF,gBACE,YAGF,oBACE,YAGF,uBACE,YAGF,4BACE,YAGF,sBACE,YAGF,kBACE,YAGF,kBACE,YAGF,sBACE,YAGF,mBACE,YAGF,kBACE,YAGF,eACE,YAGF,sBACE,YAGF,sBACE,YAGF,gBACE,YAGF,oBACE,YAGF,uBACE,YAGF,mBACE,YAGF,qBACE,YAGF,uBACE,YAGF,sBACE,YAGF,iBACE,YAGF,oBACE,YAGF,wBACE,YAGF,yBACE,YAGF,yBACE,YAGF,oBACE,YAGF,wBACE,YAGF,kBACE,YAGF,iBACE,YAGF,wBACE,YAGF,sBACE,YAGF,mBACE,YAGF,kBACE,YAGF,yBACE,YAGF,gBACE,YAGF,iBACE,YAGF,iBACE,YAGF,iBACE,YAGF,sBACE,YAGF,uBACE,YAGF,iBACE,YAGF,wBACE,YAGF,mBACE,YAGF,gBACE,YAGF,cACE,YAGF,eACE,YAGF,2BACE,YAGF,uBACE,YAGF,uBACE,YAGF,sBACE,YAGF,qBACE,YAGF,iBACE,YAGF,qBACE,YAGF,yBACE,YAGF,iBACE,YAGF,iBACE,YAGF,kBACE,YAGF,kBACE,YAGF,oBACE,YAGF,2BACE,YAGF,sBACE,YAGF,mBACE,YAGF,iBACE,YAGF,gBACE,YAGF,uBACE,YAGF,kBACE,YAGF,sBACE,YAGF,wBACE,YAGF,2BACE,YAGF,2BACE,YAGF,0BACE,YAGF,mBACE,YAGF,sBACE,YAGF,oBACE,YAGF,qBACE,YAGF,4BACE,YAGF,sBACE,YAGF,sBACE,YAGF,mBACE,YAGF,kBACE,YAGF,iBACE,YAGF,gBACE,YAGF,gBACE,YAGF,uBACE,YAGF,wBACE,YAGF,iBACE,YAGF,kBACE,YAGF,gCACE,YAGF,gBACE,YAGF,oBACE,YAGF,iBACE,YAGF,mBACE,YAGF,0BACE,YAGF,SAEE,mBADA,SAEA,WACA,YACA,gBACA,UACA,kBACA,UAGF,mDAEE,UACA,YACA,SACA,iBACA,gBACA,WAGF;;;EAAA,CAIA,WACE,gCACA,kBACA,gBACA,+TACA,MAQA;;;EAIF,CAIA,WACE,gCACA,kBACA,gBACA,mTACA,eArBA,+BA8BA,CATA,SAOF,eAEE,sCD7oJF,oDAIA,6DAGE,gDAMA,uBAEA,CAHF,6BAGE,eACA,CAJF,eAIE,2BAIF,aACE,cACA,CAFF,eAHE,eAGF,CAEE,cACA,+BAMF,aAJE,SAIF,oCASA,mBAEE,4BAEA,CAJF,cACE,gBACA,CAFF,YAIE,uEAIF,oBAEE,CAFF,gBAEE,mFAGA,sDACE,2BAIJ,oBACE,uCAGF,+CAIA,6CACE,gCASA,SAGF,iCACE,SAGF,iCACE,SAGF,kDAIA,4DAIA,iDAIA,0DAIA,kDAEE,kBAGF,yBASE,iDAEA,6IACA,CALF,oBAEE,CARA,WAMF,kBAKE,+BAGA,sDAGE,qCASA,0BACA,CAKA,mBACA,CAZA,kCAEA,CAZF,iBAGA,CAgBE,cAEA,CARA,iBACA,CAPA,mBACA,CADA,gBAEA,cAcA,mBACA,CANA,kBANA,iBACA,CAPA,kCAEA,mBACA,CASA,mBACA,CAHA,wBACA,CAKA,gBACA,CATA,qBACA,CAGA,SAMA,wCEqGF,iDAGA,kDFnGA,+DAMF,8CACE,4DAIA,mFAKF,8CACE,wCAKF,uIAIA,4EAMA,2EAIA,oDAQA,6DASA,iEAII,gCADF,kCACE,yEAgBJ,uFAIA,WACE,iBACA,CAFF,+BACE,CACA,SACA,+DAKF,uCACE,qEAKF,wBACE,CADF,gBACE,iBACA,2DAUA,0BACE,CADF,kBAEE,gEAWJ,qEAQA,2BACE,oBACA,cAFF,cAEE,sDAKA,0BACA,mBACA,CAHF,+CACE,kBAEA,2DAEA,sDASF,mDAIA,iEAIA,kEAIA,mFAIA,6GAKA,gEAUE,aACA,CAFF,oCACE,CACA,iBACA,eACA,gCAEA,2BACA,uEAIF,cACE,kCACA,4DACA,yBACA,iBAFA,eAEA,8CAGA,8BACE,CADF,UACE,qDAKF,iEAIA,WACE,CADF,0BACE,0CAMA,aACA,CAFF,8CAEE,mCAUJ,6DAIA,4EAIA,uFAIA,+EAKA,4DAIA,4DAIA,+EAIA,8DAIA,mFAIA,0FAIA,sCACE,4BACA,YAGF,qBAQA,eARA,kBAQA,CACE,mCAIF,+CAIA,gDAIA,kBACE,yBACA,CACA,kBAHF,wBAEE,WACA,CACA,YAKA,eACA,CAKA,kBACA,CAXA,iBAIA,CACA,oBAEA,CARA,oBACA,CASA,cACA,CAFA,uBACA,CACA,gBAHA,gBACA,CAJA,aAQA,wBACA,kBAEA,kBACE,yBAIJ,CAME,qCALA,2BAIF,oBAOE,CANA,sBAIA,0BACA,mBACA,CAFA,QAEA,wCAGF,8BACE,aAGF,kBAQA,qBAEE,CAFF,eARA,iBAUE,qBACA,cAGF,sBACE,WAGF,CAHE,UAGF,2BAEE,oBAGF,gBACE,sBACA,cAGF,0CAIA,wCACE,kBAGF,iCACE,CACA,iCAEA,CAHA,YAGA,8CAQF,uBAEE,CAFF,YAEE,kCAEA,0DAJF,UAIE,sCAGF,mCAQA,cAPE,iBAOF,oBACE,cACA,CAGF,qCAME,6CACA,CAHF,oBACE,cADF,kBAGE,0CAEA,oDAEE,cAIJ,YACE,gBACA,CAFF,iBAEE,qBAEA,cAGF,iBACE,CADF,YACE,0BAEA,eAGF","sources":["webpack:///./scss/feed-me.scss","webpack:///./scss/_font-awesome.scss","webpack:///../../../../../node_modules/@craftcms/sass/_mixins.scss"],"sourcesContent":["// ==========================================================================\n\n// Feed Me for Craft CMS\n\n// ==========================================================================\n\n@import '@craftcms/sass/mixins';\n\n// ==========================================================================\n// Third Party\n// ==========================================================================\n\n@import 'font-awesome';\n\n// ==========================================================================\n// Feeds Index\n// ==========================================================================\n\n// .fa {\n// vertical-align: middle;\n// }\n\n// .fa-icon.direct .fa-external-link,\n// .fa-icon .fa-info-circle,\n// .fa-icon .fa-info-circle,\n// .fa-icon.debug .fa-bug {\n// color: rgba(0, 0, 0, 0.2);\n// }\n\n// .fa-icon.direct:hover .fa-external-link,\n// .fa-icon:hover .fa-info-circle,\n// .fa-icon.debug:hover .fa-bug {\n// color: #0d78f2;\n// }\n\nbody.ltr .table-feed-me .thin.action {\n padding-left: 10px;\n}\n\n.table-feed-me .thin.action .icon {\n color: rgba(0, 0, 0, 0.2);\n\n &:hover {\n color: #0d78f2;\n }\n}\n\n.table-feed-me .element-group-sub {\n display: block;\n font-size: 11px;\n line-height: 1.2;\n color: rgba(51, 63, 77, 0.5);\n font-weight: bold;\n}\n\n.table-feed-me .index-url {\n font-weight: 400;\n font-size: 12px;\n color: #8f98a3;\n display: block;\n margin-top: 5px;\n}\n\n// Settings Pane\n.table-feed-me .settings-pane {\n padding: 0;\n display: none;\n}\n\n// #feeds [data-id=\"1-settings\"] .settings-pane {\n// display: table-cell;\n// }\n\n.table-feed-me .settings-pane-wrap {\n background: #f6f7f8;\n padding: 15px;\n font-size: 12px;\n line-height: 1.4;\n box-shadow: 0 0 0 1px #e4e6e8;\n}\n\n.table-feed-me .settings-pane .icon,\n.table-feed-me .settings-pane .fa {\n margin-right: 3px;\n color: rgba(0, 0, 0, 0.2);\n\n &:hover {\n color: rgba(0, 0, 0, 0.2);\n }\n}\n\n#feeds .settings-pane .btn-group {\n display: inline-flex;\n}\n\n#feeds .settings-pane .btn-group .btn {\n height: auto;\n}\n\n#feeds .settings-pane .input input {\n font-size: 12px;\n}\n\n// ==========================================================================\n// Field-Mapping Step\n// ==========================================================================\n\n.feedme-mapping {\n // table-layout: fixed;\n font-size: 13px;\n}\n\n.feedme-mapping th:nth-child(1) {\n width: 25%;\n}\n\n.feedme-mapping th:nth-child(2) {\n width: 40%;\n}\n\n.feedme-mapping th:nth-child(3) {\n width: 25%;\n}\n\n.feedme-mapping td.col-field .field.instructions {\n line-height: 18px;\n}\n\n.feedme-mapping td.col-map .field .heading {\n font-size: 11px;\n}\n\n.feedme-mapping td.col-map .field {\n margin: 5px 0;\n}\n\n.feedme-mapping td.col-field .field > .heading {\n font-size: 12px;\n margin-bottom: 0;\n}\n\n.feedme-mapping td {\n vertical-align: top;\n}\n\n// Hide the initial select field onload, because we're using Selectize. But - its a nasty UI shift before/after\n// the JS loads, so we're fudging it here for some nicer UI without things shifting all over the page.\n\n.feedme-mapping .select {\n height: 32px;\n position: relative;\n display: inline-block;\n background-image: linear-gradient(#fff, #fafafa);\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.025),\n 0 1px 1px rgba(0, 0, 0, 0.1);\n\n &:after {\n font-family: 'Craft';\n speak: none;\n font-feature-settings: 'liga', 'dlig';\n text-rendering: optimizeLegibility;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n direction: ltr;\n display: inline-block;\n text-align: center;\n font-style: normal;\n vertical-align: middle;\n word-wrap: normal !important;\n user-select: none;\n position: absolute;\n z-index: 1;\n top: calc(50% - 5px);\n font-size: 10px;\n content: 'downangle';\n user-select: none;\n pointer-events: none;\n @include right(9px);\n }\n\n &.selectize select {\n opacity: 0;\n }\n}\n\n// Some extra styles for Selectize, so its a bit more inline with Craft itself\n.feedme-mapping .selectize.select .selectize-control {\n box-shadow: none;\n background: none;\n max-width: 100%;\n\n &:after {\n display: none;\n }\n}\n\n.feedme-mapping .selectize.select .selectize-control .selectize-input {\n box-shadow: none;\n background: none;\n font-size: 13px;\n}\n\n.feedme-mapping .selectize-input input {\n position: relative !important;\n}\n\n.feedme-mapping .selectize-dropdown [data-selectable],\n.feedme-mapping .selectize-dropdown .optgroup-header {\n padding: 3px 10px;\n font-size: 12px;\n}\n\n.feedme-mapping .selectize-dropdown-content {\n max-height: 600px;\n}\n\n.feedme-mapping .selectize-input div[data-value='noimport'] {\n color: #b9bfc6;\n}\n\n//\n// Extra Field Settings - tiny bit smaller\n//\n\n.feedme-mapping .field-extra-settings {\n font-size: 11px;\n}\n\n// .feedme-mapping .field-extra-settings input.checkbox + label:before,\n// .feedme-mapping .field-extra-settings div.checkbox:before {\n// top: 0;\n// }\n\n.feedme-mapping .field-extra-settings .select {\n height: 22px;\n\n select {\n padding: 3px 22px 5px 8px !important;\n font-size: 11px;\n line-height: 13px;\n }\n}\n\n// .feedme-mapping .field-extra-settings .selectize-dropdown [data-selectable],\n// .feedme-mapping .field-extra-settings .selectize-dropdown .optgroup-header {\n// padding: 3px 8px;\n// font-size: 11px;\n// }\n\n//\n// Assets Uploading\n//\n\n.feedme-mapping .field-extra-settings .assets-uploads .asset-label-hide {\n visibility: hidden;\n}\n\n.feedme-mapping .field-extra-settings .assets-uploads .checkboxfield {\n float: left;\n margin-right: 10px;\n padding-top: 0;\n margin-bottom: 3px;\n z-index: 1;\n}\n\n.feedme-mapping .field-extra-settings .assets-uploads .select {\n height: auto;\n opacity: 0;\n visibility: hidden;\n}\n\n.feedme-mapping .field-extra-settings .assets-create .heading label {\n color: #29323d;\n font-weight: normal;\n float: left;\n margin-right: 10px;\n}\n\n//\n// Matching Elements\n//\n\n.feedme-mapping .field-extra-settings .element-match {\n span {\n float: left;\n margin-right: 10px;\n margin-bottom: 0;\n // padding-top: 2px;\n z-index: 1;\n }\n}\n\n//\n// Creating Elements\n//\n\n.feedme-mapping .field-extra-settings .element-create {\n margin-top: 5px;\n}\n\n//\n// Element Groups\n//\n\n.feedme-mapping .field-extra-settings .element-groups {\n margin-top: 5px;\n display: inline-flex;\n display: none;\n}\n\n.feedme-mapping .field-extra-settings .element-group {\n display: inline-flex;\n margin-right: 10px;\n align-items: center;\n\n span {\n margin: 4px 5px 0 0;\n }\n}\n\n//\n// Sub-Element fields\n//\n\n.feedme-mapping .element-sub-field {\n display: none;\n}\n\n.feedme-mapping .element-sub-field td {\n background: #fafafa;\n}\n\n.feedme-mapping .element-sub-field .col-field {\n padding-left: 30px;\n}\n\n.feedme-mapping .element-sub-field .col-default {\n padding-right: 30px;\n}\n\n.feedme-mapping .element-sub-field td.col-field .field > .heading {\n font-size: 11px;\n margin-bottom: 0;\n}\n\n.feedme-mapping\n .element-sub-field\n td.col-field\n .field\n > .heading\n > .instructions {\n margin-top: -2px;\n}\n\n.feedme-mapping .element-sub-field .fa-level-up {\n float: left;\n display: block;\n height: 100%;\n color: #cacaca;\n margin-left: -18px;\n margin-top: 3px;\n transform: rotate(90deg);\n}\n\n// Toggling\n.subelement-toggle .field {\n display: flex;\n flex-direction: row-reverse;\n text-align: left;\n justify-content: flex-end;\n padding-top: 8px;\n\n .lightswitch.small {\n width: 25px;\n height: 16px;\n margin-bottom: -4px;\n }\n\n .lightswitch.small .label {\n height: 16px;\n }\n\n .lightswitch.small .handle {\n margin: 1px -8px;\n width: 14px;\n height: 14px;\n }\n\n > .heading > label {\n font-weight: 400;\n cursor: pointer;\n margin-left: 8px;\n color: #8f98a3;\n }\n}\n\n//\n// Complex fields like Matrix/Table\n//\n\n.feedme-mapping .complex-field td {\n background: #fafafa;\n}\n\n.feedme-mapping .complex-field .col-field {\n padding-left: 13px;\n}\n\n.feedme-mapping .complex-field .col-field .field > .heading {\n font-size: 11px;\n}\n\n.feedme-mapping .complex-field .col-field .field > .heading > .instructions {\n margin-top: 0;\n line-height: 12px;\n}\n\n.feedme-mapping .complex-field td.col-map .field {\n margin-bottom: 0;\n}\n\n.feedme-mapping .complex-field .col-default {\n padding-right: 13px;\n}\n\n.feedme-mapping .complex-field-header td {\n background: darken(#fafafa, 4%);\n}\n\n.feedme-mapping .complex-field-header + .complex-field-header {\n display: none;\n}\n\n.feedme-mapping .complex-field-header .col-field {\n padding-left: 13px;\n}\n\n.feedme-mapping .complex-field-header .col-field .field > .heading {\n font-size: 14px;\n}\n\n.feedme-mapping .complex-field-header .field-extra-settings .checkboxfield {\n display: inline-block;\n margin-right: 10px;\n}\n\n.additional-mapping-fields {\n display: none;\n}\n\n// ==========================================================================\n// Logs\n// ==========================================================================\n\n.feed-me-logs-table {\n table-layout: fixed;\n font-size: 13px;\n}\n\n.feed-me-logs-table th:nth-child(1) {\n width: 50px;\n}\n\n.feed-me-logs-table th:nth-child(3) {\n width: 140px;\n}\n\n.feed-me-logs-table .col-label code {\n font-size: 80% !important;\n background: lighten(#a4adb6, 28%);\n border: 1px lighten(#a4adb6, 23%) solid;\n padding: 3px 3px;\n border-radius: 2px;\n}\n\n.log-result {\n display: inline-block;\n border-radius: 3px;\n padding: 0 4px;\n background: #fff;\n color: #fff !important;\n margin-right: 5px;\n font-variant: small-caps;\n font-size: 12px;\n font-weight: 300;\n background: darken(#ebedef, 25%);\n\n &.type-error {\n background: #d0021b;\n }\n}\n\n.log-detail-link {\n float: right;\n font-size: 80%;\n}\n\n.log-type-form {\n display: inline-flex;\n}\n\n.log-type-form .field {\n display: inline-flex;\n margin: 0;\n align-items: center;\n}\n\n.log-type-form .field .heading {\n margin: 0;\n}\n\n.log-type-form .field .input {\n margin: 0 1rem;\n}\n\n// ==========================================================================\n// Full Page Screens for Error/Success\n// ==========================================================================\n\n.feedme-fullpage {\n text-align: center;\n max-width: 40em;\n margin: 24px auto 48px;\n}\n\n.feedme-fullpage h2 {\n font-size: 18px;\n}\n\n.feedme-fullpage img {\n width: 70px;\n margin: auto;\n}\n\n.feedme-fullpage .buttons {\n display: inline-block;\n margin-top: 15px;\n}\n\n.feedme-success-btns {\n margin-top: 2em;\n}\n\n.feedme-success-btns a:not(:first-child) {\n margin-left: 7px;\n}\n\n.fullpage-error-message {\n background: lighten(#ebedef, 3%);\n border: 1px rgba(0, 0, 20, 0.1) solid;\n padding: 10px;\n font-size: 12px;\n margin: 20px 0 10px 0;\n}\n\n// ==========================================================================\n// Direct Feed Additional Styles\n// ==========================================================================\n\nbody.feedme-message .message-container .pane {\n width: 36em;\n padding: 2em;\n margin: 0 auto !important;\n transform: translate(0, -50%);\n}\n\nbody.feedme-message .feedme-fullpage {\n margin-bottom: 24px;\n}\n\n// ==========================================================================\n// Welcome Screen\n// ==========================================================================\n\n.feedme-welcome {\n text-align: center;\n margin: 0 auto;\n}\n\n.feedme-welcome h1 {\n font-size: 28px;\n}\n\n.feedme-welcome .plugin-icon-welcome {\n margin: 20px 0 30px;\n display: flex;\n align-items: center;\n\n svg {\n width: 120px;\n height: 120px;\n }\n}\n\n.feedme-welcome .btn-start {\n font-size: 15px;\n padding: 14px 28px;\n height: auto;\n margin-top: 20px;\n}\n\n.feedme-welcome .or {\n display: block;\n padding: 10px;\n font-style: italic;\n}\n\n.feedme-welcome .btn .fa {\n margin-left: 5px;\n}\n","/*!\n * Font Awesome Pro 5.0.9 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n */\n.fa,\n.fas,\n.far,\n.fal,\n.fab {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: inline-block;\n font-style: normal;\n font-variant: normal;\n text-rendering: auto;\n line-height: 1;\n}\n\n.fa-lg {\n font-size: 1.33333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n.fa-rotate-90 {\n -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=1)';\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2)';\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=3)';\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)';\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)';\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)';\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n line-height: 2em;\n position: relative;\n vertical-align: middle;\n width: 2em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n left: 0;\n position: absolute;\n text-align: center;\n width: 100%;\n}\n\n.fa-stack-1x {\n line-height: inherit;\n}\n\n.fa-stack-2x {\n font-size: 2em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n.fa-500px:before {\n content: '\\f26e';\n}\n\n.fa-accessible-icon:before {\n content: '\\f368';\n}\n\n.fa-accusoft:before {\n content: '\\f369';\n}\n\n.fa-address-book:before {\n content: '\\f2b9';\n}\n\n.fa-address-card:before {\n content: '\\f2bb';\n}\n\n.fa-adjust:before {\n content: '\\f042';\n}\n\n.fa-adn:before {\n content: '\\f170';\n}\n\n.fa-adversal:before {\n content: '\\f36a';\n}\n\n.fa-affiliatetheme:before {\n content: '\\f36b';\n}\n\n.fa-alarm-clock:before {\n content: '\\f34e';\n}\n\n.fa-algolia:before {\n content: '\\f36c';\n}\n\n.fa-align-center:before {\n content: '\\f037';\n}\n\n.fa-align-justify:before {\n content: '\\f039';\n}\n\n.fa-align-left:before {\n content: '\\f036';\n}\n\n.fa-align-right:before {\n content: '\\f038';\n}\n\n.fa-allergies:before {\n content: '\\f461';\n}\n\n.fa-amazon:before {\n content: '\\f270';\n}\n\n.fa-amazon-pay:before {\n content: '\\f42c';\n}\n\n.fa-ambulance:before {\n content: '\\f0f9';\n}\n\n.fa-american-sign-language-interpreting:before {\n content: '\\f2a3';\n}\n\n.fa-amilia:before {\n content: '\\f36d';\n}\n\n.fa-anchor:before {\n content: '\\f13d';\n}\n\n.fa-android:before {\n content: '\\f17b';\n}\n\n.fa-angellist:before {\n content: '\\f209';\n}\n\n.fa-angle-double-down:before {\n content: '\\f103';\n}\n\n.fa-angle-double-left:before {\n content: '\\f100';\n}\n\n.fa-angle-double-right:before {\n content: '\\f101';\n}\n\n.fa-angle-double-up:before {\n content: '\\f102';\n}\n\n.fa-angle-down:before {\n content: '\\f107';\n}\n\n.fa-angle-left:before {\n content: '\\f104';\n}\n\n.fa-angle-right:before {\n content: '\\f105';\n}\n\n.fa-angle-up:before {\n content: '\\f106';\n}\n\n.fa-angrycreative:before {\n content: '\\f36e';\n}\n\n.fa-angular:before {\n content: '\\f420';\n}\n\n.fa-app-store:before {\n content: '\\f36f';\n}\n\n.fa-app-store-ios:before {\n content: '\\f370';\n}\n\n.fa-apper:before {\n content: '\\f371';\n}\n\n.fa-apple:before {\n content: '\\f179';\n}\n\n.fa-apple-pay:before {\n content: '\\f415';\n}\n\n.fa-archive:before {\n content: '\\f187';\n}\n\n.fa-arrow-alt-circle-down:before {\n content: '\\f358';\n}\n\n.fa-arrow-alt-circle-left:before {\n content: '\\f359';\n}\n\n.fa-arrow-alt-circle-right:before {\n content: '\\f35a';\n}\n\n.fa-arrow-alt-circle-up:before {\n content: '\\f35b';\n}\n\n.fa-arrow-alt-down:before {\n content: '\\f354';\n}\n\n.fa-arrow-alt-from-bottom:before {\n content: '\\f346';\n}\n\n.fa-arrow-alt-from-left:before {\n content: '\\f347';\n}\n\n.fa-arrow-alt-from-right:before {\n content: '\\f348';\n}\n\n.fa-arrow-alt-from-top:before {\n content: '\\f349';\n}\n\n.fa-arrow-alt-left:before {\n content: '\\f355';\n}\n\n.fa-arrow-alt-right:before {\n content: '\\f356';\n}\n\n.fa-arrow-alt-square-down:before {\n content: '\\f350';\n}\n\n.fa-arrow-alt-square-left:before {\n content: '\\f351';\n}\n\n.fa-arrow-alt-square-right:before {\n content: '\\f352';\n}\n\n.fa-arrow-alt-square-up:before {\n content: '\\f353';\n}\n\n.fa-arrow-alt-to-bottom:before {\n content: '\\f34a';\n}\n\n.fa-arrow-alt-to-left:before {\n content: '\\f34b';\n}\n\n.fa-arrow-alt-to-right:before {\n content: '\\f34c';\n}\n\n.fa-arrow-alt-to-top:before {\n content: '\\f34d';\n}\n\n.fa-arrow-alt-up:before {\n content: '\\f357';\n}\n\n.fa-arrow-circle-down:before {\n content: '\\f0ab';\n}\n\n.fa-arrow-circle-left:before {\n content: '\\f0a8';\n}\n\n.fa-arrow-circle-right:before {\n content: '\\f0a9';\n}\n\n.fa-arrow-circle-up:before {\n content: '\\f0aa';\n}\n\n.fa-arrow-down:before {\n content: '\\f063';\n}\n\n.fa-arrow-from-bottom:before {\n content: '\\f342';\n}\n\n.fa-arrow-from-left:before {\n content: '\\f343';\n}\n\n.fa-arrow-from-right:before {\n content: '\\f344';\n}\n\n.fa-arrow-from-top:before {\n content: '\\f345';\n}\n\n.fa-arrow-left:before {\n content: '\\f060';\n}\n\n.fa-arrow-right:before {\n content: '\\f061';\n}\n\n.fa-arrow-square-down:before {\n content: '\\f339';\n}\n\n.fa-arrow-square-left:before {\n content: '\\f33a';\n}\n\n.fa-arrow-square-right:before {\n content: '\\f33b';\n}\n\n.fa-arrow-square-up:before {\n content: '\\f33c';\n}\n\n.fa-arrow-to-bottom:before {\n content: '\\f33d';\n}\n\n.fa-arrow-to-left:before {\n content: '\\f33e';\n}\n\n.fa-arrow-to-right:before {\n content: '\\f340';\n}\n\n.fa-arrow-to-top:before {\n content: '\\f341';\n}\n\n.fa-arrow-up:before {\n content: '\\f062';\n}\n\n.fa-arrows:before {\n content: '\\f047';\n}\n\n.fa-arrows-alt:before {\n content: '\\f0b2';\n}\n\n.fa-arrows-alt-h:before {\n content: '\\f337';\n}\n\n.fa-arrows-alt-v:before {\n content: '\\f338';\n}\n\n.fa-arrows-h:before {\n content: '\\f07e';\n}\n\n.fa-arrows-v:before {\n content: '\\f07d';\n}\n\n.fa-assistive-listening-systems:before {\n content: '\\f2a2';\n}\n\n.fa-asterisk:before {\n content: '\\f069';\n}\n\n.fa-asymmetrik:before {\n content: '\\f372';\n}\n\n.fa-at:before {\n content: '\\f1fa';\n}\n\n.fa-audible:before {\n content: '\\f373';\n}\n\n.fa-audio-description:before {\n content: '\\f29e';\n}\n\n.fa-autoprefixer:before {\n content: '\\f41c';\n}\n\n.fa-avianex:before {\n content: '\\f374';\n}\n\n.fa-aviato:before {\n content: '\\f421';\n}\n\n.fa-aws:before {\n content: '\\f375';\n}\n\n.fa-backward:before {\n content: '\\f04a';\n}\n\n.fa-badge:before {\n content: '\\f335';\n}\n\n.fa-badge-check:before {\n content: '\\f336';\n}\n\n.fa-balance-scale:before {\n content: '\\f24e';\n}\n\n.fa-ban:before {\n content: '\\f05e';\n}\n\n.fa-band-aid:before {\n content: '\\f462';\n}\n\n.fa-bandcamp:before {\n content: '\\f2d5';\n}\n\n.fa-barcode:before {\n content: '\\f02a';\n}\n\n.fa-barcode-alt:before {\n content: '\\f463';\n}\n\n.fa-barcode-read:before {\n content: '\\f464';\n}\n\n.fa-barcode-scan:before {\n content: '\\f465';\n}\n\n.fa-bars:before {\n content: '\\f0c9';\n}\n\n.fa-baseball:before {\n content: '\\f432';\n}\n\n.fa-baseball-ball:before {\n content: '\\f433';\n}\n\n.fa-basketball-ball:before {\n content: '\\f434';\n}\n\n.fa-basketball-hoop:before {\n content: '\\f435';\n}\n\n.fa-bath:before {\n content: '\\f2cd';\n}\n\n.fa-battery-bolt:before {\n content: '\\f376';\n}\n\n.fa-battery-empty:before {\n content: '\\f244';\n}\n\n.fa-battery-full:before {\n content: '\\f240';\n}\n\n.fa-battery-half:before {\n content: '\\f242';\n}\n\n.fa-battery-quarter:before {\n content: '\\f243';\n}\n\n.fa-battery-slash:before {\n content: '\\f377';\n}\n\n.fa-battery-three-quarters:before {\n content: '\\f241';\n}\n\n.fa-bed:before {\n content: '\\f236';\n}\n\n.fa-beer:before {\n content: '\\f0fc';\n}\n\n.fa-behance:before {\n content: '\\f1b4';\n}\n\n.fa-behance-square:before {\n content: '\\f1b5';\n}\n\n.fa-bell:before {\n content: '\\f0f3';\n}\n\n.fa-bell-slash:before {\n content: '\\f1f6';\n}\n\n.fa-bicycle:before {\n content: '\\f206';\n}\n\n.fa-bimobject:before {\n content: '\\f378';\n}\n\n.fa-binoculars:before {\n content: '\\f1e5';\n}\n\n.fa-birthday-cake:before {\n content: '\\f1fd';\n}\n\n.fa-bitbucket:before {\n content: '\\f171';\n}\n\n.fa-bitcoin:before {\n content: '\\f379';\n}\n\n.fa-bity:before {\n content: '\\f37a';\n}\n\n.fa-black-tie:before {\n content: '\\f27e';\n}\n\n.fa-blackberry:before {\n content: '\\f37b';\n}\n\n.fa-blanket:before {\n content: '\\f498';\n}\n\n.fa-blind:before {\n content: '\\f29d';\n}\n\n.fa-blogger:before {\n content: '\\f37c';\n}\n\n.fa-blogger-b:before {\n content: '\\f37d';\n}\n\n.fa-bluetooth:before {\n content: '\\f293';\n}\n\n.fa-bluetooth-b:before {\n content: '\\f294';\n}\n\n.fa-bold:before {\n content: '\\f032';\n}\n\n.fa-bolt:before {\n content: '\\f0e7';\n}\n\n.fa-bomb:before {\n content: '\\f1e2';\n}\n\n.fa-book:before {\n content: '\\f02d';\n}\n\n.fa-book-heart:before {\n content: '\\f499';\n}\n\n.fa-bookmark:before {\n content: '\\f02e';\n}\n\n.fa-bowling-ball:before {\n content: '\\f436';\n}\n\n.fa-bowling-pins:before {\n content: '\\f437';\n}\n\n.fa-box:before {\n content: '\\f466';\n}\n\n.fa-box-alt:before {\n content: '\\f49a';\n}\n\n.fa-box-check:before {\n content: '\\f467';\n}\n\n.fa-box-fragile:before {\n content: '\\f49b';\n}\n\n.fa-box-full:before {\n content: '\\f49c';\n}\n\n.fa-box-heart:before {\n content: '\\f49d';\n}\n\n.fa-box-open:before {\n content: '\\f49e';\n}\n\n.fa-box-up:before {\n content: '\\f49f';\n}\n\n.fa-box-usd:before {\n content: '\\f4a0';\n}\n\n.fa-boxes:before {\n content: '\\f468';\n}\n\n.fa-boxes-alt:before {\n content: '\\f4a1';\n}\n\n.fa-boxing-glove:before {\n content: '\\f438';\n}\n\n.fa-braille:before {\n content: '\\f2a1';\n}\n\n.fa-briefcase:before {\n content: '\\f0b1';\n}\n\n.fa-briefcase-medical:before {\n content: '\\f469';\n}\n\n.fa-browser:before {\n content: '\\f37e';\n}\n\n.fa-btc:before {\n content: '\\f15a';\n}\n\n.fa-bug:before {\n content: '\\f188';\n}\n\n.fa-building:before {\n content: '\\f1ad';\n}\n\n.fa-bullhorn:before {\n content: '\\f0a1';\n}\n\n.fa-bullseye:before {\n content: '\\f140';\n}\n\n.fa-burn:before {\n content: '\\f46a';\n}\n\n.fa-buromobelexperte:before {\n content: '\\f37f';\n}\n\n.fa-bus:before {\n content: '\\f207';\n}\n\n.fa-buysellads:before {\n content: '\\f20d';\n}\n\n.fa-calculator:before {\n content: '\\f1ec';\n}\n\n.fa-calendar:before {\n content: '\\f133';\n}\n\n.fa-calendar-alt:before {\n content: '\\f073';\n}\n\n.fa-calendar-check:before {\n content: '\\f274';\n}\n\n.fa-calendar-edit:before {\n content: '\\f333';\n}\n\n.fa-calendar-exclamation:before {\n content: '\\f334';\n}\n\n.fa-calendar-minus:before {\n content: '\\f272';\n}\n\n.fa-calendar-plus:before {\n content: '\\f271';\n}\n\n.fa-calendar-times:before {\n content: '\\f273';\n}\n\n.fa-camera:before {\n content: '\\f030';\n}\n\n.fa-camera-alt:before {\n content: '\\f332';\n}\n\n.fa-camera-retro:before {\n content: '\\f083';\n}\n\n.fa-capsules:before {\n content: '\\f46b';\n}\n\n.fa-car:before {\n content: '\\f1b9';\n}\n\n.fa-caret-circle-down:before {\n content: '\\f32d';\n}\n\n.fa-caret-circle-left:before {\n content: '\\f32e';\n}\n\n.fa-caret-circle-right:before {\n content: '\\f330';\n}\n\n.fa-caret-circle-up:before {\n content: '\\f331';\n}\n\n.fa-caret-down:before {\n content: '\\f0d7';\n}\n\n.fa-caret-left:before {\n content: '\\f0d9';\n}\n\n.fa-caret-right:before {\n content: '\\f0da';\n}\n\n.fa-caret-square-down:before {\n content: '\\f150';\n}\n\n.fa-caret-square-left:before {\n content: '\\f191';\n}\n\n.fa-caret-square-right:before {\n content: '\\f152';\n}\n\n.fa-caret-square-up:before {\n content: '\\f151';\n}\n\n.fa-caret-up:before {\n content: '\\f0d8';\n}\n\n.fa-cart-arrow-down:before {\n content: '\\f218';\n}\n\n.fa-cart-plus:before {\n content: '\\f217';\n}\n\n.fa-cc-amazon-pay:before {\n content: '\\f42d';\n}\n\n.fa-cc-amex:before {\n content: '\\f1f3';\n}\n\n.fa-cc-apple-pay:before {\n content: '\\f416';\n}\n\n.fa-cc-diners-club:before {\n content: '\\f24c';\n}\n\n.fa-cc-discover:before {\n content: '\\f1f2';\n}\n\n.fa-cc-jcb:before {\n content: '\\f24b';\n}\n\n.fa-cc-mastercard:before {\n content: '\\f1f1';\n}\n\n.fa-cc-paypal:before {\n content: '\\f1f4';\n}\n\n.fa-cc-stripe:before {\n content: '\\f1f5';\n}\n\n.fa-cc-visa:before {\n content: '\\f1f0';\n}\n\n.fa-centercode:before {\n content: '\\f380';\n}\n\n.fa-certificate:before {\n content: '\\f0a3';\n}\n\n.fa-chart-area:before {\n content: '\\f1fe';\n}\n\n.fa-chart-bar:before {\n content: '\\f080';\n}\n\n.fa-chart-line:before {\n content: '\\f201';\n}\n\n.fa-chart-pie:before {\n content: '\\f200';\n}\n\n.fa-check:before {\n content: '\\f00c';\n}\n\n.fa-check-circle:before {\n content: '\\f058';\n}\n\n.fa-check-square:before {\n content: '\\f14a';\n}\n\n.fa-chess:before {\n content: '\\f439';\n}\n\n.fa-chess-bishop:before {\n content: '\\f43a';\n}\n\n.fa-chess-bishop-alt:before {\n content: '\\f43b';\n}\n\n.fa-chess-board:before {\n content: '\\f43c';\n}\n\n.fa-chess-clock:before {\n content: '\\f43d';\n}\n\n.fa-chess-clock-alt:before {\n content: '\\f43e';\n}\n\n.fa-chess-king:before {\n content: '\\f43f';\n}\n\n.fa-chess-king-alt:before {\n content: '\\f440';\n}\n\n.fa-chess-knight:before {\n content: '\\f441';\n}\n\n.fa-chess-knight-alt:before {\n content: '\\f442';\n}\n\n.fa-chess-pawn:before {\n content: '\\f443';\n}\n\n.fa-chess-pawn-alt:before {\n content: '\\f444';\n}\n\n.fa-chess-queen:before {\n content: '\\f445';\n}\n\n.fa-chess-queen-alt:before {\n content: '\\f446';\n}\n\n.fa-chess-rook:before {\n content: '\\f447';\n}\n\n.fa-chess-rook-alt:before {\n content: '\\f448';\n}\n\n.fa-chevron-circle-down:before {\n content: '\\f13a';\n}\n\n.fa-chevron-circle-left:before {\n content: '\\f137';\n}\n\n.fa-chevron-circle-right:before {\n content: '\\f138';\n}\n\n.fa-chevron-circle-up:before {\n content: '\\f139';\n}\n\n.fa-chevron-double-down:before {\n content: '\\f322';\n}\n\n.fa-chevron-double-left:before {\n content: '\\f323';\n}\n\n.fa-chevron-double-right:before {\n content: '\\f324';\n}\n\n.fa-chevron-double-up:before {\n content: '\\f325';\n}\n\n.fa-chevron-down:before {\n content: '\\f078';\n}\n\n.fa-chevron-left:before {\n content: '\\f053';\n}\n\n.fa-chevron-right:before {\n content: '\\f054';\n}\n\n.fa-chevron-square-down:before {\n content: '\\f329';\n}\n\n.fa-chevron-square-left:before {\n content: '\\f32a';\n}\n\n.fa-chevron-square-right:before {\n content: '\\f32b';\n}\n\n.fa-chevron-square-up:before {\n content: '\\f32c';\n}\n\n.fa-chevron-up:before {\n content: '\\f077';\n}\n\n.fa-child:before {\n content: '\\f1ae';\n}\n\n.fa-chrome:before {\n content: '\\f268';\n}\n\n.fa-circle:before {\n content: '\\f111';\n}\n\n.fa-circle-notch:before {\n content: '\\f1ce';\n}\n\n.fa-clipboard:before {\n content: '\\f328';\n}\n\n.fa-clipboard-check:before {\n content: '\\f46c';\n}\n\n.fa-clipboard-list:before {\n content: '\\f46d';\n}\n\n.fa-clock:before {\n content: '\\f017';\n}\n\n.fa-clone:before {\n content: '\\f24d';\n}\n\n.fa-closed-captioning:before {\n content: '\\f20a';\n}\n\n.fa-cloud:before {\n content: '\\f0c2';\n}\n\n.fa-cloud-download:before {\n content: '\\f0ed';\n}\n\n.fa-cloud-download-alt:before {\n content: '\\f381';\n}\n\n.fa-cloud-upload:before {\n content: '\\f0ee';\n}\n\n.fa-cloud-upload-alt:before {\n content: '\\f382';\n}\n\n.fa-cloudscale:before {\n content: '\\f383';\n}\n\n.fa-cloudsmith:before {\n content: '\\f384';\n}\n\n.fa-cloudversify:before {\n content: '\\f385';\n}\n\n.fa-club:before {\n content: '\\f327';\n}\n\n.fa-code:before {\n content: '\\f121';\n}\n\n.fa-code-branch:before {\n content: '\\f126';\n}\n\n.fa-code-commit:before {\n content: '\\f386';\n}\n\n.fa-code-merge:before {\n content: '\\f387';\n}\n\n.fa-codepen:before {\n content: '\\f1cb';\n}\n\n.fa-codiepie:before {\n content: '\\f284';\n}\n\n.fa-coffee:before {\n content: '\\f0f4';\n}\n\n.fa-cog:before {\n content: '\\f013';\n}\n\n.fa-cogs:before {\n content: '\\f085';\n}\n\n.fa-columns:before {\n content: '\\f0db';\n}\n\n.fa-comment:before {\n content: '\\f075';\n}\n\n.fa-comment-alt:before {\n content: '\\f27a';\n}\n\n.fa-comment-alt-check:before {\n content: '\\f4a2';\n}\n\n.fa-comment-alt-dots:before {\n content: '\\f4a3';\n}\n\n.fa-comment-alt-edit:before {\n content: '\\f4a4';\n}\n\n.fa-comment-alt-exclamation:before {\n content: '\\f4a5';\n}\n\n.fa-comment-alt-lines:before {\n content: '\\f4a6';\n}\n\n.fa-comment-alt-minus:before {\n content: '\\f4a7';\n}\n\n.fa-comment-alt-plus:before {\n content: '\\f4a8';\n}\n\n.fa-comment-alt-slash:before {\n content: '\\f4a9';\n}\n\n.fa-comment-alt-smile:before {\n content: '\\f4aa';\n}\n\n.fa-comment-alt-times:before {\n content: '\\f4ab';\n}\n\n.fa-comment-check:before {\n content: '\\f4ac';\n}\n\n.fa-comment-dots:before {\n content: '\\f4ad';\n}\n\n.fa-comment-edit:before {\n content: '\\f4ae';\n}\n\n.fa-comment-exclamation:before {\n content: '\\f4af';\n}\n\n.fa-comment-lines:before {\n content: '\\f4b0';\n}\n\n.fa-comment-minus:before {\n content: '\\f4b1';\n}\n\n.fa-comment-plus:before {\n content: '\\f4b2';\n}\n\n.fa-comment-slash:before {\n content: '\\f4b3';\n}\n\n.fa-comment-smile:before {\n content: '\\f4b4';\n}\n\n.fa-comment-times:before {\n content: '\\f4b5';\n}\n\n.fa-comments:before {\n content: '\\f086';\n}\n\n.fa-comments-alt:before {\n content: '\\f4b6';\n}\n\n.fa-compass:before {\n content: '\\f14e';\n}\n\n.fa-compress:before {\n content: '\\f066';\n}\n\n.fa-compress-alt:before {\n content: '\\f422';\n}\n\n.fa-compress-wide:before {\n content: '\\f326';\n}\n\n.fa-connectdevelop:before {\n content: '\\f20e';\n}\n\n.fa-container-storage:before {\n content: '\\f4b7';\n}\n\n.fa-contao:before {\n content: '\\f26d';\n}\n\n.fa-conveyor-belt:before {\n content: '\\f46e';\n}\n\n.fa-conveyor-belt-alt:before {\n content: '\\f46f';\n}\n\n.fa-copy:before {\n content: '\\f0c5';\n}\n\n.fa-copyright:before {\n content: '\\f1f9';\n}\n\n.fa-couch:before {\n content: '\\f4b8';\n}\n\n.fa-cpanel:before {\n content: '\\f388';\n}\n\n.fa-creative-commons:before {\n content: '\\f25e';\n}\n\n.fa-credit-card:before {\n content: '\\f09d';\n}\n\n.fa-credit-card-blank:before {\n content: '\\f389';\n}\n\n.fa-credit-card-front:before {\n content: '\\f38a';\n}\n\n.fa-cricket:before {\n content: '\\f449';\n}\n\n.fa-crop:before {\n content: '\\f125';\n}\n\n.fa-crosshairs:before {\n content: '\\f05b';\n}\n\n.fa-css3:before {\n content: '\\f13c';\n}\n\n.fa-css3-alt:before {\n content: '\\f38b';\n}\n\n.fa-cube:before {\n content: '\\f1b2';\n}\n\n.fa-cubes:before {\n content: '\\f1b3';\n}\n\n.fa-curling:before {\n content: '\\f44a';\n}\n\n.fa-cut:before {\n content: '\\f0c4';\n}\n\n.fa-cuttlefish:before {\n content: '\\f38c';\n}\n\n.fa-d-and-d:before {\n content: '\\f38d';\n}\n\n.fa-dashcube:before {\n content: '\\f210';\n}\n\n.fa-database:before {\n content: '\\f1c0';\n}\n\n.fa-deaf:before {\n content: '\\f2a4';\n}\n\n.fa-delicious:before {\n content: '\\f1a5';\n}\n\n.fa-deploydog:before {\n content: '\\f38e';\n}\n\n.fa-deskpro:before {\n content: '\\f38f';\n}\n\n.fa-desktop:before {\n content: '\\f108';\n}\n\n.fa-desktop-alt:before {\n content: '\\f390';\n}\n\n.fa-deviantart:before {\n content: '\\f1bd';\n}\n\n.fa-diagnoses:before {\n content: '\\f470';\n}\n\n.fa-diamond:before {\n content: '\\f219';\n}\n\n.fa-digg:before {\n content: '\\f1a6';\n}\n\n.fa-digital-ocean:before {\n content: '\\f391';\n}\n\n.fa-discord:before {\n content: '\\f392';\n}\n\n.fa-discourse:before {\n content: '\\f393';\n}\n\n.fa-dna:before {\n content: '\\f471';\n}\n\n.fa-dochub:before {\n content: '\\f394';\n}\n\n.fa-docker:before {\n content: '\\f395';\n}\n\n.fa-dollar-sign:before {\n content: '\\f155';\n}\n\n.fa-dolly:before {\n content: '\\f472';\n}\n\n.fa-dolly-empty:before {\n content: '\\f473';\n}\n\n.fa-dolly-flatbed:before {\n content: '\\f474';\n}\n\n.fa-dolly-flatbed-alt:before {\n content: '\\f475';\n}\n\n.fa-dolly-flatbed-empty:before {\n content: '\\f476';\n}\n\n.fa-donate:before {\n content: '\\f4b9';\n}\n\n.fa-dot-circle:before {\n content: '\\f192';\n}\n\n.fa-dove:before {\n content: '\\f4ba';\n}\n\n.fa-download:before {\n content: '\\f019';\n}\n\n.fa-draft2digital:before {\n content: '\\f396';\n}\n\n.fa-dribbble:before {\n content: '\\f17d';\n}\n\n.fa-dribbble-square:before {\n content: '\\f397';\n}\n\n.fa-dropbox:before {\n content: '\\f16b';\n}\n\n.fa-drupal:before {\n content: '\\f1a9';\n}\n\n.fa-dumbbell:before {\n content: '\\f44b';\n}\n\n.fa-dyalog:before {\n content: '\\f399';\n}\n\n.fa-earlybirds:before {\n content: '\\f39a';\n}\n\n.fa-edge:before {\n content: '\\f282';\n}\n\n.fa-edit:before {\n content: '\\f044';\n}\n\n.fa-eject:before {\n content: '\\f052';\n}\n\n.fa-elementor:before {\n content: '\\f430';\n}\n\n.fa-ellipsis-h:before {\n content: '\\f141';\n}\n\n.fa-ellipsis-h-alt:before {\n content: '\\f39b';\n}\n\n.fa-ellipsis-v:before {\n content: '\\f142';\n}\n\n.fa-ellipsis-v-alt:before {\n content: '\\f39c';\n}\n\n.fa-ember:before {\n content: '\\f423';\n}\n\n.fa-empire:before {\n content: '\\f1d1';\n}\n\n.fa-envelope:before {\n content: '\\f0e0';\n}\n\n.fa-envelope-open:before {\n content: '\\f2b6';\n}\n\n.fa-envelope-square:before {\n content: '\\f199';\n}\n\n.fa-envira:before {\n content: '\\f299';\n}\n\n.fa-eraser:before {\n content: '\\f12d';\n}\n\n.fa-erlang:before {\n content: '\\f39d';\n}\n\n.fa-ethereum:before {\n content: '\\f42e';\n}\n\n.fa-etsy:before {\n content: '\\f2d7';\n}\n\n.fa-euro-sign:before {\n content: '\\f153';\n}\n\n.fa-exchange:before {\n content: '\\f0ec';\n}\n\n.fa-exchange-alt:before {\n content: '\\f362';\n}\n\n.fa-exclamation:before {\n content: '\\f12a';\n}\n\n.fa-exclamation-circle:before {\n content: '\\f06a';\n}\n\n.fa-exclamation-square:before {\n content: '\\f321';\n}\n\n.fa-exclamation-triangle:before {\n content: '\\f071';\n}\n\n.fa-expand:before {\n content: '\\f065';\n}\n\n.fa-expand-alt:before {\n content: '\\f424';\n}\n\n.fa-expand-arrows:before {\n content: '\\f31d';\n}\n\n.fa-expand-arrows-alt:before {\n content: '\\f31e';\n}\n\n.fa-expand-wide:before {\n content: '\\f320';\n}\n\n.fa-expeditedssl:before {\n content: '\\f23e';\n}\n\n.fa-external-link:before {\n content: '\\f08e';\n}\n\n.fa-external-link-alt:before {\n content: '\\f35d';\n}\n\n.fa-external-link-square:before {\n content: '\\f14c';\n}\n\n.fa-external-link-square-alt:before {\n content: '\\f360';\n}\n\n.fa-eye:before {\n content: '\\f06e';\n}\n\n.fa-eye-dropper:before {\n content: '\\f1fb';\n}\n\n.fa-eye-slash:before {\n content: '\\f070';\n}\n\n.fa-facebook:before {\n content: '\\f09a';\n}\n\n.fa-facebook-f:before {\n content: '\\f39e';\n}\n\n.fa-facebook-messenger:before {\n content: '\\f39f';\n}\n\n.fa-facebook-square:before {\n content: '\\f082';\n}\n\n.fa-fast-backward:before {\n content: '\\f049';\n}\n\n.fa-fast-forward:before {\n content: '\\f050';\n}\n\n.fa-fax:before {\n content: '\\f1ac';\n}\n\n.fa-female:before {\n content: '\\f182';\n}\n\n.fa-field-hockey:before {\n content: '\\f44c';\n}\n\n.fa-fighter-jet:before {\n content: '\\f0fb';\n}\n\n.fa-file:before {\n content: '\\f15b';\n}\n\n.fa-file-alt:before {\n content: '\\f15c';\n}\n\n.fa-file-archive:before {\n content: '\\f1c6';\n}\n\n.fa-file-audio:before {\n content: '\\f1c7';\n}\n\n.fa-file-check:before {\n content: '\\f316';\n}\n\n.fa-file-code:before {\n content: '\\f1c9';\n}\n\n.fa-file-edit:before {\n content: '\\f31c';\n}\n\n.fa-file-excel:before {\n content: '\\f1c3';\n}\n\n.fa-file-exclamation:before {\n content: '\\f31a';\n}\n\n.fa-file-image:before {\n content: '\\f1c5';\n}\n\n.fa-file-medical:before {\n content: '\\f477';\n}\n\n.fa-file-medical-alt:before {\n content: '\\f478';\n}\n\n.fa-file-minus:before {\n content: '\\f318';\n}\n\n.fa-file-pdf:before {\n content: '\\f1c1';\n}\n\n.fa-file-plus:before {\n content: '\\f319';\n}\n\n.fa-file-powerpoint:before {\n content: '\\f1c4';\n}\n\n.fa-file-times:before {\n content: '\\f317';\n}\n\n.fa-file-video:before {\n content: '\\f1c8';\n}\n\n.fa-file-word:before {\n content: '\\f1c2';\n}\n\n.fa-film:before {\n content: '\\f008';\n}\n\n.fa-film-alt:before {\n content: '\\f3a0';\n}\n\n.fa-filter:before {\n content: '\\f0b0';\n}\n\n.fa-fire:before {\n content: '\\f06d';\n}\n\n.fa-fire-extinguisher:before {\n content: '\\f134';\n}\n\n.fa-firefox:before {\n content: '\\f269';\n}\n\n.fa-first-aid:before {\n content: '\\f479';\n}\n\n.fa-first-order:before {\n content: '\\f2b0';\n}\n\n.fa-firstdraft:before {\n content: '\\f3a1';\n}\n\n.fa-flag:before {\n content: '\\f024';\n}\n\n.fa-flag-checkered:before {\n content: '\\f11e';\n}\n\n.fa-flask:before {\n content: '\\f0c3';\n}\n\n.fa-flickr:before {\n content: '\\f16e';\n}\n\n.fa-flipboard:before {\n content: '\\f44d';\n}\n\n.fa-fly:before {\n content: '\\f417';\n}\n\n.fa-folder:before {\n content: '\\f07b';\n}\n\n.fa-folder-open:before {\n content: '\\f07c';\n}\n\n.fa-font:before {\n content: '\\f031';\n}\n\n.fa-font-awesome:before {\n content: '\\f2b4';\n}\n\n.fa-font-awesome-alt:before {\n content: '\\f35c';\n}\n\n.fa-font-awesome-flag:before {\n content: '\\f425';\n}\n\n.fa-fonticons:before {\n content: '\\f280';\n}\n\n.fa-fonticons-fi:before {\n content: '\\f3a2';\n}\n\n.fa-football-ball:before {\n content: '\\f44e';\n}\n\n.fa-football-helmet:before {\n content: '\\f44f';\n}\n\n.fa-forklift:before {\n content: '\\f47a';\n}\n\n.fa-fort-awesome:before {\n content: '\\f286';\n}\n\n.fa-fort-awesome-alt:before {\n content: '\\f3a3';\n}\n\n.fa-forumbee:before {\n content: '\\f211';\n}\n\n.fa-forward:before {\n content: '\\f04e';\n}\n\n.fa-foursquare:before {\n content: '\\f180';\n}\n\n.fa-fragile:before {\n content: '\\f4bb';\n}\n\n.fa-free-code-camp:before {\n content: '\\f2c5';\n}\n\n.fa-freebsd:before {\n content: '\\f3a4';\n}\n\n.fa-frown:before {\n content: '\\f119';\n}\n\n.fa-futbol:before {\n content: '\\f1e3';\n}\n\n.fa-gamepad:before {\n content: '\\f11b';\n}\n\n.fa-gavel:before {\n content: '\\f0e3';\n}\n\n.fa-gem:before {\n content: '\\f3a5';\n}\n\n.fa-genderless:before {\n content: '\\f22d';\n}\n\n.fa-get-pocket:before {\n content: '\\f265';\n}\n\n.fa-gg:before {\n content: '\\f260';\n}\n\n.fa-gg-circle:before {\n content: '\\f261';\n}\n\n.fa-gift:before {\n content: '\\f06b';\n}\n\n.fa-git:before {\n content: '\\f1d3';\n}\n\n.fa-git-square:before {\n content: '\\f1d2';\n}\n\n.fa-github:before {\n content: '\\f09b';\n}\n\n.fa-github-alt:before {\n content: '\\f113';\n}\n\n.fa-github-square:before {\n content: '\\f092';\n}\n\n.fa-gitkraken:before {\n content: '\\f3a6';\n}\n\n.fa-gitlab:before {\n content: '\\f296';\n}\n\n.fa-gitter:before {\n content: '\\f426';\n}\n\n.fa-glass-martini:before {\n content: '\\f000';\n}\n\n.fa-glide:before {\n content: '\\f2a5';\n}\n\n.fa-glide-g:before {\n content: '\\f2a6';\n}\n\n.fa-globe:before {\n content: '\\f0ac';\n}\n\n.fa-gofore:before {\n content: '\\f3a7';\n}\n\n.fa-golf-ball:before {\n content: '\\f450';\n}\n\n.fa-golf-club:before {\n content: '\\f451';\n}\n\n.fa-goodreads:before {\n content: '\\f3a8';\n}\n\n.fa-goodreads-g:before {\n content: '\\f3a9';\n}\n\n.fa-google:before {\n content: '\\f1a0';\n}\n\n.fa-google-drive:before {\n content: '\\f3aa';\n}\n\n.fa-google-play:before {\n content: '\\f3ab';\n}\n\n.fa-google-plus:before {\n content: '\\f2b3';\n}\n\n.fa-google-plus-g:before {\n content: '\\f0d5';\n}\n\n.fa-google-plus-square:before {\n content: '\\f0d4';\n}\n\n.fa-google-wallet:before {\n content: '\\f1ee';\n}\n\n.fa-graduation-cap:before {\n content: '\\f19d';\n}\n\n.fa-gratipay:before {\n content: '\\f184';\n}\n\n.fa-grav:before {\n content: '\\f2d6';\n}\n\n.fa-gripfire:before {\n content: '\\f3ac';\n}\n\n.fa-grunt:before {\n content: '\\f3ad';\n}\n\n.fa-gulp:before {\n content: '\\f3ae';\n}\n\n.fa-h-square:before {\n content: '\\f0fd';\n}\n\n.fa-h1:before {\n content: '\\f313';\n}\n\n.fa-h2:before {\n content: '\\f314';\n}\n\n.fa-h3:before {\n content: '\\f315';\n}\n\n.fa-hacker-news:before {\n content: '\\f1d4';\n}\n\n.fa-hacker-news-square:before {\n content: '\\f3af';\n}\n\n.fa-hand-heart:before {\n content: '\\f4bc';\n}\n\n.fa-hand-holding:before {\n content: '\\f4bd';\n}\n\n.fa-hand-holding-box:before {\n content: '\\f47b';\n}\n\n.fa-hand-holding-heart:before {\n content: '\\f4be';\n}\n\n.fa-hand-holding-seedling:before {\n content: '\\f4bf';\n}\n\n.fa-hand-holding-usd:before {\n content: '\\f4c0';\n}\n\n.fa-hand-holding-water:before {\n content: '\\f4c1';\n}\n\n.fa-hand-lizard:before {\n content: '\\f258';\n}\n\n.fa-hand-paper:before {\n content: '\\f256';\n}\n\n.fa-hand-peace:before {\n content: '\\f25b';\n}\n\n.fa-hand-point-down:before {\n content: '\\f0a7';\n}\n\n.fa-hand-point-left:before {\n content: '\\f0a5';\n}\n\n.fa-hand-point-right:before {\n content: '\\f0a4';\n}\n\n.fa-hand-point-up:before {\n content: '\\f0a6';\n}\n\n.fa-hand-pointer:before {\n content: '\\f25a';\n}\n\n.fa-hand-receiving:before {\n content: '\\f47c';\n}\n\n.fa-hand-rock:before {\n content: '\\f255';\n}\n\n.fa-hand-scissors:before {\n content: '\\f257';\n}\n\n.fa-hand-spock:before {\n content: '\\f259';\n}\n\n.fa-hands:before {\n content: '\\f4c2';\n}\n\n.fa-hands-heart:before {\n content: '\\f4c3';\n}\n\n.fa-hands-helping:before {\n content: '\\f4c4';\n}\n\n.fa-hands-usd:before {\n content: '\\f4c5';\n}\n\n.fa-handshake:before {\n content: '\\f2b5';\n}\n\n.fa-handshake-alt:before {\n content: '\\f4c6';\n}\n\n.fa-hashtag:before {\n content: '\\f292';\n}\n\n.fa-hdd:before {\n content: '\\f0a0';\n}\n\n.fa-heading:before {\n content: '\\f1dc';\n}\n\n.fa-headphones:before {\n content: '\\f025';\n}\n\n.fa-heart:before {\n content: '\\f004';\n}\n\n.fa-heart-circle:before {\n content: '\\f4c7';\n}\n\n.fa-heart-square:before {\n content: '\\f4c8';\n}\n\n.fa-heartbeat:before {\n content: '\\f21e';\n}\n\n.fa-hexagon:before {\n content: '\\f312';\n}\n\n.fa-hips:before {\n content: '\\f452';\n}\n\n.fa-hire-a-helper:before {\n content: '\\f3b0';\n}\n\n.fa-history:before {\n content: '\\f1da';\n}\n\n.fa-hockey-puck:before {\n content: '\\f453';\n}\n\n.fa-hockey-sticks:before {\n content: '\\f454';\n}\n\n.fa-home:before {\n content: '\\f015';\n}\n\n.fa-home-heart:before {\n content: '\\f4c9';\n}\n\n.fa-hooli:before {\n content: '\\f427';\n}\n\n.fa-hospital:before {\n content: '\\f0f8';\n}\n\n.fa-hospital-alt:before {\n content: '\\f47d';\n}\n\n.fa-hospital-symbol:before {\n content: '\\f47e';\n}\n\n.fa-hotjar:before {\n content: '\\f3b1';\n}\n\n.fa-hourglass:before {\n content: '\\f254';\n}\n\n.fa-hourglass-end:before {\n content: '\\f253';\n}\n\n.fa-hourglass-half:before {\n content: '\\f252';\n}\n\n.fa-hourglass-start:before {\n content: '\\f251';\n}\n\n.fa-houzz:before {\n content: '\\f27c';\n}\n\n.fa-html5:before {\n content: '\\f13b';\n}\n\n.fa-hubspot:before {\n content: '\\f3b2';\n}\n\n.fa-i-cursor:before {\n content: '\\f246';\n}\n\n.fa-id-badge:before {\n content: '\\f2c1';\n}\n\n.fa-id-card:before {\n content: '\\f2c2';\n}\n\n.fa-id-card-alt:before {\n content: '\\f47f';\n}\n\n.fa-image:before {\n content: '\\f03e';\n}\n\n.fa-images:before {\n content: '\\f302';\n}\n\n.fa-imdb:before {\n content: '\\f2d8';\n}\n\n.fa-inbox:before {\n content: '\\f01c';\n}\n\n.fa-inbox-in:before {\n content: '\\f310';\n}\n\n.fa-inbox-out:before {\n content: '\\f311';\n}\n\n.fa-indent:before {\n content: '\\f03c';\n}\n\n.fa-industry:before {\n content: '\\f275';\n}\n\n.fa-industry-alt:before {\n content: '\\f3b3';\n}\n\n.fa-info:before {\n content: '\\f129';\n}\n\n.fa-info-circle:before {\n content: '\\f05a';\n}\n\n.fa-info-square:before {\n content: '\\f30f';\n}\n\n.fa-instagram:before {\n content: '\\f16d';\n}\n\n.fa-internet-explorer:before {\n content: '\\f26b';\n}\n\n.fa-inventory:before {\n content: '\\f480';\n}\n\n.fa-ioxhost:before {\n content: '\\f208';\n}\n\n.fa-italic:before {\n content: '\\f033';\n}\n\n.fa-itunes:before {\n content: '\\f3b4';\n}\n\n.fa-itunes-note:before {\n content: '\\f3b5';\n}\n\n.fa-jack-o-lantern:before {\n content: '\\f30e';\n}\n\n.fa-jenkins:before {\n content: '\\f3b6';\n}\n\n.fa-joget:before {\n content: '\\f3b7';\n}\n\n.fa-joomla:before {\n content: '\\f1aa';\n}\n\n.fa-js:before {\n content: '\\f3b8';\n}\n\n.fa-js-square:before {\n content: '\\f3b9';\n}\n\n.fa-jsfiddle:before {\n content: '\\f1cc';\n}\n\n.fa-key:before {\n content: '\\f084';\n}\n\n.fa-keyboard:before {\n content: '\\f11c';\n}\n\n.fa-keycdn:before {\n content: '\\f3ba';\n}\n\n.fa-kickstarter:before {\n content: '\\f3bb';\n}\n\n.fa-kickstarter-k:before {\n content: '\\f3bc';\n}\n\n.fa-korvue:before {\n content: '\\f42f';\n}\n\n.fa-lamp:before {\n content: '\\f4ca';\n}\n\n.fa-language:before {\n content: '\\f1ab';\n}\n\n.fa-laptop:before {\n content: '\\f109';\n}\n\n.fa-laravel:before {\n content: '\\f3bd';\n}\n\n.fa-lastfm:before {\n content: '\\f202';\n}\n\n.fa-lastfm-square:before {\n content: '\\f203';\n}\n\n.fa-leaf:before {\n content: '\\f06c';\n}\n\n.fa-leaf-heart:before {\n content: '\\f4cb';\n}\n\n.fa-leanpub:before {\n content: '\\f212';\n}\n\n.fa-lemon:before {\n content: '\\f094';\n}\n\n.fa-less:before {\n content: '\\f41d';\n}\n\n.fa-level-down:before {\n content: '\\f149';\n}\n\n.fa-level-down-alt:before {\n content: '\\f3be';\n}\n\n.fa-level-up:before {\n content: '\\f148';\n}\n\n.fa-level-up-alt:before {\n content: '\\f3bf';\n}\n\n.fa-life-ring:before {\n content: '\\f1cd';\n}\n\n.fa-lightbulb:before {\n content: '\\f0eb';\n}\n\n.fa-line:before {\n content: '\\f3c0';\n}\n\n.fa-link:before {\n content: '\\f0c1';\n}\n\n.fa-linkedin:before {\n content: '\\f08c';\n}\n\n.fa-linkedin-in:before {\n content: '\\f0e1';\n}\n\n.fa-linode:before {\n content: '\\f2b8';\n}\n\n.fa-linux:before {\n content: '\\f17c';\n}\n\n.fa-lira-sign:before {\n content: '\\f195';\n}\n\n.fa-list:before {\n content: '\\f03a';\n}\n\n.fa-list-alt:before {\n content: '\\f022';\n}\n\n.fa-list-ol:before {\n content: '\\f0cb';\n}\n\n.fa-list-ul:before {\n content: '\\f0ca';\n}\n\n.fa-location-arrow:before {\n content: '\\f124';\n}\n\n.fa-lock:before {\n content: '\\f023';\n}\n\n.fa-lock-alt:before {\n content: '\\f30d';\n}\n\n.fa-lock-open:before {\n content: '\\f3c1';\n}\n\n.fa-lock-open-alt:before {\n content: '\\f3c2';\n}\n\n.fa-long-arrow-alt-down:before {\n content: '\\f309';\n}\n\n.fa-long-arrow-alt-left:before {\n content: '\\f30a';\n}\n\n.fa-long-arrow-alt-right:before {\n content: '\\f30b';\n}\n\n.fa-long-arrow-alt-up:before {\n content: '\\f30c';\n}\n\n.fa-long-arrow-down:before {\n content: '\\f175';\n}\n\n.fa-long-arrow-left:before {\n content: '\\f177';\n}\n\n.fa-long-arrow-right:before {\n content: '\\f178';\n}\n\n.fa-long-arrow-up:before {\n content: '\\f176';\n}\n\n.fa-loveseat:before {\n content: '\\f4cc';\n}\n\n.fa-low-vision:before {\n content: '\\f2a8';\n}\n\n.fa-luchador:before {\n content: '\\f455';\n}\n\n.fa-lyft:before {\n content: '\\f3c3';\n}\n\n.fa-magento:before {\n content: '\\f3c4';\n}\n\n.fa-magic:before {\n content: '\\f0d0';\n}\n\n.fa-magnet:before {\n content: '\\f076';\n}\n\n.fa-male:before {\n content: '\\f183';\n}\n\n.fa-map:before {\n content: '\\f279';\n}\n\n.fa-map-marker:before {\n content: '\\f041';\n}\n\n.fa-map-marker-alt:before {\n content: '\\f3c5';\n}\n\n.fa-map-pin:before {\n content: '\\f276';\n}\n\n.fa-map-signs:before {\n content: '\\f277';\n}\n\n.fa-mars:before {\n content: '\\f222';\n}\n\n.fa-mars-double:before {\n content: '\\f227';\n}\n\n.fa-mars-stroke:before {\n content: '\\f229';\n}\n\n.fa-mars-stroke-h:before {\n content: '\\f22b';\n}\n\n.fa-mars-stroke-v:before {\n content: '\\f22a';\n}\n\n.fa-maxcdn:before {\n content: '\\f136';\n}\n\n.fa-medapps:before {\n content: '\\f3c6';\n}\n\n.fa-medium:before {\n content: '\\f23a';\n}\n\n.fa-medium-m:before {\n content: '\\f3c7';\n}\n\n.fa-medkit:before {\n content: '\\f0fa';\n}\n\n.fa-medrt:before {\n content: '\\f3c8';\n}\n\n.fa-meetup:before {\n content: '\\f2e0';\n}\n\n.fa-meh:before {\n content: '\\f11a';\n}\n\n.fa-mercury:before {\n content: '\\f223';\n}\n\n.fa-microchip:before {\n content: '\\f2db';\n}\n\n.fa-microphone:before {\n content: '\\f130';\n}\n\n.fa-microphone-alt:before {\n content: '\\f3c9';\n}\n\n.fa-microphone-slash:before {\n content: '\\f131';\n}\n\n.fa-microsoft:before {\n content: '\\f3ca';\n}\n\n.fa-minus:before {\n content: '\\f068';\n}\n\n.fa-minus-circle:before {\n content: '\\f056';\n}\n\n.fa-minus-hexagon:before {\n content: '\\f307';\n}\n\n.fa-minus-octagon:before {\n content: '\\f308';\n}\n\n.fa-minus-square:before {\n content: '\\f146';\n}\n\n.fa-mix:before {\n content: '\\f3cb';\n}\n\n.fa-mixcloud:before {\n content: '\\f289';\n}\n\n.fa-mizuni:before {\n content: '\\f3cc';\n}\n\n.fa-mobile:before {\n content: '\\f10b';\n}\n\n.fa-mobile-alt:before {\n content: '\\f3cd';\n}\n\n.fa-mobile-android:before {\n content: '\\f3ce';\n}\n\n.fa-mobile-android-alt:before {\n content: '\\f3cf';\n}\n\n.fa-modx:before {\n content: '\\f285';\n}\n\n.fa-monero:before {\n content: '\\f3d0';\n}\n\n.fa-money-bill:before {\n content: '\\f0d6';\n}\n\n.fa-money-bill-alt:before {\n content: '\\f3d1';\n}\n\n.fa-moon:before {\n content: '\\f186';\n}\n\n.fa-motorcycle:before {\n content: '\\f21c';\n}\n\n.fa-mouse-pointer:before {\n content: '\\f245';\n}\n\n.fa-music:before {\n content: '\\f001';\n}\n\n.fa-napster:before {\n content: '\\f3d2';\n}\n\n.fa-neuter:before {\n content: '\\f22c';\n}\n\n.fa-newspaper:before {\n content: '\\f1ea';\n}\n\n.fa-nintendo-switch:before {\n content: '\\f418';\n}\n\n.fa-node:before {\n content: '\\f419';\n}\n\n.fa-node-js:before {\n content: '\\f3d3';\n}\n\n.fa-notes-medical:before {\n content: '\\f481';\n}\n\n.fa-npm:before {\n content: '\\f3d4';\n}\n\n.fa-ns8:before {\n content: '\\f3d5';\n}\n\n.fa-nutritionix:before {\n content: '\\f3d6';\n}\n\n.fa-object-group:before {\n content: '\\f247';\n}\n\n.fa-object-ungroup:before {\n content: '\\f248';\n}\n\n.fa-octagon:before {\n content: '\\f306';\n}\n\n.fa-odnoklassniki:before {\n content: '\\f263';\n}\n\n.fa-odnoklassniki-square:before {\n content: '\\f264';\n}\n\n.fa-opencart:before {\n content: '\\f23d';\n}\n\n.fa-openid:before {\n content: '\\f19b';\n}\n\n.fa-opera:before {\n content: '\\f26a';\n}\n\n.fa-optin-monster:before {\n content: '\\f23c';\n}\n\n.fa-osi:before {\n content: '\\f41a';\n}\n\n.fa-outdent:before {\n content: '\\f03b';\n}\n\n.fa-page4:before {\n content: '\\f3d7';\n}\n\n.fa-pagelines:before {\n content: '\\f18c';\n}\n\n.fa-paint-brush:before {\n content: '\\f1fc';\n}\n\n.fa-palfed:before {\n content: '\\f3d8';\n}\n\n.fa-pallet:before {\n content: '\\f482';\n}\n\n.fa-pallet-alt:before {\n content: '\\f483';\n}\n\n.fa-paper-plane:before {\n content: '\\f1d8';\n}\n\n.fa-paperclip:before {\n content: '\\f0c6';\n}\n\n.fa-parachute-box:before {\n content: '\\f4cd';\n}\n\n.fa-paragraph:before {\n content: '\\f1dd';\n}\n\n.fa-paste:before {\n content: '\\f0ea';\n}\n\n.fa-patreon:before {\n content: '\\f3d9';\n}\n\n.fa-pause:before {\n content: '\\f04c';\n}\n\n.fa-pause-circle:before {\n content: '\\f28b';\n}\n\n.fa-paw:before {\n content: '\\f1b0';\n}\n\n.fa-paypal:before {\n content: '\\f1ed';\n}\n\n.fa-pen:before {\n content: '\\f304';\n}\n\n.fa-pen-alt:before {\n content: '\\f305';\n}\n\n.fa-pen-square:before {\n content: '\\f14b';\n}\n\n.fa-pencil:before {\n content: '\\f040';\n}\n\n.fa-pencil-alt:before {\n content: '\\f303';\n}\n\n.fa-pennant:before {\n content: '\\f456';\n}\n\n.fa-people-carry:before {\n content: '\\f4ce';\n}\n\n.fa-percent:before {\n content: '\\f295';\n}\n\n.fa-periscope:before {\n content: '\\f3da';\n}\n\n.fa-person-carry:before {\n content: '\\f4cf';\n}\n\n.fa-person-dolly:before {\n content: '\\f4d0';\n}\n\n.fa-person-dolly-empty:before {\n content: '\\f4d1';\n}\n\n.fa-phabricator:before {\n content: '\\f3db';\n}\n\n.fa-phoenix-framework:before {\n content: '\\f3dc';\n}\n\n.fa-phone:before {\n content: '\\f095';\n}\n\n.fa-phone-plus:before {\n content: '\\f4d2';\n}\n\n.fa-phone-slash:before {\n content: '\\f3dd';\n}\n\n.fa-phone-square:before {\n content: '\\f098';\n}\n\n.fa-phone-volume:before {\n content: '\\f2a0';\n}\n\n.fa-php:before {\n content: '\\f457';\n}\n\n.fa-pied-piper:before {\n content: '\\f2ae';\n}\n\n.fa-pied-piper-alt:before {\n content: '\\f1a8';\n}\n\n.fa-pied-piper-pp:before {\n content: '\\f1a7';\n}\n\n.fa-piggy-bank:before {\n content: '\\f4d3';\n}\n\n.fa-pills:before {\n content: '\\f484';\n}\n\n.fa-pinterest:before {\n content: '\\f0d2';\n}\n\n.fa-pinterest-p:before {\n content: '\\f231';\n}\n\n.fa-pinterest-square:before {\n content: '\\f0d3';\n}\n\n.fa-plane:before {\n content: '\\f072';\n}\n\n.fa-plane-alt:before {\n content: '\\f3de';\n}\n\n.fa-play:before {\n content: '\\f04b';\n}\n\n.fa-play-circle:before {\n content: '\\f144';\n}\n\n.fa-playstation:before {\n content: '\\f3df';\n}\n\n.fa-plug:before {\n content: '\\f1e6';\n}\n\n.fa-plus:before {\n content: '\\f067';\n}\n\n.fa-plus-circle:before {\n content: '\\f055';\n}\n\n.fa-plus-hexagon:before {\n content: '\\f300';\n}\n\n.fa-plus-octagon:before {\n content: '\\f301';\n}\n\n.fa-plus-square:before {\n content: '\\f0fe';\n}\n\n.fa-podcast:before {\n content: '\\f2ce';\n}\n\n.fa-poo:before {\n content: '\\f2fe';\n}\n\n.fa-portrait:before {\n content: '\\f3e0';\n}\n\n.fa-pound-sign:before {\n content: '\\f154';\n}\n\n.fa-power-off:before {\n content: '\\f011';\n}\n\n.fa-prescription-bottle:before {\n content: '\\f485';\n}\n\n.fa-prescription-bottle-alt:before {\n content: '\\f486';\n}\n\n.fa-print:before {\n content: '\\f02f';\n}\n\n.fa-procedures:before {\n content: '\\f487';\n}\n\n.fa-product-hunt:before {\n content: '\\f288';\n}\n\n.fa-pushed:before {\n content: '\\f3e1';\n}\n\n.fa-puzzle-piece:before {\n content: '\\f12e';\n}\n\n.fa-python:before {\n content: '\\f3e2';\n}\n\n.fa-qq:before {\n content: '\\f1d6';\n}\n\n.fa-qrcode:before {\n content: '\\f029';\n}\n\n.fa-question:before {\n content: '\\f128';\n}\n\n.fa-question-circle:before {\n content: '\\f059';\n}\n\n.fa-question-square:before {\n content: '\\f2fd';\n}\n\n.fa-quidditch:before {\n content: '\\f458';\n}\n\n.fa-quinscape:before {\n content: '\\f459';\n}\n\n.fa-quora:before {\n content: '\\f2c4';\n}\n\n.fa-quote-left:before {\n content: '\\f10d';\n}\n\n.fa-quote-right:before {\n content: '\\f10e';\n}\n\n.fa-racquet:before {\n content: '\\f45a';\n}\n\n.fa-ramp-loading:before {\n content: '\\f4d4';\n}\n\n.fa-random:before {\n content: '\\f074';\n}\n\n.fa-ravelry:before {\n content: '\\f2d9';\n}\n\n.fa-react:before {\n content: '\\f41b';\n}\n\n.fa-readme:before {\n content: '\\f4d5';\n}\n\n.fa-rebel:before {\n content: '\\f1d0';\n}\n\n.fa-rectangle-landscape:before {\n content: '\\f2fa';\n}\n\n.fa-rectangle-portrait:before {\n content: '\\f2fb';\n}\n\n.fa-rectangle-wide:before {\n content: '\\f2fc';\n}\n\n.fa-recycle:before {\n content: '\\f1b8';\n}\n\n.fa-red-river:before {\n content: '\\f3e3';\n}\n\n.fa-reddit:before {\n content: '\\f1a1';\n}\n\n.fa-reddit-alien:before {\n content: '\\f281';\n}\n\n.fa-reddit-square:before {\n content: '\\f1a2';\n}\n\n.fa-redo:before {\n content: '\\f01e';\n}\n\n.fa-redo-alt:before {\n content: '\\f2f9';\n}\n\n.fa-registered:before {\n content: '\\f25d';\n}\n\n.fa-rendact:before {\n content: '\\f3e4';\n}\n\n.fa-renren:before {\n content: '\\f18b';\n}\n\n.fa-repeat:before {\n content: '\\f363';\n}\n\n.fa-repeat-1:before {\n content: '\\f365';\n}\n\n.fa-repeat-1-alt:before {\n content: '\\f366';\n}\n\n.fa-repeat-alt:before {\n content: '\\f364';\n}\n\n.fa-reply:before {\n content: '\\f3e5';\n}\n\n.fa-reply-all:before {\n content: '\\f122';\n}\n\n.fa-replyd:before {\n content: '\\f3e6';\n}\n\n.fa-resolving:before {\n content: '\\f3e7';\n}\n\n.fa-retweet:before {\n content: '\\f079';\n}\n\n.fa-retweet-alt:before {\n content: '\\f361';\n}\n\n.fa-ribbon:before {\n content: '\\f4d6';\n}\n\n.fa-road:before {\n content: '\\f018';\n}\n\n.fa-rocket:before {\n content: '\\f135';\n}\n\n.fa-rocketchat:before {\n content: '\\f3e8';\n}\n\n.fa-rockrms:before {\n content: '\\f3e9';\n}\n\n.fa-route:before {\n content: '\\f4d7';\n}\n\n.fa-rss:before {\n content: '\\f09e';\n}\n\n.fa-rss-square:before {\n content: '\\f143';\n}\n\n.fa-ruble-sign:before {\n content: '\\f158';\n}\n\n.fa-rupee-sign:before {\n content: '\\f156';\n}\n\n.fa-safari:before {\n content: '\\f267';\n}\n\n.fa-sass:before {\n content: '\\f41e';\n}\n\n.fa-save:before {\n content: '\\f0c7';\n}\n\n.fa-scanner:before {\n content: '\\f488';\n}\n\n.fa-scanner-keyboard:before {\n content: '\\f489';\n}\n\n.fa-scanner-touchscreen:before {\n content: '\\f48a';\n}\n\n.fa-schlix:before {\n content: '\\f3ea';\n}\n\n.fa-scribd:before {\n content: '\\f28a';\n}\n\n.fa-scrubber:before {\n content: '\\f2f8';\n}\n\n.fa-search:before {\n content: '\\f002';\n}\n\n.fa-search-minus:before {\n content: '\\f010';\n}\n\n.fa-search-plus:before {\n content: '\\f00e';\n}\n\n.fa-searchengin:before {\n content: '\\f3eb';\n}\n\n.fa-seedling:before {\n content: '\\f4d8';\n}\n\n.fa-sellcast:before {\n content: '\\f2da';\n}\n\n.fa-sellsy:before {\n content: '\\f213';\n}\n\n.fa-server:before {\n content: '\\f233';\n}\n\n.fa-servicestack:before {\n content: '\\f3ec';\n}\n\n.fa-share:before {\n content: '\\f064';\n}\n\n.fa-share-all:before {\n content: '\\f367';\n}\n\n.fa-share-alt:before {\n content: '\\f1e0';\n}\n\n.fa-share-alt-square:before {\n content: '\\f1e1';\n}\n\n.fa-share-square:before {\n content: '\\f14d';\n}\n\n.fa-shekel-sign:before {\n content: '\\f20b';\n}\n\n.fa-shield:before {\n content: '\\f132';\n}\n\n.fa-shield-alt:before {\n content: '\\f3ed';\n}\n\n.fa-shield-check:before {\n content: '\\f2f7';\n}\n\n.fa-ship:before {\n content: '\\f21a';\n}\n\n.fa-shipping-fast:before {\n content: '\\f48b';\n}\n\n.fa-shipping-timed:before {\n content: '\\f48c';\n}\n\n.fa-shirtsinbulk:before {\n content: '\\f214';\n}\n\n.fa-shopping-bag:before {\n content: '\\f290';\n}\n\n.fa-shopping-basket:before {\n content: '\\f291';\n}\n\n.fa-shopping-cart:before {\n content: '\\f07a';\n}\n\n.fa-shower:before {\n content: '\\f2cc';\n}\n\n.fa-shuttlecock:before {\n content: '\\f45b';\n}\n\n.fa-sign:before {\n content: '\\f4d9';\n}\n\n.fa-sign-in:before {\n content: '\\f090';\n}\n\n.fa-sign-in-alt:before {\n content: '\\f2f6';\n}\n\n.fa-sign-language:before {\n content: '\\f2a7';\n}\n\n.fa-sign-out:before {\n content: '\\f08b';\n}\n\n.fa-sign-out-alt:before {\n content: '\\f2f5';\n}\n\n.fa-signal:before {\n content: '\\f012';\n}\n\n.fa-simplybuilt:before {\n content: '\\f215';\n}\n\n.fa-sistrix:before {\n content: '\\f3ee';\n}\n\n.fa-sitemap:before {\n content: '\\f0e8';\n}\n\n.fa-skyatlas:before {\n content: '\\f216';\n}\n\n.fa-skype:before {\n content: '\\f17e';\n}\n\n.fa-slack:before {\n content: '\\f198';\n}\n\n.fa-slack-hash:before {\n content: '\\f3ef';\n}\n\n.fa-sliders-h:before {\n content: '\\f1de';\n}\n\n.fa-sliders-h-square:before {\n content: '\\f3f0';\n}\n\n.fa-sliders-v:before {\n content: '\\f3f1';\n}\n\n.fa-sliders-v-square:before {\n content: '\\f3f2';\n}\n\n.fa-slideshare:before {\n content: '\\f1e7';\n}\n\n.fa-smile:before {\n content: '\\f118';\n}\n\n.fa-smile-plus:before {\n content: '\\f4da';\n}\n\n.fa-smoking:before {\n content: '\\f48d';\n}\n\n.fa-snapchat:before {\n content: '\\f2ab';\n}\n\n.fa-snapchat-ghost:before {\n content: '\\f2ac';\n}\n\n.fa-snapchat-square:before {\n content: '\\f2ad';\n}\n\n.fa-snowflake:before {\n content: '\\f2dc';\n}\n\n.fa-sort:before {\n content: '\\f0dc';\n}\n\n.fa-sort-alpha-down:before {\n content: '\\f15d';\n}\n\n.fa-sort-alpha-up:before {\n content: '\\f15e';\n}\n\n.fa-sort-amount-down:before {\n content: '\\f160';\n}\n\n.fa-sort-amount-up:before {\n content: '\\f161';\n}\n\n.fa-sort-down:before {\n content: '\\f0dd';\n}\n\n.fa-sort-numeric-down:before {\n content: '\\f162';\n}\n\n.fa-sort-numeric-up:before {\n content: '\\f163';\n}\n\n.fa-sort-up:before {\n content: '\\f0de';\n}\n\n.fa-soundcloud:before {\n content: '\\f1be';\n}\n\n.fa-space-shuttle:before {\n content: '\\f197';\n}\n\n.fa-spade:before {\n content: '\\f2f4';\n}\n\n.fa-speakap:before {\n content: '\\f3f3';\n}\n\n.fa-spinner:before {\n content: '\\f110';\n}\n\n.fa-spinner-third:before {\n content: '\\f3f4';\n}\n\n.fa-spotify:before {\n content: '\\f1bc';\n}\n\n.fa-square:before {\n content: '\\f0c8';\n}\n\n.fa-square-full:before {\n content: '\\f45c';\n}\n\n.fa-stack-exchange:before {\n content: '\\f18d';\n}\n\n.fa-stack-overflow:before {\n content: '\\f16c';\n}\n\n.fa-star:before {\n content: '\\f005';\n}\n\n.fa-star-exclamation:before {\n content: '\\f2f3';\n}\n\n.fa-star-half:before {\n content: '\\f089';\n}\n\n.fa-staylinked:before {\n content: '\\f3f5';\n}\n\n.fa-steam:before {\n content: '\\f1b6';\n}\n\n.fa-steam-square:before {\n content: '\\f1b7';\n}\n\n.fa-steam-symbol:before {\n content: '\\f3f6';\n}\n\n.fa-step-backward:before {\n content: '\\f048';\n}\n\n.fa-step-forward:before {\n content: '\\f051';\n}\n\n.fa-stethoscope:before {\n content: '\\f0f1';\n}\n\n.fa-sticker-mule:before {\n content: '\\f3f7';\n}\n\n.fa-sticky-note:before {\n content: '\\f249';\n}\n\n.fa-stop:before {\n content: '\\f04d';\n}\n\n.fa-stop-circle:before {\n content: '\\f28d';\n}\n\n.fa-stopwatch:before {\n content: '\\f2f2';\n}\n\n.fa-strava:before {\n content: '\\f428';\n}\n\n.fa-street-view:before {\n content: '\\f21d';\n}\n\n.fa-strikethrough:before {\n content: '\\f0cc';\n}\n\n.fa-stripe:before {\n content: '\\f429';\n}\n\n.fa-stripe-s:before {\n content: '\\f42a';\n}\n\n.fa-studiovinari:before {\n content: '\\f3f8';\n}\n\n.fa-stumbleupon:before {\n content: '\\f1a4';\n}\n\n.fa-stumbleupon-circle:before {\n content: '\\f1a3';\n}\n\n.fa-subscript:before {\n content: '\\f12c';\n}\n\n.fa-subway:before {\n content: '\\f239';\n}\n\n.fa-suitcase:before {\n content: '\\f0f2';\n}\n\n.fa-sun:before {\n content: '\\f185';\n}\n\n.fa-superpowers:before {\n content: '\\f2dd';\n}\n\n.fa-superscript:before {\n content: '\\f12b';\n}\n\n.fa-supple:before {\n content: '\\f3f9';\n}\n\n.fa-sync:before {\n content: '\\f021';\n}\n\n.fa-sync-alt:before {\n content: '\\f2f1';\n}\n\n.fa-syringe:before {\n content: '\\f48e';\n}\n\n.fa-table:before {\n content: '\\f0ce';\n}\n\n.fa-table-tennis:before {\n content: '\\f45d';\n}\n\n.fa-tablet:before {\n content: '\\f10a';\n}\n\n.fa-tablet-alt:before {\n content: '\\f3fa';\n}\n\n.fa-tablet-android:before {\n content: '\\f3fb';\n}\n\n.fa-tablet-android-alt:before {\n content: '\\f3fc';\n}\n\n.fa-tablet-rugged:before {\n content: '\\f48f';\n}\n\n.fa-tablets:before {\n content: '\\f490';\n}\n\n.fa-tachometer:before {\n content: '\\f0e4';\n}\n\n.fa-tachometer-alt:before {\n content: '\\f3fd';\n}\n\n.fa-tag:before {\n content: '\\f02b';\n}\n\n.fa-tags:before {\n content: '\\f02c';\n}\n\n.fa-tape:before {\n content: '\\f4db';\n}\n\n.fa-tasks:before {\n content: '\\f0ae';\n}\n\n.fa-taxi:before {\n content: '\\f1ba';\n}\n\n.fa-telegram:before {\n content: '\\f2c6';\n}\n\n.fa-telegram-plane:before {\n content: '\\f3fe';\n}\n\n.fa-tencent-weibo:before {\n content: '\\f1d5';\n}\n\n.fa-tennis-ball:before {\n content: '\\f45e';\n}\n\n.fa-terminal:before {\n content: '\\f120';\n}\n\n.fa-text-height:before {\n content: '\\f034';\n}\n\n.fa-text-width:before {\n content: '\\f035';\n}\n\n.fa-th:before {\n content: '\\f00a';\n}\n\n.fa-th-large:before {\n content: '\\f009';\n}\n\n.fa-th-list:before {\n content: '\\f00b';\n}\n\n.fa-themeisle:before {\n content: '\\f2b2';\n}\n\n.fa-thermometer:before {\n content: '\\f491';\n}\n\n.fa-thermometer-empty:before {\n content: '\\f2cb';\n}\n\n.fa-thermometer-full:before {\n content: '\\f2c7';\n}\n\n.fa-thermometer-half:before {\n content: '\\f2c9';\n}\n\n.fa-thermometer-quarter:before {\n content: '\\f2ca';\n}\n\n.fa-thermometer-three-quarters:before {\n content: '\\f2c8';\n}\n\n.fa-thumbs-down:before {\n content: '\\f165';\n}\n\n.fa-thumbs-up:before {\n content: '\\f164';\n}\n\n.fa-thumbtack:before {\n content: '\\f08d';\n}\n\n.fa-ticket:before {\n content: '\\f145';\n}\n\n.fa-ticket-alt:before {\n content: '\\f3ff';\n}\n\n.fa-times:before {\n content: '\\f00d';\n}\n\n.fa-times-circle:before {\n content: '\\f057';\n}\n\n.fa-times-hexagon:before {\n content: '\\f2ee';\n}\n\n.fa-times-octagon:before {\n content: '\\f2f0';\n}\n\n.fa-times-square:before {\n content: '\\f2d3';\n}\n\n.fa-tint:before {\n content: '\\f043';\n}\n\n.fa-toggle-off:before {\n content: '\\f204';\n}\n\n.fa-toggle-on:before {\n content: '\\f205';\n}\n\n.fa-trademark:before {\n content: '\\f25c';\n}\n\n.fa-train:before {\n content: '\\f238';\n}\n\n.fa-transgender:before {\n content: '\\f224';\n}\n\n.fa-transgender-alt:before {\n content: '\\f225';\n}\n\n.fa-trash:before {\n content: '\\f1f8';\n}\n\n.fa-trash-alt:before {\n content: '\\f2ed';\n}\n\n.fa-tree:before {\n content: '\\f1bb';\n}\n\n.fa-tree-alt:before {\n content: '\\f400';\n}\n\n.fa-trello:before {\n content: '\\f181';\n}\n\n.fa-triangle:before {\n content: '\\f2ec';\n}\n\n.fa-tripadvisor:before {\n content: '\\f262';\n}\n\n.fa-trophy:before {\n content: '\\f091';\n}\n\n.fa-trophy-alt:before {\n content: '\\f2eb';\n}\n\n.fa-truck:before {\n content: '\\f0d1';\n}\n\n.fa-truck-container:before {\n content: '\\f4dc';\n}\n\n.fa-truck-couch:before {\n content: '\\f4dd';\n}\n\n.fa-truck-loading:before {\n content: '\\f4de';\n}\n\n.fa-truck-moving:before {\n content: '\\f4df';\n}\n\n.fa-truck-ramp:before {\n content: '\\f4e0';\n}\n\n.fa-tty:before {\n content: '\\f1e4';\n}\n\n.fa-tumblr:before {\n content: '\\f173';\n}\n\n.fa-tumblr-square:before {\n content: '\\f174';\n}\n\n.fa-tv:before {\n content: '\\f26c';\n}\n\n.fa-tv-retro:before {\n content: '\\f401';\n}\n\n.fa-twitch:before {\n content: '\\f1e8';\n}\n\n.fa-twitter:before {\n content: '\\f099';\n}\n\n.fa-twitter-square:before {\n content: '\\f081';\n}\n\n.fa-typo3:before {\n content: '\\f42b';\n}\n\n.fa-uber:before {\n content: '\\f402';\n}\n\n.fa-uikit:before {\n content: '\\f403';\n}\n\n.fa-umbrella:before {\n content: '\\f0e9';\n}\n\n.fa-underline:before {\n content: '\\f0cd';\n}\n\n.fa-undo:before {\n content: '\\f0e2';\n}\n\n.fa-undo-alt:before {\n content: '\\f2ea';\n}\n\n.fa-uniregistry:before {\n content: '\\f404';\n}\n\n.fa-universal-access:before {\n content: '\\f29a';\n}\n\n.fa-university:before {\n content: '\\f19c';\n}\n\n.fa-unlink:before {\n content: '\\f127';\n}\n\n.fa-unlock:before {\n content: '\\f09c';\n}\n\n.fa-unlock-alt:before {\n content: '\\f13e';\n}\n\n.fa-untappd:before {\n content: '\\f405';\n}\n\n.fa-upload:before {\n content: '\\f093';\n}\n\n.fa-usb:before {\n content: '\\f287';\n}\n\n.fa-usd-circle:before {\n content: '\\f2e8';\n}\n\n.fa-usd-square:before {\n content: '\\f2e9';\n}\n\n.fa-user:before {\n content: '\\f007';\n}\n\n.fa-user-alt:before {\n content: '\\f406';\n}\n\n.fa-user-circle:before {\n content: '\\f2bd';\n}\n\n.fa-user-md:before {\n content: '\\f0f0';\n}\n\n.fa-user-plus:before {\n content: '\\f234';\n}\n\n.fa-user-secret:before {\n content: '\\f21b';\n}\n\n.fa-user-times:before {\n content: '\\f235';\n}\n\n.fa-users:before {\n content: '\\f0c0';\n}\n\n.fa-ussunnah:before {\n content: '\\f407';\n}\n\n.fa-utensil-fork:before {\n content: '\\f2e3';\n}\n\n.fa-utensil-knife:before {\n content: '\\f2e4';\n}\n\n.fa-utensil-spoon:before {\n content: '\\f2e5';\n}\n\n.fa-utensils:before {\n content: '\\f2e7';\n}\n\n.fa-utensils-alt:before {\n content: '\\f2e6';\n}\n\n.fa-vaadin:before {\n content: '\\f408';\n}\n\n.fa-venus:before {\n content: '\\f221';\n}\n\n.fa-venus-double:before {\n content: '\\f226';\n}\n\n.fa-venus-mars:before {\n content: '\\f228';\n}\n\n.fa-viacoin:before {\n content: '\\f237';\n}\n\n.fa-viadeo:before {\n content: '\\f2a9';\n}\n\n.fa-viadeo-square:before {\n content: '\\f2aa';\n}\n\n.fa-vial:before {\n content: '\\f492';\n}\n\n.fa-vials:before {\n content: '\\f493';\n}\n\n.fa-viber:before {\n content: '\\f409';\n}\n\n.fa-video:before {\n content: '\\f03d';\n}\n\n.fa-video-plus:before {\n content: '\\f4e1';\n}\n\n.fa-video-slash:before {\n content: '\\f4e2';\n}\n\n.fa-vimeo:before {\n content: '\\f40a';\n}\n\n.fa-vimeo-square:before {\n content: '\\f194';\n}\n\n.fa-vimeo-v:before {\n content: '\\f27d';\n}\n\n.fa-vine:before {\n content: '\\f1ca';\n}\n\n.fa-vk:before {\n content: '\\f189';\n}\n\n.fa-vnv:before {\n content: '\\f40b';\n}\n\n.fa-volleyball-ball:before {\n content: '\\f45f';\n}\n\n.fa-volume-down:before {\n content: '\\f027';\n}\n\n.fa-volume-mute:before {\n content: '\\f2e2';\n}\n\n.fa-volume-off:before {\n content: '\\f026';\n}\n\n.fa-volume-up:before {\n content: '\\f028';\n}\n\n.fa-vuejs:before {\n content: '\\f41f';\n}\n\n.fa-warehouse:before {\n content: '\\f494';\n}\n\n.fa-warehouse-alt:before {\n content: '\\f495';\n}\n\n.fa-watch:before {\n content: '\\f2e1';\n}\n\n.fa-weibo:before {\n content: '\\f18a';\n}\n\n.fa-weight:before {\n content: '\\f496';\n}\n\n.fa-weixin:before {\n content: '\\f1d7';\n}\n\n.fa-whatsapp:before {\n content: '\\f232';\n}\n\n.fa-whatsapp-square:before {\n content: '\\f40c';\n}\n\n.fa-wheelchair:before {\n content: '\\f193';\n}\n\n.fa-whistle:before {\n content: '\\f460';\n}\n\n.fa-whmcs:before {\n content: '\\f40d';\n}\n\n.fa-wifi:before {\n content: '\\f1eb';\n}\n\n.fa-wikipedia-w:before {\n content: '\\f266';\n}\n\n.fa-window:before {\n content: '\\f40e';\n}\n\n.fa-window-alt:before {\n content: '\\f40f';\n}\n\n.fa-window-close:before {\n content: '\\f410';\n}\n\n.fa-window-maximize:before {\n content: '\\f2d0';\n}\n\n.fa-window-minimize:before {\n content: '\\f2d1';\n}\n\n.fa-window-restore:before {\n content: '\\f2d2';\n}\n\n.fa-windows:before {\n content: '\\f17a';\n}\n\n.fa-wine-glass:before {\n content: '\\f4e3';\n}\n\n.fa-won-sign:before {\n content: '\\f159';\n}\n\n.fa-wordpress:before {\n content: '\\f19a';\n}\n\n.fa-wordpress-simple:before {\n content: '\\f411';\n}\n\n.fa-wpbeginner:before {\n content: '\\f297';\n}\n\n.fa-wpexplorer:before {\n content: '\\f2de';\n}\n\n.fa-wpforms:before {\n content: '\\f298';\n}\n\n.fa-wrench:before {\n content: '\\f0ad';\n}\n\n.fa-x-ray:before {\n content: '\\f497';\n}\n\n.fa-xbox:before {\n content: '\\f412';\n}\n\n.fa-xing:before {\n content: '\\f168';\n}\n\n.fa-xing-square:before {\n content: '\\f169';\n}\n\n.fa-y-combinator:before {\n content: '\\f23b';\n}\n\n.fa-yahoo:before {\n content: '\\f19e';\n}\n\n.fa-yandex:before {\n content: '\\f413';\n}\n\n.fa-yandex-international:before {\n content: '\\f414';\n}\n\n.fa-yelp:before {\n content: '\\f1e9';\n}\n\n.fa-yen-sign:before {\n content: '\\f157';\n}\n\n.fa-yoast:before {\n content: '\\f2b1';\n}\n\n.fa-youtube:before {\n content: '\\f167';\n}\n\n.fa-youtube-square:before {\n content: '\\f431';\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}\n\n/*!\n * Font Awesome Pro 5.0.9 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n */\n@font-face {\n font-family: 'Font Awesome 5 Pro';\n font-style: normal;\n font-weight: 400;\n src: url('../fonts/fa-regular-400.eot');\n src: url('../fonts/fa-regular-400.eot?#iefix') format('embedded-opentype'),\n url('../fonts/fa-regular-400.woff2') format('woff2'),\n url('../fonts/fa-regular-400.woff') format('woff'),\n url('../fonts/fa-regular-400.ttf') format('truetype'),\n url('../fonts/fa-regular-400.svg#fontawesome') format('svg');\n}\n\n.far {\n font-family: 'Font Awesome 5 Pro';\n font-weight: 400;\n}\n\n/*!\n * Font Awesome Pro 5.0.9 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n */\n@font-face {\n font-family: 'Font Awesome 5 Pro';\n font-style: normal;\n font-weight: 900;\n src: url('../fonts/fa-solid-900.eot');\n src: url('../fonts/fa-solid-900.eot?#iefix') format('embedded-opentype'),\n url('../fonts/fa-solid-900.woff2') format('woff2'),\n url('../fonts/fa-solid-900.woff') format('woff'),\n url('../fonts/fa-solid-900.ttf') format('truetype'),\n url('../fonts/fa-solid-900.svg#fontawesome') format('svg');\n}\n\n.fa,\n.fas {\n font-family: 'Font Awesome 5 Pro';\n font-weight: 900;\n}\n","$white: #fff;\n$black: #000;\n\n$grey050: hsl(212, 60%, 97%);\n$grey100: hsl(212, 50%, 93%);\n$grey200: hsl(212, 30%, 85%);\n$grey300: hsl(211, 13%, 65%);\n$grey350: hsl(211, 11%, 59%);\n$grey400: hsl(210, 10%, 53%);\n$grey500: hsl(211, 12%, 43%);\n$grey550: hsl(210, 13%, 40%);\n$grey600: hsl(209, 14%, 37%);\n$grey700: hsl(209, 18%, 30%);\n$grey800: hsl(209, 20%, 25%);\n$grey900: hsl(210, 24%, 16%);\n$grey1000: hsl(210, 24%, 10%);\n\n$blue050: #e3f8ff;\n$blue100: #b3ecff;\n$blue200: #81defd;\n$blue300: #5ed0fa;\n$blue400: #40c3f7;\n$blue500: #2bb0ed;\n$blue600: #1992d4;\n$blue700: #127fbf;\n$blue800: #0b69a3;\n$blue900: #035388;\n\n$cyan050: #e0fcff;\n$cyan100: #bef8fd;\n$cyan200: #87eaf2;\n$cyan300: #54d1db;\n$cyan400: #38bec9;\n$cyan500: #2cb1bc;\n$cyan600: #14919b;\n$cyan700: #0e7c86;\n$cyan800: #0a6c74;\n$cyan900: #044e54;\n\n$pink050: #ffe3ec;\n$pink100: #ffb8d2;\n$pink200: #ff8cba;\n$pink300: #f364a2;\n$pink400: #e8368f;\n$pink500: #da127d;\n$pink600: #bc0a6f;\n$pink700: #a30664;\n$pink800: #870557;\n$pink900: #620042;\n\n$red050: #ffe3e3;\n$red100: #ffbdbd;\n$red200: #ff9b9b;\n$red300: #f86a6a;\n$red400: #ef4e4e;\n$red500: #e12d39;\n$red600: #cf1124;\n$red700: #ab091e;\n$red800: #8a041a;\n$red900: #610316;\n\n$yellow050: #fffbea;\n$yellow100: #fff3c4;\n$yellow200: #fce588;\n$yellow300: #fadb5f;\n$yellow400: #f7c948;\n$yellow500: #f0b429;\n$yellow600: #de911d;\n$yellow700: #cb6e17;\n$yellow800: #b44d12;\n$yellow900: #8d2b0b;\n\n$teal050: #effcf6;\n$teal100: #c6f7e2;\n$teal200: #8eedc7;\n$teal300: #65d6ad;\n$teal400: #3ebd93;\n$teal500: #27ab83;\n$teal600: #199473;\n$teal700: #147d64;\n$teal800: #0c6b58;\n$teal900: #014d40;\n\n// submit button colors\n$primaryColor: $red500;\n$secondaryColor: $grey500;\n\n$inputColor: hsl(212, 25%, 50%);\n\n// text colors\n$textColor: $grey700;\n$mediumDarkTextColor: $grey550;\n$mediumTextColor: $grey550;\n$lightTextColor: $grey500;\n$linkColor: #2563eb;\n\n// menu colors\n$menuOptionColor: $textColor;\n$menuOptionActiveColor: $white;\n$menuOptionActiveBackgroundColor: $grey350;\n\n// hairline colors\n$hairlineColor: transparentize($grey800, 0.9);\n$mediumHairlineColor: transparentize($grey600, 0.75);\n$darkHairlineColor: transparentize($grey400, 0.5);\n\n// focus colors\n$lightFocusColor: $blue300;\n$mediumFocusColor: $blue500;\n$darkFocusColor: #0f74b1;\n\n// focus rings\n$lightFocusRing: 0 0 0 1px $lightFocusColor,\n 0 0 0 3px transparentize($lightFocusColor, 0.3);\n$mediumFocusRing: 0 0 0 1px $mediumFocusColor,\n 0 0 0 3px transparentize($mediumFocusColor, 0.3);\n$darkFocusRing: 0 0 0 1px $darkFocusColor,\n 0 0 0 3px transparentize($darkFocusColor, 0.3);\n\n// selection colors\n$lightSelColor: $grey200;\n$darkSelColor: $grey600;\n\n// alert/notice colors\n$errorColor: $red600;\n$warningColor: $yellow800;\n$successColor: $teal500;\n$noticeColor: $blue800;\n\n// UI element styles\n$smallBorderRadius: 3px;\n$mediumBorderRadius: 4px;\n$largeBorderRadius: 5px;\n\n$menuBorderRadius: $mediumBorderRadius;\n$checkboxSize: 16px;\n$radioSize: 16px;\n\n@mixin sans-serif-font {\n font-family: system-ui, BlinkMacSystemFont, -apple-system, 'Segoe UI',\n 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans',\n 'Helvetica Neue', sans-serif;\n}\n\n@mixin fixed-width-font {\n font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier,\n monospace;\n font-size: 0.9em !important;\n}\n\n// Other\n\n@mixin svg-mask($color) {\n rect,\n circle,\n ellipse,\n line,\n polyline,\n polygon,\n path,\n text {\n fill: $color;\n stroke-width: 0;\n transition: fill linear 100ms;\n }\n}\n\n@mixin icon {\n font-family: 'Craft';\n speak: none;\n -webkit-font-feature-settings: 'liga', 'dlig';\n -moz-font-feature-settings: 'liga=1, dlig=1';\n -moz-font-feature-settings: 'liga', 'dlig';\n -ms-font-feature-settings: 'liga', 'dlig';\n -o-font-feature-settings: 'liga', 'dlig';\n font-feature-settings: 'liga', 'dlig';\n text-rendering: optimizeLegibility;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n direction: ltr; // Fixes a rendering issue in Chrome/Win\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n\n display: inline-block;\n text-align: center;\n font-style: normal;\n vertical-align: middle;\n word-wrap: normal !important;\n user-select: none;\n\n opacity: var(--icon-opacity);\n}\n\n@mixin angle($dir: down, $color: currentColor, $width: 2px) {\n display: block;\n content: '';\n font-size: 0;\n width: 7px;\n height: 7px;\n border: solid $color;\n border-width: 0 $width $width 0;\n opacity: 0.8;\n\n @if $dir == up {\n transform: rotate(225deg);\n } @else if $dir == down {\n transform: rotate(45deg);\n } @else if $dir == left {\n body.ltr & {\n transform: rotate(135deg);\n }\n body.rtl & {\n transform: rotate(-45deg);\n }\n } @else if $dir == right {\n body.ltr & {\n transform: rotate(-45deg);\n }\n body.rtl & {\n transform: rotate(135deg);\n }\n }\n}\n\n@mixin clearafter {\n content: '';\n display: block;\n height: 0;\n clear: both;\n visibility: hidden;\n}\n\n@mixin shadow {\n box-shadow: 0 1px 5px -1px transparentize($grey900, 0.8);\n}\n\n@mixin pane {\n background: $white;\n box-shadow: 0 0 0 1px $grey200, 0 2px 12px transparentize($grey200, 0.5);\n\n &:focus {\n box-shadow: var(--focus-ring);\n }\n}\n\n@mixin modal {\n border-radius: $largeBorderRadius;\n background-color: $white;\n box-shadow: 0 25px 100px transparentize($grey900, 0.5);\n}\n\n@mixin light-on-dark-text() {\n // Make light on dark text sharp on Macs\n // (sub-pixel antialiasing looks too bold/blurry with light text on dark background)\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-weight: 500;\n}\n\n@mixin light-focus-ring() {\n --focus-ring: 0 0 0 1px hsl(var(--light-focus-hsl)),\n 0 0 0 3px hsla(var(--light-focus-hsl), 0.7);\n}\n\n// RTL stuff\n\n@mixin left($left) {\n body.ltr & {\n left: $left;\n }\n body.rtl & {\n right: $left;\n }\n}\n\n@mixin right($right) {\n body.ltr & {\n right: $right;\n }\n body.rtl & {\n left: $right;\n }\n}\n\n@mixin alignleft {\n body.ltr & {\n text-align: left;\n }\n body.rtl & {\n text-align: right;\n }\n}\n\n@mixin alignright {\n body.ltr & {\n text-align: right;\n }\n body.rtl & {\n text-align: left;\n }\n}\n\n@mixin border-left($params...) {\n body.ltr & {\n border-left: $params;\n }\n body.rtl & {\n border-right: $params;\n }\n}\n\n@mixin border-right($params...) {\n body.ltr & {\n border-right: $params;\n }\n body.rtl & {\n border-left: $params;\n }\n}\n\n@mixin border-left-width($param) {\n body.ltr & {\n border-left-width: $param;\n }\n body.rtl & {\n border-right-width: $param;\n }\n}\n\n@mixin border-right-width($param) {\n body.ltr & {\n border-right-width: $param;\n }\n body.rtl & {\n border-left-width: $param;\n }\n}\n\n@mixin border-radius($tl, $tr, $br, $bl) {\n body.ltr & {\n border-radius: $tl $tr $br $bl;\n }\n body.rtl & {\n border-radius: $tr $tl $bl $br;\n }\n}\n\n@mixin border-top-left-radius($params...) {\n body.ltr & {\n border-top-left-radius: $params;\n }\n body.rtl & {\n border-top-right-radius: $params;\n }\n}\n\n@mixin border-top-right-radius($params...) {\n body.ltr & {\n border-top-right-radius: $params;\n }\n body.rtl & {\n border-top-left-radius: $params;\n }\n}\n\n@mixin border-bottom-left-radius($params...) {\n body.ltr & {\n border-bottom-left-radius: $params;\n }\n body.rtl & {\n border-bottom-right-radius: $params;\n }\n}\n\n@mixin border-bottom-right-radius($params...) {\n body.ltr & {\n border-bottom-right-radius: $params;\n }\n body.rtl & {\n border-bottom-left-radius: $params;\n }\n}\n\n@mixin floatleft {\n body.ltr & {\n float: left;\n }\n body.rtl & {\n float: right;\n }\n}\n\n@mixin floatright {\n body.ltr & {\n float: right;\n }\n body.rtl & {\n float: left;\n }\n}\n\n@mixin margin($t, $r, $b, $l, $important: '') {\n body.ltr & {\n margin: $t $r $b $l unquote($important);\n }\n body.rtl & {\n margin: $t $l $b $r unquote($important);\n }\n}\n\n@mixin margin-left($margin...) {\n body.ltr & {\n margin-left: $margin;\n }\n body.rtl & {\n margin-right: $margin;\n }\n}\n\n@mixin margin-right($margin...) {\n body.ltr & {\n margin-right: $margin;\n }\n body.rtl & {\n margin-left: $margin;\n }\n}\n\n@mixin padding($t, $r, $b, $l, $important: '') {\n body.ltr & {\n padding: $t $r $b $l unquote($important);\n }\n body.rtl & {\n padding: $t $l $b $r unquote($important);\n }\n}\n\n@mixin padding-left($padding...) {\n body.ltr & {\n padding-left: $padding;\n }\n body.rtl & {\n padding-right: $padding;\n }\n}\n\n@mixin padding-right($padding...) {\n body.ltr & {\n padding-right: $padding;\n }\n body.rtl & {\n padding-left: $padding;\n }\n}\n\n// Misc\n\n@mixin dark-inputs {\n @include placeholder-styles($grey400);\n\n .btn,\n .select:not(.selectize) select {\n background-color: $grey200;\n\n &:focus,\n &:hover {\n background-color: darken($grey200, 5%);\n }\n\n &:active,\n &.active {\n background-color: darken($grey200, 10%);\n }\n }\n\n .text {\n background-color: $grey200;\n\n &:focus {\n background-color: darken($grey200, 5%);\n }\n }\n}\n\n@mixin header-btn {\n width: 30px;\n height: 30px;\n padding-left: 0;\n padding-right: 0;\n\n &:not(:hover):not(:active):not(.active) {\n background-color: transparent;\n }\n &:not(:active):not(.active):hover {\n background-color: transparentize($grey300, 0.85);\n }\n}\n\n@mixin h6-styles {\n margin: 14px 0 3px;\n font-size: 11px;\n line-height: 1.2;\n color: $lightTextColor;\n text-transform: uppercase;\n}\n\n@mixin token-styles {\n display: inline-block;\n border-radius: $smallBorderRadius;\n padding: 3px 7px;\n font-size: 12px;\n line-height: 14px;\n color: $textColor;\n background-color: $grey100;\n}\n\n@mixin active-token-styles {\n background-color: $grey200;\n}\n\n@mixin menu-styles {\n z-index: 100;\n border-radius: $menuBorderRadius;\n padding: 0 14px;\n overflow: auto;\n background: $white;\n user-select: none;\n box-shadow: 0 0 0 1px transparentize($grey900, 0.9),\n 0 5px 20px transparentize($grey900, 0.75);\n}\n\n@mixin menu-option-styles {\n margin: 0 -14px;\n padding: 10px 14px;\n color: $menuOptionColor;\n text-decoration: none;\n white-space: nowrap;\n}\n\n@mixin menu-option-active-styles {\n color: $menuOptionActiveColor;\n background-color: $menuOptionActiveBackgroundColor;\n}\n\n@mixin disclosure-link-hover-styles {\n color: $menuOptionColor;\n background-color: $grey050;\n}\n\n@mixin input-styles {\n border-radius: $smallBorderRadius;\n border: 1px solid transparentize($inputColor, 0.75);\n background-color: hsl(212, 50%, 99%);\n background-clip: padding-box;\n}\n\n@mixin input-focused-styles {\n border-color: hsl(var(--dark-focus-hsl));\n box-shadow: 0 0 0 2px hsla(var(--dark-focus-hsl), 0.7);\n}\n\n@mixin placeholder-styles($color) {\n ::-webkit-input-placeholder {\n color: $color;\n }\n\n input:-ms-input-placeholder {\n color: $color;\n }\n\n ::-ms-input-placeholder {\n color: $color;\n }\n\n :-moz-placeholder {\n color: $color;\n }\n\n ::-moz-placeholder {\n color: $color;\n }\n\n ::placeholder {\n color: $color;\n }\n}\n\n@mixin select-styles {\n position: relative;\n border-radius: $largeBorderRadius;\n white-space: nowrap;\n}\n\n@mixin select-container-styles {\n max-width: 100%;\n position: relative;\n :not(.flex) > & {\n display: inline-block;\n }\n}\n\n@mixin select-arrow-styles {\n @include angle;\n position: absolute;\n z-index: 1;\n top: calc(50% - 5px);\n @include right(9px);\n user-select: none;\n pointer-events: none;\n}\n\n@mixin select-input-styles {\n display: block;\n position: relative;\n max-width: 100%;\n border: none;\n @include padding(7px, 22px, 7px, 10px);\n font-size: 14px;\n line-height: 20px;\n color: $textColor;\n background-color: hsl(212, 25%, 90%);\n appearance: none;\n // from https://stackoverflow.com/a/15933790/1688568\n &::-ms-expand {\n display: none;\n }\n}\n\n@mixin select-input-fullwidth-styles {\n min-width: 100%;\n}\n\n@mixin select-input-focused-styles {\n outline-color: transparent;\n background-color: hsl(212, 25%, 85%);\n box-shadow: var(--focus-ring);\n}\n\n@mixin touch-target {\n height: var(--touch-target-size);\n width: var(--touch-target-size);\n}\n\n@mixin visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n@mixin readable {\n font-size: 16px;\n line-height: 22px;\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin: 24px 0 16px;\n font-weight: 600;\n }\n\n h1 {\n font-size: 32px;\n line-height: 40px;\n color: #000;\n }\n\n h2 {\n font-size: 24px;\n line-height: 30px;\n }\n\n h3 {\n font-size: 20px;\n line-height: 24px;\n }\n\n h4 {\n font-size: 16px;\n line-height: 20px;\n }\n\n h5 {\n font-size: 14px;\n line-height: 18px;\n }\n\n h6 {\n font-size: 13.6px;\n line-height: 17px;\n color: $mediumTextColor;\n }\n\n ul,\n ol {\n margin: 1em 0;\n @include padding-left(2em);\n }\n\n ul li {\n list-style-type: disc;\n }\n\n li + li {\n margin-top: 0.25em;\n }\n\n blockquote {\n margin: 16px 0;\n\n &:not(.note) {\n padding: 0 16px;\n color: $mediumTextColor;\n @include border-left(4px solid $hairlineColor);\n }\n\n &.note {\n position: relative;\n border-radius: 4px;\n padding: 1em;\n @include padding-left(56px);\n border: 1px solid;\n\n &:not(.tip):not(.warning) {\n border-color: $errorColor;\n color: #bf503f;\n\n &:before {\n content: 'alert';\n color: $errorColor;\n }\n }\n\n &.tip {\n border-color: $linkColor;\n color: $mediumTextColor;\n\n &:before {\n content: 'lightbulb';\n color: $linkColor;\n }\n }\n\n &.warning {\n border-color: $warningColor;\n color: #cf783a;\n\n &:before {\n content: 'alert';\n color: $warningColor;\n }\n }\n\n &:before {\n @include icon;\n position: absolute;\n top: 12px;\n @include left(16px);\n font-size: 30px;\n width: 24px;\n }\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/FeedMe.css","mappings":"AAAA;;;ECAA,CAIA,wBAKE,kCACA,mCACA,qBACA,kBACA,oBAEA,aAAY,CADZ,mBACA,CAGF,OACE,oBACA,kBACA,wBAGF,OACE,gBAGF,OACE,iBAGF,OACE,cAGF,OACE,cAGF,OACE,cAGF,OACE,cAGF,OACE,cAGF,OACE,cAGF,OACE,cAGF,OACE,cAGF,OACE,cAGF,QACE,eAGF,OACE,kBACA,aAGF,OACE,qBACA,kBACA,eAEF,UACE,kBAGF,OACE,UAIA,oBAHA,kBACA,kBACA,SACA,CAGF,WACE,wBACA,mBACA,yBAGF,cACE,WAGF,eACE,YAGF,yFAKE,kBAGF,8FAKE,iBAGF,SACE,6CACA,6EAGF,UACE,+CACA,iFAGF,2BACE,GACE,+BACA,uBAEF,GACE,gCACA,yBAIJ,sBACE,GACE,+BACA,iDAEF,GACE,gCACA,oDAPJ,mBACE,GACE,+BACA,iDAEF,GACE,gCACA,oDAIJ,cACE,sEACA,gCACA,mDAGF,eACE,sEACA,iCACA,qDAGF,eACE,sEACA,iCACA,qDAGF,oBACE,gFACA,6BACA,6CAGF,kBAEE,6BACA,6CAGF,uDALE,+EAQA,CAHF,qCAEE,4BACA,2CAGF,gHAKE,oBACA,YAGF,UACE,qBACA,WACA,gBACA,kBACA,sBACA,UAGF,0BAEE,OACA,kBACA,kBACA,WAGF,aACE,oBAGF,aACE,cAGF,YACE,WAKF,iBACE,YAGF,2BACE,YAGF,oBACE,YAGF,wBACE,YAGF,wBACE,YAGF,kBACE,YAGF,eACE,YAGF,oBACE,YAGF,0BACE,YAGF,uBACE,YAGF,mBACE,YAGF,wBACE,YAGF,yBACE,YAGF,sBACE,YAGF,uBACE,YAGF,qBACE,YAGF,kBACE,YAGF,sBACE,YAGF,qBACE,YAGF,+CACE,YAGF,kBACE,YAGF,kBACE,YAGF,mBACE,YAGF,qBACE,YAGF,6BACE,YAGF,6BACE,YAGF,8BACE,YAGF,2BACE,YAGF,sBACE,YAGF,sBACE,YAGF,uBACE,YAGF,oBACE,YAGF,yBACE,YAGF,mBACE,YAGF,qBACE,YAGF,yBACE,YAGF,iBACE,YAGF,iBACE,YAGF,qBACE,YAGF,mBACE,YAGF,iCACE,YAGF,iCACE,YAGF,kCACE,YAGF,+BACE,YAGF,0BACE,YAGF,iCACE,YAGF,+BACE,YAGF,gCACE,YAGF,8BACE,YAGF,0BACE,YAGF,2BACE,YAGF,iCACE,YAGF,iCACE,YAGF,kCACE,YAGF,+BACE,YAGF,+BACE,YAGF,6BACE,YAGF,8BACE,YAGF,4BACE,YAGF,wBACE,YAGF,6BACE,YAGF,6BACE,YAGF,8BACE,YAGF,2BACE,YAGF,sBACE,YAGF,6BACE,YAGF,2BACE,YAGF,4BACE,YAGF,0BACE,YAGF,sBACE,YAGF,uBACE,YAGF,6BACE,YAGF,6BACE,YAGF,8BACE,YAGF,2BACE,YAGF,2BACE,YAGF,yBACE,YAGF,0BACE,YAGF,wBACE,YAGF,oBACE,YAGF,kBACE,YAGF,sBACE,YAGF,wBACE,YAGF,wBACE,YAGF,oBACE,YAGF,oBACE,YAGF,uCACE,YAGF,oBACE,YAGF,sBACE,YAGF,cACE,YAGF,mBACE,YAGF,6BACE,YAGF,wBACE,YAGF,mBACE,YAGF,kBACE,YAGF,eACE,YAGF,oBACE,YAGF,iBACE,YAGF,uBACE,YAGF,yBACE,YAGF,eACE,YAGF,oBACE,YAGF,oBACE,YAGF,mBACE,YAGF,uBACE,YAGF,wBACE,YAGF,wBACE,YAGF,gBACE,YAGF,oBACE,YAGF,yBACE,YAGF,2BACE,YAGF,2BACE,YAGF,gBACE,YAGF,wBACE,YAGF,yBACE,YAGF,wBACE,YAGF,wBACE,YAGF,2BACE,YAGF,yBACE,YAGF,kCACE,YAGF,eACE,YAGF,gBACE,YAGF,mBACE,YAGF,0BACE,YAGF,gBACE,YAGF,sBACE,YAGF,mBACE,YAGF,qBACE,YAGF,sBACE,YAGF,yBACE,YAGF,qBACE,YAGF,mBACE,YAGF,gBACE,YAGF,qBACE,YAGF,sBACE,YAGF,mBACE,YAGF,iBACE,YAGF,mBACE,YAGF,qBACE,YAGF,qBACE,YAGF,uBACE,YAGF,gBACE,YAGF,gBACE,YAGF,gBACE,YAGF,gBACE,YAGF,sBACE,YAGF,oBACE,YAGF,wBACE,YAGF,wBACE,YAGF,eACE,YAGF,mBACE,YAGF,qBACE,YAGF,uBACE,YAGF,oBACE,YAGF,qBACE,YAGF,oBACE,YAGF,kBACE,YAGF,mBACE,YAGF,iBACE,YAGF,qBACE,YAGF,wBACE,YAGF,mBACE,YAGF,qBACE,YAGF,6BACE,YAGF,mBACE,YAGF,eACE,YAGF,eACE,YAGF,oBACE,YAGF,oBACE,YAGF,oBACE,YAGF,gBACE,YAGF,4BACE,YAGF,eACE,YAGF,sBACE,YAGF,sBACE,YAGF,oBACE,YAGF,wBACE,YAGF,0BACE,YAGF,yBACE,YAGF,gCACE,YAGF,0BACE,YAGF,yBACE,YAGF,0BACE,YAGF,kBACE,YAGF,sBACE,YAGF,wBACE,YAGF,oBACE,YAGF,eACE,YAGF,6BACE,YAGF,6BACE,YAGF,8BACE,YAGF,2BACE,YAGF,sBACE,YAGF,sBACE,YAGF,uBACE,YAGF,6BACE,YAGF,6BACE,YAGF,8BACE,YAGF,2BACE,YAGF,oBACE,YAGF,2BACE,YAGF,qBACE,YAGF,yBACE,YAGF,mBACE,YAGF,wBACE,YAGF,0BACE,YAGF,uBACE,YAGF,kBACE,YAGF,yBACE,YAGF,qBACE,YAGF,qBACE,YAGF,mBACE,YAGF,sBACE,YAGF,uBACE,YAGF,sBACE,YAGF,qBACE,YAGF,sBACE,YAGF,qBACE,YAGF,iBACE,YAGF,wBACE,YAGF,wBACE,YAGF,iBACE,YAGF,wBACE,YAGF,4BACE,YAGF,uBACE,YAGF,uBACE,YAGF,2BACE,YAGF,sBACE,YAGF,0BACE,YAGF,wBACE,YAGF,4BACE,YAGF,sBACE,YAGF,0BACE,YAGF,uBACE,YAGF,2BACE,YAGF,sBACE,YAGF,0BACE,YAGF,+BACE,YAGF,+BACE,YAGF,gCACE,YAGF,6BACE,YAGF,+BACE,YAGF,+BACE,YAGF,gCACE,YAGF,6BACE,YAGF,wBACE,YAGF,wBACE,YAGF,yBACE,YAGF,+BACE,YAGF,+BACE,YAGF,gCACE,YAGF,6BACE,YAGF,sBACE,YAGF,iBACE,YAGF,kBACE,YAGF,kBACE,YAGF,wBACE,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uBACE,YAGF,qBACE,YAGF,6BACE,YAGF,qBACE,YAGF,mBACE,YAGF,kBACE,YAGF,kBACE,YAGF,uBACE,YAGF,0BACE,YAGF,mBACE,YAGF,iBACE,YAGF,kBACE,YAGF,cACE,YAGF,qBACE,YAGF,oBACE,YAGF,eACE,YAGF,oBACE,YAGF,kBACE,YAGF,uBACE,YAGF,yBACE,YAGF,kBACE,YAGF,gBACE,YAGF,oBACE,YAGF,kBACE,YAGF,mBACE,YAGF,kBACE,YAGF,yBACE,YAGF,gBACE,YAGF,sBACE,YAGF,mBACE,YAGF,iBACE,YAGF,gBACE,YAGF,sBACE,YAGF,0BACE,YAGF,oBACE,YAGF,wBACE,YAGF,qBACE,YAGF,qBACE,YAGF,gBACE,YAGF,gBACE,YAGF,oBACE,YAGF,uBACE,YAGF,kBACE,YAGF,iBACE,YAGF,qBACE,YAGF,gBACE,YAGF,oBACE,YAGF,mBACE,YAGF,mBACE,YAGF,0BACE,YAGF,gBACE,YAGF,oBACE,YAGF,qBACE,YAGF,yBACE,YAGF,+BACE,YAGF,+BACE,YAGF,gCACE,YAGF,6BACE,YAGF,2BACE,YAGF,2BACE,YAGF,4BACE,YAGF,yBACE,YAGF,oBACE,YAGF,sBACE,YAGF,oBACE,YAGF,gBACE,YAGF,mBACE,YAGF,iBACE,YAGF,kBACE,YAGF,gBACE,YAGF,eACE,YAGF,sBACE,YAGF,0BACE,YAGF,mBACE,YAGF,qBACE,YAGF,gBACE,YAGF,uBACE,YAGF,uBACE,YAGF,yBACE,YAGF,yBACE,YAGF,kBACE,YAGF,mBACE,YAGF,kBACE,YAGF,oBACE,YAGF,kBACE,YAGF,iBACE,YAGF,kBACE,YAGF,eACE,YAGF,mBACE,YAGF,qBACE,YAGF,sBACE,YAGF,0BACE,YAGF,4BACE,YAGF,qBACE,YAGF,iBACE,YAGF,wBACE,YAGF,yBACE,YAGF,yBACE,YAGF,wBACE,YAGF,eACE,YAGF,oBACE,YAGF,kBACE,YAGF,kBACE,YAGF,sBACE,YAGF,0BACE,YAGF,8BACE,YAGF,gBACE,YAGF,kBACE,YAGF,sBACE,YAGF,0BACE,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BACE,YAGF,0BACE,YAGF,iBACE,YAGF,gBACE,YAGF,iBACE,YAGF,oBACE,YAGF,qBACE,YAGF,gBACE,YAGF,oBACE,YAGF,uBACE,YAGF,4BACE,YAGF,sBACE,YAGF,kBACE,YAGF,kBACE,YAGF,sBACE,YAGF,mBACE,YAGF,kBACE,YAGF,eACE,YAGF,sBACE,YAGF,sBACE,YAGF,gBACE,YAGF,oBACE,YAGF,uBACE,YAGF,mBACE,YAGF,qBACE,YAGF,uBACE,YAGF,sBACE,YAGF,iBACE,YAGF,oBACE,YAGF,wBACE,YAGF,yBACE,YAGF,yBACE,YAGF,oBACE,YAGF,wBACE,YAGF,kBACE,YAGF,iBACE,YAGF,wBACE,YAGF,sBACE,YAGF,mBACE,YAGF,kBACE,YAGF,yBACE,YAGF,gBACE,YAGF,iBACE,YAGF,iBACE,YAGF,iBACE,YAGF,sBACE,YAGF,uBACE,YAGF,iBACE,YAGF,wBACE,YAGF,mBACE,YAGF,gBACE,YAGF,cACE,YAGF,eACE,YAGF,2BACE,YAGF,uBACE,YAGF,uBACE,YAGF,sBACE,YAGF,qBACE,YAGF,iBACE,YAGF,qBACE,YAGF,yBACE,YAGF,iBACE,YAGF,iBACE,YAGF,kBACE,YAGF,kBACE,YAGF,oBACE,YAGF,2BACE,YAGF,sBACE,YAGF,mBACE,YAGF,iBACE,YAGF,gBACE,YAGF,uBACE,YAGF,kBACE,YAGF,sBACE,YAGF,wBACE,YAGF,2BACE,YAGF,2BACE,YAGF,0BACE,YAGF,mBACE,YAGF,sBACE,YAGF,oBACE,YAGF,qBACE,YAGF,4BACE,YAGF,sBACE,YAGF,sBACE,YAGF,mBACE,YAGF,kBACE,YAGF,iBACE,YAGF,gBACE,YAGF,gBACE,YAGF,uBACE,YAGF,wBACE,YAGF,iBACE,YAGF,kBACE,YAGF,gCACE,YAGF,gBACE,YAGF,oBACE,YAGF,iBACE,YAGF,mBACE,YAGF,0BACE,YAGF,SAEE,mBADA,SAEA,WACA,YACA,gBACA,UACA,kBACA,UAGF,mDAEE,UACA,YACA,SACA,iBACA,gBACA,WAGF;;;EAAA,CAIA,WACE,gCACA,kBACA,gBACA,+TACA,MAQA;;;EAIF,CAIA,WACE,gCACA,kBACA,gBACA,mTACA,eArBA,+BA8BA,CATA,SAOF,eAEE,sCD7oJF,oDAIA,sEAGE,0DAMA,uBAEA,CAHF,6BAGE,eACA,CAJF,eAIE,2BAIF,aACE,cACA,CAFF,eAHE,eAGF,CAEE,cACA,+BAMF,aAJE,SAIF,oCASA,mBAEE,4BAEA,CAJF,cACE,gBACA,CAFF,YAIE,uEAIF,oBAEE,CAFF,gBAEE,mFAGA,wDAKF,6CACE,gCASA,SAGF,iCACE,SAGF,iCACE,SAGF,kDAIA,4DAIA,iDAIA,0DAIA,kDAEE,kBAGF,yBASE,iDAEA,6IACA,CALF,oBAEE,CARA,WAMF,kBAKE,+BAGA,sDAGE,qCASA,0BACA,CAKA,mBACA,CAZA,kCAEA,CAZF,iBAGA,CAgBE,cAEA,CARA,iBACA,CAPA,mBACA,CADA,gBAEA,cAcA,mBACA,CANA,kBANA,iBACA,CAPA,kCAEA,mBACA,CASA,mBACA,CAHA,wBACA,CAKA,gBACA,CATA,qBACA,CAGA,SAMA,wCE6GF,iDAGA,kDF3GA,+DAMF,8CACE,4DAIA,mFAKF,8CACE,wCAKF,uIAIA,4EAMA,2EAIA,oDAQA,6DASA,iEAII,gCADF,kCACE,yEAgBJ,uFAIA,WACE,iBACA,CAFF,+BACE,CACA,SACA,+DAKF,uCACE,qEAKF,wBACE,CADF,gBACE,iBACA,2DAUA,0BACE,CADF,kBAEE,gEAWJ,qEAQA,2BACE,oBACA,cAFF,cAEE,sDAKA,0BACA,mBACA,CAHF,+CACE,kBAEA,2DAEA,sDASF,mDAIA,iEAIA,kEAIA,mFAIA,6GAKA,gEAUE,aACA,CAFF,oCACE,CACA,iBACA,eACA,gCAEA,2BACA,uEAIF,cACE,kCACA,4DACA,yBACA,iBAFA,eAEA,0CAIE,aACA,CAFF,8CAEE,mCAUJ,6DAIA,4EAIA,uFAIA,+EAKA,4DAIA,4DAIA,+EAIA,8DAIA,mFAIA,0FAIA,sCACE,4BACA,YAGF,qBAQA,eARA,kBAQA,CACE,mCAIF,+CAIA,gDAIA,kBACE,yBACA,CACA,kBAHF,wBAEE,WACA,CACA,YAKA,eACA,CAKA,kBACA,CAXA,iBAIA,CACA,oBAEA,CARA,oBACA,CASA,cACA,CAFA,uBACA,CACA,gBAHA,gBACA,CAJA,aAQA,wBACA,kBAEA,kBACE,yBAIJ,CAME,qCALA,2BAIF,oBAOE,CANA,sBAIA,0BACA,mBACA,CAFA,QAEA,wCAGF,8BACE,aAGF,kBAQA,qBAEE,CAFF,eARA,iBAUE,qBACA,cAGF,sBACE,WAGF,CAHE,UAGF,2BAEE,oBAGF,gBACE,sBACA,cAGF,0CAIA,wCACE,kBAGF,iCACE,CACA,iCAEA,CAHA,YAGA,8CAQF,uBAEE,CAFF,YAEE,kCAEA,0DAJF,UAIE,sCAGF,mCAQA,cAPE,iBAOF,oBACE,cACA,CAGF,qCAME,6CACA,CAHF,oBACE,cADF,kBAGE,0CAEA,oDAEE,cAIJ,YACE,gBACA,CAFF,iBAEE,qBAEA,cAGF,iBACE,CADF,YACE,0BAEA,eAGF","sources":["webpack:///./scss/feed-me.scss","webpack:///./scss/_font-awesome.scss","webpack:///../../../../../node_modules/@craftcms/sass/_mixins.scss"],"sourcesContent":["// ==========================================================================\n\n// Feed Me for Craft CMS\n\n// ==========================================================================\n\n@import '@craftcms/sass/mixins';\n\n// ==========================================================================\n// Third Party\n// ==========================================================================\n\n@import 'font-awesome';\n\n// ==========================================================================\n// Feeds Index\n// ==========================================================================\n\n// .fa {\n// vertical-align: middle;\n// }\n\n// .fa-icon.direct .fa-external-link,\n// .fa-icon .fa-info-circle,\n// .fa-icon .fa-info-circle,\n// .fa-icon.debug .fa-bug {\n// color: rgba(0, 0, 0, 0.2);\n// }\n\n// .fa-icon.direct:hover .fa-external-link,\n// .fa-icon:hover .fa-info-circle,\n// .fa-icon.debug:hover .fa-bug {\n// color: #0d78f2;\n// }\n\nbody.ltr .table-feed-me .thin.action {\n padding-left: 10px;\n}\n\n.table-feed-me .thin.action .icon {\n color: var(--ui-control-color);\n\n &:hover {\n color: var(--link-color);\n }\n}\n\n.table-feed-me .element-group-sub {\n display: block;\n font-size: 11px;\n line-height: 1.2;\n color: rgba(51, 63, 77, 0.5);\n font-weight: bold;\n}\n\n.table-feed-me .index-url {\n font-weight: 400;\n font-size: 12px;\n color: #8f98a3;\n display: block;\n margin-top: 5px;\n}\n\n// Settings Pane\n.table-feed-me .settings-pane {\n padding: 0;\n display: none;\n}\n\n// #feeds [data-id=\"1-settings\"] .settings-pane {\n// display: table-cell;\n// }\n\n.table-feed-me .settings-pane-wrap {\n background: #f6f7f8;\n padding: 15px;\n font-size: 12px;\n line-height: 1.4;\n box-shadow: 0 0 0 1px #e4e6e8;\n}\n\n.table-feed-me .settings-pane .icon,\n.table-feed-me .settings-pane .fa {\n margin-right: 3px;\n color: rgba(0, 0, 0, 0.2);\n\n &:hover {\n color: rgba(0, 0, 0, 0.2);\n }\n}\n\n#feeds .settings-pane .input input {\n font-size: 12px;\n}\n\n// ==========================================================================\n// Field-Mapping Step\n// ==========================================================================\n\n.feedme-mapping {\n // table-layout: fixed;\n font-size: 13px;\n}\n\n.feedme-mapping th:nth-child(1) {\n width: 25%;\n}\n\n.feedme-mapping th:nth-child(2) {\n width: 40%;\n}\n\n.feedme-mapping th:nth-child(3) {\n width: 25%;\n}\n\n.feedme-mapping td.col-field .field.instructions {\n line-height: 18px;\n}\n\n.feedme-mapping td.col-map .field .heading {\n font-size: 11px;\n}\n\n.feedme-mapping td.col-map .field {\n margin: 5px 0;\n}\n\n.feedme-mapping td.col-field .field > .heading {\n font-size: 12px;\n margin-bottom: 0;\n}\n\n.feedme-mapping td {\n vertical-align: top;\n}\n\n// Hide the initial select field onload, because we're using Selectize. But - its a nasty UI shift before/after\n// the JS loads, so we're fudging it here for some nicer UI without things shifting all over the page.\n\n.feedme-mapping .select {\n height: 32px;\n position: relative;\n display: inline-block;\n background-image: linear-gradient(#fff, #fafafa);\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.025),\n 0 1px 1px rgba(0, 0, 0, 0.1);\n\n &:after {\n font-family: 'Craft';\n speak: none;\n font-feature-settings: 'liga', 'dlig';\n text-rendering: optimizeLegibility;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n direction: ltr;\n display: inline-block;\n text-align: center;\n font-style: normal;\n vertical-align: middle;\n word-wrap: normal !important;\n user-select: none;\n position: absolute;\n z-index: 1;\n top: calc(50% - 5px);\n font-size: 10px;\n content: 'downangle';\n user-select: none;\n pointer-events: none;\n @include right(9px);\n }\n\n &.selectize select {\n opacity: 0;\n }\n}\n\n// Some extra styles for Selectize, so its a bit more inline with Craft itself\n.feedme-mapping .selectize.select .selectize-control {\n box-shadow: none;\n background: none;\n max-width: 100%;\n\n &:after {\n display: none;\n }\n}\n\n.feedme-mapping .selectize.select .selectize-control .selectize-input {\n box-shadow: none;\n background: none;\n font-size: 13px;\n}\n\n.feedme-mapping .selectize-input input {\n position: relative !important;\n}\n\n.feedme-mapping .selectize-dropdown [data-selectable],\n.feedme-mapping .selectize-dropdown .optgroup-header {\n padding: 3px 10px;\n font-size: 12px;\n}\n\n.feedme-mapping .selectize-dropdown-content {\n max-height: 600px;\n}\n\n.feedme-mapping .selectize-input div[data-value='noimport'] {\n color: #b9bfc6;\n}\n\n//\n// Extra Field Settings - tiny bit smaller\n//\n\n.feedme-mapping .field-extra-settings {\n font-size: 11px;\n}\n\n// .feedme-mapping .field-extra-settings input.checkbox + label:before,\n// .feedme-mapping .field-extra-settings div.checkbox:before {\n// top: 0;\n// }\n\n.feedme-mapping .field-extra-settings .select {\n height: 22px;\n\n select {\n padding: 3px 22px 5px 8px !important;\n font-size: 11px;\n line-height: 13px;\n }\n}\n\n// .feedme-mapping .field-extra-settings .selectize-dropdown [data-selectable],\n// .feedme-mapping .field-extra-settings .selectize-dropdown .optgroup-header {\n// padding: 3px 8px;\n// font-size: 11px;\n// }\n\n//\n// Assets Uploading\n//\n\n.feedme-mapping .field-extra-settings .assets-uploads .asset-label-hide {\n visibility: hidden;\n}\n\n.feedme-mapping .field-extra-settings .assets-uploads .checkboxfield {\n float: left;\n margin-right: 10px;\n padding-top: 0;\n margin-bottom: 3px;\n z-index: 1;\n}\n\n.feedme-mapping .field-extra-settings .assets-uploads .select {\n height: auto;\n opacity: 0;\n visibility: hidden;\n}\n\n.feedme-mapping .field-extra-settings .assets-create .heading label {\n color: #29323d;\n font-weight: normal;\n float: left;\n margin-right: 10px;\n}\n\n//\n// Matching Elements\n//\n\n.feedme-mapping .field-extra-settings .element-match {\n span {\n float: left;\n margin-right: 10px;\n margin-bottom: 0;\n // padding-top: 2px;\n z-index: 1;\n }\n}\n\n//\n// Creating Elements\n//\n\n.feedme-mapping .field-extra-settings .element-create {\n margin-top: 5px;\n}\n\n//\n// Element Groups\n//\n\n.feedme-mapping .field-extra-settings .element-groups {\n margin-top: 5px;\n display: inline-flex;\n display: none;\n}\n\n.feedme-mapping .field-extra-settings .element-group {\n display: inline-flex;\n margin-right: 10px;\n align-items: center;\n\n span {\n margin: 4px 5px 0 0;\n }\n}\n\n//\n// Sub-Element fields\n//\n\n.feedme-mapping .element-sub-field {\n display: none;\n}\n\n.feedme-mapping .element-sub-field td {\n background: #fafafa;\n}\n\n.feedme-mapping .element-sub-field .col-field {\n padding-left: 30px;\n}\n\n.feedme-mapping .element-sub-field .col-default {\n padding-right: 30px;\n}\n\n.feedme-mapping .element-sub-field td.col-field .field > .heading {\n font-size: 11px;\n margin-bottom: 0;\n}\n\n.feedme-mapping\n .element-sub-field\n td.col-field\n .field\n > .heading\n > .instructions {\n margin-top: -2px;\n}\n\n.feedme-mapping .element-sub-field .fa-level-up {\n float: left;\n display: block;\n height: 100%;\n color: #cacaca;\n margin-left: -18px;\n margin-top: 3px;\n transform: rotate(90deg);\n}\n\n// Toggling\n.subelement-toggle .field {\n display: flex;\n flex-direction: row-reverse;\n text-align: left;\n justify-content: flex-end;\n padding-top: 8px;\n\n > .heading > label {\n font-weight: 400;\n cursor: pointer;\n margin-left: 8px;\n color: #8f98a3;\n }\n}\n\n//\n// Complex fields like Matrix/Table\n//\n\n.feedme-mapping .complex-field td {\n background: #fafafa;\n}\n\n.feedme-mapping .complex-field .col-field {\n padding-left: 13px;\n}\n\n.feedme-mapping .complex-field .col-field .field > .heading {\n font-size: 11px;\n}\n\n.feedme-mapping .complex-field .col-field .field > .heading > .instructions {\n margin-top: 0;\n line-height: 12px;\n}\n\n.feedme-mapping .complex-field td.col-map .field {\n margin-bottom: 0;\n}\n\n.feedme-mapping .complex-field .col-default {\n padding-right: 13px;\n}\n\n.feedme-mapping .complex-field-header td {\n background: darken(#fafafa, 4%);\n}\n\n.feedme-mapping .complex-field-header + .complex-field-header {\n display: none;\n}\n\n.feedme-mapping .complex-field-header .col-field {\n padding-left: 13px;\n}\n\n.feedme-mapping .complex-field-header .col-field .field > .heading {\n font-size: 14px;\n}\n\n.feedme-mapping .complex-field-header .field-extra-settings .checkboxfield {\n display: inline-block;\n margin-right: 10px;\n}\n\n.additional-mapping-fields {\n display: none;\n}\n\n// ==========================================================================\n// Logs\n// ==========================================================================\n\n.feed-me-logs-table {\n table-layout: fixed;\n font-size: 13px;\n}\n\n.feed-me-logs-table th:nth-child(1) {\n width: 50px;\n}\n\n.feed-me-logs-table th:nth-child(3) {\n width: 140px;\n}\n\n.feed-me-logs-table .col-label code {\n font-size: 80% !important;\n background: lighten(#a4adb6, 28%);\n border: 1px lighten(#a4adb6, 23%) solid;\n padding: 3px 3px;\n border-radius: 2px;\n}\n\n.log-result {\n display: inline-block;\n border-radius: 3px;\n padding: 0 4px;\n background: #fff;\n color: #fff !important;\n margin-right: 5px;\n font-variant: small-caps;\n font-size: 12px;\n font-weight: 300;\n background: darken(#ebedef, 25%);\n\n &.type-error {\n background: #d0021b;\n }\n}\n\n.log-detail-link {\n float: right;\n font-size: 80%;\n}\n\n.log-type-form {\n display: inline-flex;\n}\n\n.log-type-form .field {\n display: inline-flex;\n margin: 0;\n align-items: center;\n}\n\n.log-type-form .field .heading {\n margin: 0;\n}\n\n.log-type-form .field .input {\n margin: 0 1rem;\n}\n\n// ==========================================================================\n// Full Page Screens for Error/Success\n// ==========================================================================\n\n.feedme-fullpage {\n text-align: center;\n max-width: 40em;\n margin: 24px auto 48px;\n}\n\n.feedme-fullpage h2 {\n font-size: 18px;\n}\n\n.feedme-fullpage img {\n width: 70px;\n margin: auto;\n}\n\n.feedme-fullpage .buttons {\n display: inline-block;\n margin-top: 15px;\n}\n\n.feedme-success-btns {\n margin-top: 2em;\n}\n\n.feedme-success-btns a:not(:first-child) {\n margin-left: 7px;\n}\n\n.fullpage-error-message {\n background: lighten(#ebedef, 3%);\n border: 1px rgba(0, 0, 20, 0.1) solid;\n padding: 10px;\n font-size: 12px;\n margin: 20px 0 10px 0;\n}\n\n// ==========================================================================\n// Direct Feed Additional Styles\n// ==========================================================================\n\nbody.feedme-message .message-container .pane {\n width: 36em;\n padding: 2em;\n margin: 0 auto !important;\n transform: translate(0, -50%);\n}\n\nbody.feedme-message .feedme-fullpage {\n margin-bottom: 24px;\n}\n\n// ==========================================================================\n// Welcome Screen\n// ==========================================================================\n\n.feedme-welcome {\n text-align: center;\n margin: 0 auto;\n}\n\n.feedme-welcome h1 {\n font-size: 28px;\n}\n\n.feedme-welcome .plugin-icon-welcome {\n margin: 20px 0 30px;\n display: flex;\n align-items: center;\n\n svg {\n width: 120px;\n height: 120px;\n }\n}\n\n.feedme-welcome .btn-start {\n font-size: 15px;\n padding: 14px 28px;\n height: auto;\n margin-top: 20px;\n}\n\n.feedme-welcome .or {\n display: block;\n padding: 10px;\n font-style: italic;\n}\n\n.feedme-welcome .btn .fa {\n margin-left: 5px;\n}\n","/*!\n * Font Awesome Pro 5.0.9 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n */\n.fa,\n.fas,\n.far,\n.fal,\n.fab {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: inline-block;\n font-style: normal;\n font-variant: normal;\n text-rendering: auto;\n line-height: 1;\n}\n\n.fa-lg {\n font-size: 1.33333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n.fa-rotate-90 {\n -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=1)';\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2)';\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=3)';\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)';\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)';\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)';\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n line-height: 2em;\n position: relative;\n vertical-align: middle;\n width: 2em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n left: 0;\n position: absolute;\n text-align: center;\n width: 100%;\n}\n\n.fa-stack-1x {\n line-height: inherit;\n}\n\n.fa-stack-2x {\n font-size: 2em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n.fa-500px:before {\n content: '\\f26e';\n}\n\n.fa-accessible-icon:before {\n content: '\\f368';\n}\n\n.fa-accusoft:before {\n content: '\\f369';\n}\n\n.fa-address-book:before {\n content: '\\f2b9';\n}\n\n.fa-address-card:before {\n content: '\\f2bb';\n}\n\n.fa-adjust:before {\n content: '\\f042';\n}\n\n.fa-adn:before {\n content: '\\f170';\n}\n\n.fa-adversal:before {\n content: '\\f36a';\n}\n\n.fa-affiliatetheme:before {\n content: '\\f36b';\n}\n\n.fa-alarm-clock:before {\n content: '\\f34e';\n}\n\n.fa-algolia:before {\n content: '\\f36c';\n}\n\n.fa-align-center:before {\n content: '\\f037';\n}\n\n.fa-align-justify:before {\n content: '\\f039';\n}\n\n.fa-align-left:before {\n content: '\\f036';\n}\n\n.fa-align-right:before {\n content: '\\f038';\n}\n\n.fa-allergies:before {\n content: '\\f461';\n}\n\n.fa-amazon:before {\n content: '\\f270';\n}\n\n.fa-amazon-pay:before {\n content: '\\f42c';\n}\n\n.fa-ambulance:before {\n content: '\\f0f9';\n}\n\n.fa-american-sign-language-interpreting:before {\n content: '\\f2a3';\n}\n\n.fa-amilia:before {\n content: '\\f36d';\n}\n\n.fa-anchor:before {\n content: '\\f13d';\n}\n\n.fa-android:before {\n content: '\\f17b';\n}\n\n.fa-angellist:before {\n content: '\\f209';\n}\n\n.fa-angle-double-down:before {\n content: '\\f103';\n}\n\n.fa-angle-double-left:before {\n content: '\\f100';\n}\n\n.fa-angle-double-right:before {\n content: '\\f101';\n}\n\n.fa-angle-double-up:before {\n content: '\\f102';\n}\n\n.fa-angle-down:before {\n content: '\\f107';\n}\n\n.fa-angle-left:before {\n content: '\\f104';\n}\n\n.fa-angle-right:before {\n content: '\\f105';\n}\n\n.fa-angle-up:before {\n content: '\\f106';\n}\n\n.fa-angrycreative:before {\n content: '\\f36e';\n}\n\n.fa-angular:before {\n content: '\\f420';\n}\n\n.fa-app-store:before {\n content: '\\f36f';\n}\n\n.fa-app-store-ios:before {\n content: '\\f370';\n}\n\n.fa-apper:before {\n content: '\\f371';\n}\n\n.fa-apple:before {\n content: '\\f179';\n}\n\n.fa-apple-pay:before {\n content: '\\f415';\n}\n\n.fa-archive:before {\n content: '\\f187';\n}\n\n.fa-arrow-alt-circle-down:before {\n content: '\\f358';\n}\n\n.fa-arrow-alt-circle-left:before {\n content: '\\f359';\n}\n\n.fa-arrow-alt-circle-right:before {\n content: '\\f35a';\n}\n\n.fa-arrow-alt-circle-up:before {\n content: '\\f35b';\n}\n\n.fa-arrow-alt-down:before {\n content: '\\f354';\n}\n\n.fa-arrow-alt-from-bottom:before {\n content: '\\f346';\n}\n\n.fa-arrow-alt-from-left:before {\n content: '\\f347';\n}\n\n.fa-arrow-alt-from-right:before {\n content: '\\f348';\n}\n\n.fa-arrow-alt-from-top:before {\n content: '\\f349';\n}\n\n.fa-arrow-alt-left:before {\n content: '\\f355';\n}\n\n.fa-arrow-alt-right:before {\n content: '\\f356';\n}\n\n.fa-arrow-alt-square-down:before {\n content: '\\f350';\n}\n\n.fa-arrow-alt-square-left:before {\n content: '\\f351';\n}\n\n.fa-arrow-alt-square-right:before {\n content: '\\f352';\n}\n\n.fa-arrow-alt-square-up:before {\n content: '\\f353';\n}\n\n.fa-arrow-alt-to-bottom:before {\n content: '\\f34a';\n}\n\n.fa-arrow-alt-to-left:before {\n content: '\\f34b';\n}\n\n.fa-arrow-alt-to-right:before {\n content: '\\f34c';\n}\n\n.fa-arrow-alt-to-top:before {\n content: '\\f34d';\n}\n\n.fa-arrow-alt-up:before {\n content: '\\f357';\n}\n\n.fa-arrow-circle-down:before {\n content: '\\f0ab';\n}\n\n.fa-arrow-circle-left:before {\n content: '\\f0a8';\n}\n\n.fa-arrow-circle-right:before {\n content: '\\f0a9';\n}\n\n.fa-arrow-circle-up:before {\n content: '\\f0aa';\n}\n\n.fa-arrow-down:before {\n content: '\\f063';\n}\n\n.fa-arrow-from-bottom:before {\n content: '\\f342';\n}\n\n.fa-arrow-from-left:before {\n content: '\\f343';\n}\n\n.fa-arrow-from-right:before {\n content: '\\f344';\n}\n\n.fa-arrow-from-top:before {\n content: '\\f345';\n}\n\n.fa-arrow-left:before {\n content: '\\f060';\n}\n\n.fa-arrow-right:before {\n content: '\\f061';\n}\n\n.fa-arrow-square-down:before {\n content: '\\f339';\n}\n\n.fa-arrow-square-left:before {\n content: '\\f33a';\n}\n\n.fa-arrow-square-right:before {\n content: '\\f33b';\n}\n\n.fa-arrow-square-up:before {\n content: '\\f33c';\n}\n\n.fa-arrow-to-bottom:before {\n content: '\\f33d';\n}\n\n.fa-arrow-to-left:before {\n content: '\\f33e';\n}\n\n.fa-arrow-to-right:before {\n content: '\\f340';\n}\n\n.fa-arrow-to-top:before {\n content: '\\f341';\n}\n\n.fa-arrow-up:before {\n content: '\\f062';\n}\n\n.fa-arrows:before {\n content: '\\f047';\n}\n\n.fa-arrows-alt:before {\n content: '\\f0b2';\n}\n\n.fa-arrows-alt-h:before {\n content: '\\f337';\n}\n\n.fa-arrows-alt-v:before {\n content: '\\f338';\n}\n\n.fa-arrows-h:before {\n content: '\\f07e';\n}\n\n.fa-arrows-v:before {\n content: '\\f07d';\n}\n\n.fa-assistive-listening-systems:before {\n content: '\\f2a2';\n}\n\n.fa-asterisk:before {\n content: '\\f069';\n}\n\n.fa-asymmetrik:before {\n content: '\\f372';\n}\n\n.fa-at:before {\n content: '\\f1fa';\n}\n\n.fa-audible:before {\n content: '\\f373';\n}\n\n.fa-audio-description:before {\n content: '\\f29e';\n}\n\n.fa-autoprefixer:before {\n content: '\\f41c';\n}\n\n.fa-avianex:before {\n content: '\\f374';\n}\n\n.fa-aviato:before {\n content: '\\f421';\n}\n\n.fa-aws:before {\n content: '\\f375';\n}\n\n.fa-backward:before {\n content: '\\f04a';\n}\n\n.fa-badge:before {\n content: '\\f335';\n}\n\n.fa-badge-check:before {\n content: '\\f336';\n}\n\n.fa-balance-scale:before {\n content: '\\f24e';\n}\n\n.fa-ban:before {\n content: '\\f05e';\n}\n\n.fa-band-aid:before {\n content: '\\f462';\n}\n\n.fa-bandcamp:before {\n content: '\\f2d5';\n}\n\n.fa-barcode:before {\n content: '\\f02a';\n}\n\n.fa-barcode-alt:before {\n content: '\\f463';\n}\n\n.fa-barcode-read:before {\n content: '\\f464';\n}\n\n.fa-barcode-scan:before {\n content: '\\f465';\n}\n\n.fa-bars:before {\n content: '\\f0c9';\n}\n\n.fa-baseball:before {\n content: '\\f432';\n}\n\n.fa-baseball-ball:before {\n content: '\\f433';\n}\n\n.fa-basketball-ball:before {\n content: '\\f434';\n}\n\n.fa-basketball-hoop:before {\n content: '\\f435';\n}\n\n.fa-bath:before {\n content: '\\f2cd';\n}\n\n.fa-battery-bolt:before {\n content: '\\f376';\n}\n\n.fa-battery-empty:before {\n content: '\\f244';\n}\n\n.fa-battery-full:before {\n content: '\\f240';\n}\n\n.fa-battery-half:before {\n content: '\\f242';\n}\n\n.fa-battery-quarter:before {\n content: '\\f243';\n}\n\n.fa-battery-slash:before {\n content: '\\f377';\n}\n\n.fa-battery-three-quarters:before {\n content: '\\f241';\n}\n\n.fa-bed:before {\n content: '\\f236';\n}\n\n.fa-beer:before {\n content: '\\f0fc';\n}\n\n.fa-behance:before {\n content: '\\f1b4';\n}\n\n.fa-behance-square:before {\n content: '\\f1b5';\n}\n\n.fa-bell:before {\n content: '\\f0f3';\n}\n\n.fa-bell-slash:before {\n content: '\\f1f6';\n}\n\n.fa-bicycle:before {\n content: '\\f206';\n}\n\n.fa-bimobject:before {\n content: '\\f378';\n}\n\n.fa-binoculars:before {\n content: '\\f1e5';\n}\n\n.fa-birthday-cake:before {\n content: '\\f1fd';\n}\n\n.fa-bitbucket:before {\n content: '\\f171';\n}\n\n.fa-bitcoin:before {\n content: '\\f379';\n}\n\n.fa-bity:before {\n content: '\\f37a';\n}\n\n.fa-black-tie:before {\n content: '\\f27e';\n}\n\n.fa-blackberry:before {\n content: '\\f37b';\n}\n\n.fa-blanket:before {\n content: '\\f498';\n}\n\n.fa-blind:before {\n content: '\\f29d';\n}\n\n.fa-blogger:before {\n content: '\\f37c';\n}\n\n.fa-blogger-b:before {\n content: '\\f37d';\n}\n\n.fa-bluetooth:before {\n content: '\\f293';\n}\n\n.fa-bluetooth-b:before {\n content: '\\f294';\n}\n\n.fa-bold:before {\n content: '\\f032';\n}\n\n.fa-bolt:before {\n content: '\\f0e7';\n}\n\n.fa-bomb:before {\n content: '\\f1e2';\n}\n\n.fa-book:before {\n content: '\\f02d';\n}\n\n.fa-book-heart:before {\n content: '\\f499';\n}\n\n.fa-bookmark:before {\n content: '\\f02e';\n}\n\n.fa-bowling-ball:before {\n content: '\\f436';\n}\n\n.fa-bowling-pins:before {\n content: '\\f437';\n}\n\n.fa-box:before {\n content: '\\f466';\n}\n\n.fa-box-alt:before {\n content: '\\f49a';\n}\n\n.fa-box-check:before {\n content: '\\f467';\n}\n\n.fa-box-fragile:before {\n content: '\\f49b';\n}\n\n.fa-box-full:before {\n content: '\\f49c';\n}\n\n.fa-box-heart:before {\n content: '\\f49d';\n}\n\n.fa-box-open:before {\n content: '\\f49e';\n}\n\n.fa-box-up:before {\n content: '\\f49f';\n}\n\n.fa-box-usd:before {\n content: '\\f4a0';\n}\n\n.fa-boxes:before {\n content: '\\f468';\n}\n\n.fa-boxes-alt:before {\n content: '\\f4a1';\n}\n\n.fa-boxing-glove:before {\n content: '\\f438';\n}\n\n.fa-braille:before {\n content: '\\f2a1';\n}\n\n.fa-briefcase:before {\n content: '\\f0b1';\n}\n\n.fa-briefcase-medical:before {\n content: '\\f469';\n}\n\n.fa-browser:before {\n content: '\\f37e';\n}\n\n.fa-btc:before {\n content: '\\f15a';\n}\n\n.fa-bug:before {\n content: '\\f188';\n}\n\n.fa-building:before {\n content: '\\f1ad';\n}\n\n.fa-bullhorn:before {\n content: '\\f0a1';\n}\n\n.fa-bullseye:before {\n content: '\\f140';\n}\n\n.fa-burn:before {\n content: '\\f46a';\n}\n\n.fa-buromobelexperte:before {\n content: '\\f37f';\n}\n\n.fa-bus:before {\n content: '\\f207';\n}\n\n.fa-buysellads:before {\n content: '\\f20d';\n}\n\n.fa-calculator:before {\n content: '\\f1ec';\n}\n\n.fa-calendar:before {\n content: '\\f133';\n}\n\n.fa-calendar-alt:before {\n content: '\\f073';\n}\n\n.fa-calendar-check:before {\n content: '\\f274';\n}\n\n.fa-calendar-edit:before {\n content: '\\f333';\n}\n\n.fa-calendar-exclamation:before {\n content: '\\f334';\n}\n\n.fa-calendar-minus:before {\n content: '\\f272';\n}\n\n.fa-calendar-plus:before {\n content: '\\f271';\n}\n\n.fa-calendar-times:before {\n content: '\\f273';\n}\n\n.fa-camera:before {\n content: '\\f030';\n}\n\n.fa-camera-alt:before {\n content: '\\f332';\n}\n\n.fa-camera-retro:before {\n content: '\\f083';\n}\n\n.fa-capsules:before {\n content: '\\f46b';\n}\n\n.fa-car:before {\n content: '\\f1b9';\n}\n\n.fa-caret-circle-down:before {\n content: '\\f32d';\n}\n\n.fa-caret-circle-left:before {\n content: '\\f32e';\n}\n\n.fa-caret-circle-right:before {\n content: '\\f330';\n}\n\n.fa-caret-circle-up:before {\n content: '\\f331';\n}\n\n.fa-caret-down:before {\n content: '\\f0d7';\n}\n\n.fa-caret-left:before {\n content: '\\f0d9';\n}\n\n.fa-caret-right:before {\n content: '\\f0da';\n}\n\n.fa-caret-square-down:before {\n content: '\\f150';\n}\n\n.fa-caret-square-left:before {\n content: '\\f191';\n}\n\n.fa-caret-square-right:before {\n content: '\\f152';\n}\n\n.fa-caret-square-up:before {\n content: '\\f151';\n}\n\n.fa-caret-up:before {\n content: '\\f0d8';\n}\n\n.fa-cart-arrow-down:before {\n content: '\\f218';\n}\n\n.fa-cart-plus:before {\n content: '\\f217';\n}\n\n.fa-cc-amazon-pay:before {\n content: '\\f42d';\n}\n\n.fa-cc-amex:before {\n content: '\\f1f3';\n}\n\n.fa-cc-apple-pay:before {\n content: '\\f416';\n}\n\n.fa-cc-diners-club:before {\n content: '\\f24c';\n}\n\n.fa-cc-discover:before {\n content: '\\f1f2';\n}\n\n.fa-cc-jcb:before {\n content: '\\f24b';\n}\n\n.fa-cc-mastercard:before {\n content: '\\f1f1';\n}\n\n.fa-cc-paypal:before {\n content: '\\f1f4';\n}\n\n.fa-cc-stripe:before {\n content: '\\f1f5';\n}\n\n.fa-cc-visa:before {\n content: '\\f1f0';\n}\n\n.fa-centercode:before {\n content: '\\f380';\n}\n\n.fa-certificate:before {\n content: '\\f0a3';\n}\n\n.fa-chart-area:before {\n content: '\\f1fe';\n}\n\n.fa-chart-bar:before {\n content: '\\f080';\n}\n\n.fa-chart-line:before {\n content: '\\f201';\n}\n\n.fa-chart-pie:before {\n content: '\\f200';\n}\n\n.fa-check:before {\n content: '\\f00c';\n}\n\n.fa-check-circle:before {\n content: '\\f058';\n}\n\n.fa-check-square:before {\n content: '\\f14a';\n}\n\n.fa-chess:before {\n content: '\\f439';\n}\n\n.fa-chess-bishop:before {\n content: '\\f43a';\n}\n\n.fa-chess-bishop-alt:before {\n content: '\\f43b';\n}\n\n.fa-chess-board:before {\n content: '\\f43c';\n}\n\n.fa-chess-clock:before {\n content: '\\f43d';\n}\n\n.fa-chess-clock-alt:before {\n content: '\\f43e';\n}\n\n.fa-chess-king:before {\n content: '\\f43f';\n}\n\n.fa-chess-king-alt:before {\n content: '\\f440';\n}\n\n.fa-chess-knight:before {\n content: '\\f441';\n}\n\n.fa-chess-knight-alt:before {\n content: '\\f442';\n}\n\n.fa-chess-pawn:before {\n content: '\\f443';\n}\n\n.fa-chess-pawn-alt:before {\n content: '\\f444';\n}\n\n.fa-chess-queen:before {\n content: '\\f445';\n}\n\n.fa-chess-queen-alt:before {\n content: '\\f446';\n}\n\n.fa-chess-rook:before {\n content: '\\f447';\n}\n\n.fa-chess-rook-alt:before {\n content: '\\f448';\n}\n\n.fa-chevron-circle-down:before {\n content: '\\f13a';\n}\n\n.fa-chevron-circle-left:before {\n content: '\\f137';\n}\n\n.fa-chevron-circle-right:before {\n content: '\\f138';\n}\n\n.fa-chevron-circle-up:before {\n content: '\\f139';\n}\n\n.fa-chevron-double-down:before {\n content: '\\f322';\n}\n\n.fa-chevron-double-left:before {\n content: '\\f323';\n}\n\n.fa-chevron-double-right:before {\n content: '\\f324';\n}\n\n.fa-chevron-double-up:before {\n content: '\\f325';\n}\n\n.fa-chevron-down:before {\n content: '\\f078';\n}\n\n.fa-chevron-left:before {\n content: '\\f053';\n}\n\n.fa-chevron-right:before {\n content: '\\f054';\n}\n\n.fa-chevron-square-down:before {\n content: '\\f329';\n}\n\n.fa-chevron-square-left:before {\n content: '\\f32a';\n}\n\n.fa-chevron-square-right:before {\n content: '\\f32b';\n}\n\n.fa-chevron-square-up:before {\n content: '\\f32c';\n}\n\n.fa-chevron-up:before {\n content: '\\f077';\n}\n\n.fa-child:before {\n content: '\\f1ae';\n}\n\n.fa-chrome:before {\n content: '\\f268';\n}\n\n.fa-circle:before {\n content: '\\f111';\n}\n\n.fa-circle-notch:before {\n content: '\\f1ce';\n}\n\n.fa-clipboard:before {\n content: '\\f328';\n}\n\n.fa-clipboard-check:before {\n content: '\\f46c';\n}\n\n.fa-clipboard-list:before {\n content: '\\f46d';\n}\n\n.fa-clock:before {\n content: '\\f017';\n}\n\n.fa-clone:before {\n content: '\\f24d';\n}\n\n.fa-closed-captioning:before {\n content: '\\f20a';\n}\n\n.fa-cloud:before {\n content: '\\f0c2';\n}\n\n.fa-cloud-download:before {\n content: '\\f0ed';\n}\n\n.fa-cloud-download-alt:before {\n content: '\\f381';\n}\n\n.fa-cloud-upload:before {\n content: '\\f0ee';\n}\n\n.fa-cloud-upload-alt:before {\n content: '\\f382';\n}\n\n.fa-cloudscale:before {\n content: '\\f383';\n}\n\n.fa-cloudsmith:before {\n content: '\\f384';\n}\n\n.fa-cloudversify:before {\n content: '\\f385';\n}\n\n.fa-club:before {\n content: '\\f327';\n}\n\n.fa-code:before {\n content: '\\f121';\n}\n\n.fa-code-branch:before {\n content: '\\f126';\n}\n\n.fa-code-commit:before {\n content: '\\f386';\n}\n\n.fa-code-merge:before {\n content: '\\f387';\n}\n\n.fa-codepen:before {\n content: '\\f1cb';\n}\n\n.fa-codiepie:before {\n content: '\\f284';\n}\n\n.fa-coffee:before {\n content: '\\f0f4';\n}\n\n.fa-cog:before {\n content: '\\f013';\n}\n\n.fa-cogs:before {\n content: '\\f085';\n}\n\n.fa-columns:before {\n content: '\\f0db';\n}\n\n.fa-comment:before {\n content: '\\f075';\n}\n\n.fa-comment-alt:before {\n content: '\\f27a';\n}\n\n.fa-comment-alt-check:before {\n content: '\\f4a2';\n}\n\n.fa-comment-alt-dots:before {\n content: '\\f4a3';\n}\n\n.fa-comment-alt-edit:before {\n content: '\\f4a4';\n}\n\n.fa-comment-alt-exclamation:before {\n content: '\\f4a5';\n}\n\n.fa-comment-alt-lines:before {\n content: '\\f4a6';\n}\n\n.fa-comment-alt-minus:before {\n content: '\\f4a7';\n}\n\n.fa-comment-alt-plus:before {\n content: '\\f4a8';\n}\n\n.fa-comment-alt-slash:before {\n content: '\\f4a9';\n}\n\n.fa-comment-alt-smile:before {\n content: '\\f4aa';\n}\n\n.fa-comment-alt-times:before {\n content: '\\f4ab';\n}\n\n.fa-comment-check:before {\n content: '\\f4ac';\n}\n\n.fa-comment-dots:before {\n content: '\\f4ad';\n}\n\n.fa-comment-edit:before {\n content: '\\f4ae';\n}\n\n.fa-comment-exclamation:before {\n content: '\\f4af';\n}\n\n.fa-comment-lines:before {\n content: '\\f4b0';\n}\n\n.fa-comment-minus:before {\n content: '\\f4b1';\n}\n\n.fa-comment-plus:before {\n content: '\\f4b2';\n}\n\n.fa-comment-slash:before {\n content: '\\f4b3';\n}\n\n.fa-comment-smile:before {\n content: '\\f4b4';\n}\n\n.fa-comment-times:before {\n content: '\\f4b5';\n}\n\n.fa-comments:before {\n content: '\\f086';\n}\n\n.fa-comments-alt:before {\n content: '\\f4b6';\n}\n\n.fa-compass:before {\n content: '\\f14e';\n}\n\n.fa-compress:before {\n content: '\\f066';\n}\n\n.fa-compress-alt:before {\n content: '\\f422';\n}\n\n.fa-compress-wide:before {\n content: '\\f326';\n}\n\n.fa-connectdevelop:before {\n content: '\\f20e';\n}\n\n.fa-container-storage:before {\n content: '\\f4b7';\n}\n\n.fa-contao:before {\n content: '\\f26d';\n}\n\n.fa-conveyor-belt:before {\n content: '\\f46e';\n}\n\n.fa-conveyor-belt-alt:before {\n content: '\\f46f';\n}\n\n.fa-copy:before {\n content: '\\f0c5';\n}\n\n.fa-copyright:before {\n content: '\\f1f9';\n}\n\n.fa-couch:before {\n content: '\\f4b8';\n}\n\n.fa-cpanel:before {\n content: '\\f388';\n}\n\n.fa-creative-commons:before {\n content: '\\f25e';\n}\n\n.fa-credit-card:before {\n content: '\\f09d';\n}\n\n.fa-credit-card-blank:before {\n content: '\\f389';\n}\n\n.fa-credit-card-front:before {\n content: '\\f38a';\n}\n\n.fa-cricket:before {\n content: '\\f449';\n}\n\n.fa-crop:before {\n content: '\\f125';\n}\n\n.fa-crosshairs:before {\n content: '\\f05b';\n}\n\n.fa-css3:before {\n content: '\\f13c';\n}\n\n.fa-css3-alt:before {\n content: '\\f38b';\n}\n\n.fa-cube:before {\n content: '\\f1b2';\n}\n\n.fa-cubes:before {\n content: '\\f1b3';\n}\n\n.fa-curling:before {\n content: '\\f44a';\n}\n\n.fa-cut:before {\n content: '\\f0c4';\n}\n\n.fa-cuttlefish:before {\n content: '\\f38c';\n}\n\n.fa-d-and-d:before {\n content: '\\f38d';\n}\n\n.fa-dashcube:before {\n content: '\\f210';\n}\n\n.fa-database:before {\n content: '\\f1c0';\n}\n\n.fa-deaf:before {\n content: '\\f2a4';\n}\n\n.fa-delicious:before {\n content: '\\f1a5';\n}\n\n.fa-deploydog:before {\n content: '\\f38e';\n}\n\n.fa-deskpro:before {\n content: '\\f38f';\n}\n\n.fa-desktop:before {\n content: '\\f108';\n}\n\n.fa-desktop-alt:before {\n content: '\\f390';\n}\n\n.fa-deviantart:before {\n content: '\\f1bd';\n}\n\n.fa-diagnoses:before {\n content: '\\f470';\n}\n\n.fa-diamond:before {\n content: '\\f219';\n}\n\n.fa-digg:before {\n content: '\\f1a6';\n}\n\n.fa-digital-ocean:before {\n content: '\\f391';\n}\n\n.fa-discord:before {\n content: '\\f392';\n}\n\n.fa-discourse:before {\n content: '\\f393';\n}\n\n.fa-dna:before {\n content: '\\f471';\n}\n\n.fa-dochub:before {\n content: '\\f394';\n}\n\n.fa-docker:before {\n content: '\\f395';\n}\n\n.fa-dollar-sign:before {\n content: '\\f155';\n}\n\n.fa-dolly:before {\n content: '\\f472';\n}\n\n.fa-dolly-empty:before {\n content: '\\f473';\n}\n\n.fa-dolly-flatbed:before {\n content: '\\f474';\n}\n\n.fa-dolly-flatbed-alt:before {\n content: '\\f475';\n}\n\n.fa-dolly-flatbed-empty:before {\n content: '\\f476';\n}\n\n.fa-donate:before {\n content: '\\f4b9';\n}\n\n.fa-dot-circle:before {\n content: '\\f192';\n}\n\n.fa-dove:before {\n content: '\\f4ba';\n}\n\n.fa-download:before {\n content: '\\f019';\n}\n\n.fa-draft2digital:before {\n content: '\\f396';\n}\n\n.fa-dribbble:before {\n content: '\\f17d';\n}\n\n.fa-dribbble-square:before {\n content: '\\f397';\n}\n\n.fa-dropbox:before {\n content: '\\f16b';\n}\n\n.fa-drupal:before {\n content: '\\f1a9';\n}\n\n.fa-dumbbell:before {\n content: '\\f44b';\n}\n\n.fa-dyalog:before {\n content: '\\f399';\n}\n\n.fa-earlybirds:before {\n content: '\\f39a';\n}\n\n.fa-edge:before {\n content: '\\f282';\n}\n\n.fa-edit:before {\n content: '\\f044';\n}\n\n.fa-eject:before {\n content: '\\f052';\n}\n\n.fa-elementor:before {\n content: '\\f430';\n}\n\n.fa-ellipsis-h:before {\n content: '\\f141';\n}\n\n.fa-ellipsis-h-alt:before {\n content: '\\f39b';\n}\n\n.fa-ellipsis-v:before {\n content: '\\f142';\n}\n\n.fa-ellipsis-v-alt:before {\n content: '\\f39c';\n}\n\n.fa-ember:before {\n content: '\\f423';\n}\n\n.fa-empire:before {\n content: '\\f1d1';\n}\n\n.fa-envelope:before {\n content: '\\f0e0';\n}\n\n.fa-envelope-open:before {\n content: '\\f2b6';\n}\n\n.fa-envelope-square:before {\n content: '\\f199';\n}\n\n.fa-envira:before {\n content: '\\f299';\n}\n\n.fa-eraser:before {\n content: '\\f12d';\n}\n\n.fa-erlang:before {\n content: '\\f39d';\n}\n\n.fa-ethereum:before {\n content: '\\f42e';\n}\n\n.fa-etsy:before {\n content: '\\f2d7';\n}\n\n.fa-euro-sign:before {\n content: '\\f153';\n}\n\n.fa-exchange:before {\n content: '\\f0ec';\n}\n\n.fa-exchange-alt:before {\n content: '\\f362';\n}\n\n.fa-exclamation:before {\n content: '\\f12a';\n}\n\n.fa-exclamation-circle:before {\n content: '\\f06a';\n}\n\n.fa-exclamation-square:before {\n content: '\\f321';\n}\n\n.fa-exclamation-triangle:before {\n content: '\\f071';\n}\n\n.fa-expand:before {\n content: '\\f065';\n}\n\n.fa-expand-alt:before {\n content: '\\f424';\n}\n\n.fa-expand-arrows:before {\n content: '\\f31d';\n}\n\n.fa-expand-arrows-alt:before {\n content: '\\f31e';\n}\n\n.fa-expand-wide:before {\n content: '\\f320';\n}\n\n.fa-expeditedssl:before {\n content: '\\f23e';\n}\n\n.fa-external-link:before {\n content: '\\f08e';\n}\n\n.fa-external-link-alt:before {\n content: '\\f35d';\n}\n\n.fa-external-link-square:before {\n content: '\\f14c';\n}\n\n.fa-external-link-square-alt:before {\n content: '\\f360';\n}\n\n.fa-eye:before {\n content: '\\f06e';\n}\n\n.fa-eye-dropper:before {\n content: '\\f1fb';\n}\n\n.fa-eye-slash:before {\n content: '\\f070';\n}\n\n.fa-facebook:before {\n content: '\\f09a';\n}\n\n.fa-facebook-f:before {\n content: '\\f39e';\n}\n\n.fa-facebook-messenger:before {\n content: '\\f39f';\n}\n\n.fa-facebook-square:before {\n content: '\\f082';\n}\n\n.fa-fast-backward:before {\n content: '\\f049';\n}\n\n.fa-fast-forward:before {\n content: '\\f050';\n}\n\n.fa-fax:before {\n content: '\\f1ac';\n}\n\n.fa-female:before {\n content: '\\f182';\n}\n\n.fa-field-hockey:before {\n content: '\\f44c';\n}\n\n.fa-fighter-jet:before {\n content: '\\f0fb';\n}\n\n.fa-file:before {\n content: '\\f15b';\n}\n\n.fa-file-alt:before {\n content: '\\f15c';\n}\n\n.fa-file-archive:before {\n content: '\\f1c6';\n}\n\n.fa-file-audio:before {\n content: '\\f1c7';\n}\n\n.fa-file-check:before {\n content: '\\f316';\n}\n\n.fa-file-code:before {\n content: '\\f1c9';\n}\n\n.fa-file-edit:before {\n content: '\\f31c';\n}\n\n.fa-file-excel:before {\n content: '\\f1c3';\n}\n\n.fa-file-exclamation:before {\n content: '\\f31a';\n}\n\n.fa-file-image:before {\n content: '\\f1c5';\n}\n\n.fa-file-medical:before {\n content: '\\f477';\n}\n\n.fa-file-medical-alt:before {\n content: '\\f478';\n}\n\n.fa-file-minus:before {\n content: '\\f318';\n}\n\n.fa-file-pdf:before {\n content: '\\f1c1';\n}\n\n.fa-file-plus:before {\n content: '\\f319';\n}\n\n.fa-file-powerpoint:before {\n content: '\\f1c4';\n}\n\n.fa-file-times:before {\n content: '\\f317';\n}\n\n.fa-file-video:before {\n content: '\\f1c8';\n}\n\n.fa-file-word:before {\n content: '\\f1c2';\n}\n\n.fa-film:before {\n content: '\\f008';\n}\n\n.fa-film-alt:before {\n content: '\\f3a0';\n}\n\n.fa-filter:before {\n content: '\\f0b0';\n}\n\n.fa-fire:before {\n content: '\\f06d';\n}\n\n.fa-fire-extinguisher:before {\n content: '\\f134';\n}\n\n.fa-firefox:before {\n content: '\\f269';\n}\n\n.fa-first-aid:before {\n content: '\\f479';\n}\n\n.fa-first-order:before {\n content: '\\f2b0';\n}\n\n.fa-firstdraft:before {\n content: '\\f3a1';\n}\n\n.fa-flag:before {\n content: '\\f024';\n}\n\n.fa-flag-checkered:before {\n content: '\\f11e';\n}\n\n.fa-flask:before {\n content: '\\f0c3';\n}\n\n.fa-flickr:before {\n content: '\\f16e';\n}\n\n.fa-flipboard:before {\n content: '\\f44d';\n}\n\n.fa-fly:before {\n content: '\\f417';\n}\n\n.fa-folder:before {\n content: '\\f07b';\n}\n\n.fa-folder-open:before {\n content: '\\f07c';\n}\n\n.fa-font:before {\n content: '\\f031';\n}\n\n.fa-font-awesome:before {\n content: '\\f2b4';\n}\n\n.fa-font-awesome-alt:before {\n content: '\\f35c';\n}\n\n.fa-font-awesome-flag:before {\n content: '\\f425';\n}\n\n.fa-fonticons:before {\n content: '\\f280';\n}\n\n.fa-fonticons-fi:before {\n content: '\\f3a2';\n}\n\n.fa-football-ball:before {\n content: '\\f44e';\n}\n\n.fa-football-helmet:before {\n content: '\\f44f';\n}\n\n.fa-forklift:before {\n content: '\\f47a';\n}\n\n.fa-fort-awesome:before {\n content: '\\f286';\n}\n\n.fa-fort-awesome-alt:before {\n content: '\\f3a3';\n}\n\n.fa-forumbee:before {\n content: '\\f211';\n}\n\n.fa-forward:before {\n content: '\\f04e';\n}\n\n.fa-foursquare:before {\n content: '\\f180';\n}\n\n.fa-fragile:before {\n content: '\\f4bb';\n}\n\n.fa-free-code-camp:before {\n content: '\\f2c5';\n}\n\n.fa-freebsd:before {\n content: '\\f3a4';\n}\n\n.fa-frown:before {\n content: '\\f119';\n}\n\n.fa-futbol:before {\n content: '\\f1e3';\n}\n\n.fa-gamepad:before {\n content: '\\f11b';\n}\n\n.fa-gavel:before {\n content: '\\f0e3';\n}\n\n.fa-gem:before {\n content: '\\f3a5';\n}\n\n.fa-genderless:before {\n content: '\\f22d';\n}\n\n.fa-get-pocket:before {\n content: '\\f265';\n}\n\n.fa-gg:before {\n content: '\\f260';\n}\n\n.fa-gg-circle:before {\n content: '\\f261';\n}\n\n.fa-gift:before {\n content: '\\f06b';\n}\n\n.fa-git:before {\n content: '\\f1d3';\n}\n\n.fa-git-square:before {\n content: '\\f1d2';\n}\n\n.fa-github:before {\n content: '\\f09b';\n}\n\n.fa-github-alt:before {\n content: '\\f113';\n}\n\n.fa-github-square:before {\n content: '\\f092';\n}\n\n.fa-gitkraken:before {\n content: '\\f3a6';\n}\n\n.fa-gitlab:before {\n content: '\\f296';\n}\n\n.fa-gitter:before {\n content: '\\f426';\n}\n\n.fa-glass-martini:before {\n content: '\\f000';\n}\n\n.fa-glide:before {\n content: '\\f2a5';\n}\n\n.fa-glide-g:before {\n content: '\\f2a6';\n}\n\n.fa-globe:before {\n content: '\\f0ac';\n}\n\n.fa-gofore:before {\n content: '\\f3a7';\n}\n\n.fa-golf-ball:before {\n content: '\\f450';\n}\n\n.fa-golf-club:before {\n content: '\\f451';\n}\n\n.fa-goodreads:before {\n content: '\\f3a8';\n}\n\n.fa-goodreads-g:before {\n content: '\\f3a9';\n}\n\n.fa-google:before {\n content: '\\f1a0';\n}\n\n.fa-google-drive:before {\n content: '\\f3aa';\n}\n\n.fa-google-play:before {\n content: '\\f3ab';\n}\n\n.fa-google-plus:before {\n content: '\\f2b3';\n}\n\n.fa-google-plus-g:before {\n content: '\\f0d5';\n}\n\n.fa-google-plus-square:before {\n content: '\\f0d4';\n}\n\n.fa-google-wallet:before {\n content: '\\f1ee';\n}\n\n.fa-graduation-cap:before {\n content: '\\f19d';\n}\n\n.fa-gratipay:before {\n content: '\\f184';\n}\n\n.fa-grav:before {\n content: '\\f2d6';\n}\n\n.fa-gripfire:before {\n content: '\\f3ac';\n}\n\n.fa-grunt:before {\n content: '\\f3ad';\n}\n\n.fa-gulp:before {\n content: '\\f3ae';\n}\n\n.fa-h-square:before {\n content: '\\f0fd';\n}\n\n.fa-h1:before {\n content: '\\f313';\n}\n\n.fa-h2:before {\n content: '\\f314';\n}\n\n.fa-h3:before {\n content: '\\f315';\n}\n\n.fa-hacker-news:before {\n content: '\\f1d4';\n}\n\n.fa-hacker-news-square:before {\n content: '\\f3af';\n}\n\n.fa-hand-heart:before {\n content: '\\f4bc';\n}\n\n.fa-hand-holding:before {\n content: '\\f4bd';\n}\n\n.fa-hand-holding-box:before {\n content: '\\f47b';\n}\n\n.fa-hand-holding-heart:before {\n content: '\\f4be';\n}\n\n.fa-hand-holding-seedling:before {\n content: '\\f4bf';\n}\n\n.fa-hand-holding-usd:before {\n content: '\\f4c0';\n}\n\n.fa-hand-holding-water:before {\n content: '\\f4c1';\n}\n\n.fa-hand-lizard:before {\n content: '\\f258';\n}\n\n.fa-hand-paper:before {\n content: '\\f256';\n}\n\n.fa-hand-peace:before {\n content: '\\f25b';\n}\n\n.fa-hand-point-down:before {\n content: '\\f0a7';\n}\n\n.fa-hand-point-left:before {\n content: '\\f0a5';\n}\n\n.fa-hand-point-right:before {\n content: '\\f0a4';\n}\n\n.fa-hand-point-up:before {\n content: '\\f0a6';\n}\n\n.fa-hand-pointer:before {\n content: '\\f25a';\n}\n\n.fa-hand-receiving:before {\n content: '\\f47c';\n}\n\n.fa-hand-rock:before {\n content: '\\f255';\n}\n\n.fa-hand-scissors:before {\n content: '\\f257';\n}\n\n.fa-hand-spock:before {\n content: '\\f259';\n}\n\n.fa-hands:before {\n content: '\\f4c2';\n}\n\n.fa-hands-heart:before {\n content: '\\f4c3';\n}\n\n.fa-hands-helping:before {\n content: '\\f4c4';\n}\n\n.fa-hands-usd:before {\n content: '\\f4c5';\n}\n\n.fa-handshake:before {\n content: '\\f2b5';\n}\n\n.fa-handshake-alt:before {\n content: '\\f4c6';\n}\n\n.fa-hashtag:before {\n content: '\\f292';\n}\n\n.fa-hdd:before {\n content: '\\f0a0';\n}\n\n.fa-heading:before {\n content: '\\f1dc';\n}\n\n.fa-headphones:before {\n content: '\\f025';\n}\n\n.fa-heart:before {\n content: '\\f004';\n}\n\n.fa-heart-circle:before {\n content: '\\f4c7';\n}\n\n.fa-heart-square:before {\n content: '\\f4c8';\n}\n\n.fa-heartbeat:before {\n content: '\\f21e';\n}\n\n.fa-hexagon:before {\n content: '\\f312';\n}\n\n.fa-hips:before {\n content: '\\f452';\n}\n\n.fa-hire-a-helper:before {\n content: '\\f3b0';\n}\n\n.fa-history:before {\n content: '\\f1da';\n}\n\n.fa-hockey-puck:before {\n content: '\\f453';\n}\n\n.fa-hockey-sticks:before {\n content: '\\f454';\n}\n\n.fa-home:before {\n content: '\\f015';\n}\n\n.fa-home-heart:before {\n content: '\\f4c9';\n}\n\n.fa-hooli:before {\n content: '\\f427';\n}\n\n.fa-hospital:before {\n content: '\\f0f8';\n}\n\n.fa-hospital-alt:before {\n content: '\\f47d';\n}\n\n.fa-hospital-symbol:before {\n content: '\\f47e';\n}\n\n.fa-hotjar:before {\n content: '\\f3b1';\n}\n\n.fa-hourglass:before {\n content: '\\f254';\n}\n\n.fa-hourglass-end:before {\n content: '\\f253';\n}\n\n.fa-hourglass-half:before {\n content: '\\f252';\n}\n\n.fa-hourglass-start:before {\n content: '\\f251';\n}\n\n.fa-houzz:before {\n content: '\\f27c';\n}\n\n.fa-html5:before {\n content: '\\f13b';\n}\n\n.fa-hubspot:before {\n content: '\\f3b2';\n}\n\n.fa-i-cursor:before {\n content: '\\f246';\n}\n\n.fa-id-badge:before {\n content: '\\f2c1';\n}\n\n.fa-id-card:before {\n content: '\\f2c2';\n}\n\n.fa-id-card-alt:before {\n content: '\\f47f';\n}\n\n.fa-image:before {\n content: '\\f03e';\n}\n\n.fa-images:before {\n content: '\\f302';\n}\n\n.fa-imdb:before {\n content: '\\f2d8';\n}\n\n.fa-inbox:before {\n content: '\\f01c';\n}\n\n.fa-inbox-in:before {\n content: '\\f310';\n}\n\n.fa-inbox-out:before {\n content: '\\f311';\n}\n\n.fa-indent:before {\n content: '\\f03c';\n}\n\n.fa-industry:before {\n content: '\\f275';\n}\n\n.fa-industry-alt:before {\n content: '\\f3b3';\n}\n\n.fa-info:before {\n content: '\\f129';\n}\n\n.fa-info-circle:before {\n content: '\\f05a';\n}\n\n.fa-info-square:before {\n content: '\\f30f';\n}\n\n.fa-instagram:before {\n content: '\\f16d';\n}\n\n.fa-internet-explorer:before {\n content: '\\f26b';\n}\n\n.fa-inventory:before {\n content: '\\f480';\n}\n\n.fa-ioxhost:before {\n content: '\\f208';\n}\n\n.fa-italic:before {\n content: '\\f033';\n}\n\n.fa-itunes:before {\n content: '\\f3b4';\n}\n\n.fa-itunes-note:before {\n content: '\\f3b5';\n}\n\n.fa-jack-o-lantern:before {\n content: '\\f30e';\n}\n\n.fa-jenkins:before {\n content: '\\f3b6';\n}\n\n.fa-joget:before {\n content: '\\f3b7';\n}\n\n.fa-joomla:before {\n content: '\\f1aa';\n}\n\n.fa-js:before {\n content: '\\f3b8';\n}\n\n.fa-js-square:before {\n content: '\\f3b9';\n}\n\n.fa-jsfiddle:before {\n content: '\\f1cc';\n}\n\n.fa-key:before {\n content: '\\f084';\n}\n\n.fa-keyboard:before {\n content: '\\f11c';\n}\n\n.fa-keycdn:before {\n content: '\\f3ba';\n}\n\n.fa-kickstarter:before {\n content: '\\f3bb';\n}\n\n.fa-kickstarter-k:before {\n content: '\\f3bc';\n}\n\n.fa-korvue:before {\n content: '\\f42f';\n}\n\n.fa-lamp:before {\n content: '\\f4ca';\n}\n\n.fa-language:before {\n content: '\\f1ab';\n}\n\n.fa-laptop:before {\n content: '\\f109';\n}\n\n.fa-laravel:before {\n content: '\\f3bd';\n}\n\n.fa-lastfm:before {\n content: '\\f202';\n}\n\n.fa-lastfm-square:before {\n content: '\\f203';\n}\n\n.fa-leaf:before {\n content: '\\f06c';\n}\n\n.fa-leaf-heart:before {\n content: '\\f4cb';\n}\n\n.fa-leanpub:before {\n content: '\\f212';\n}\n\n.fa-lemon:before {\n content: '\\f094';\n}\n\n.fa-less:before {\n content: '\\f41d';\n}\n\n.fa-level-down:before {\n content: '\\f149';\n}\n\n.fa-level-down-alt:before {\n content: '\\f3be';\n}\n\n.fa-level-up:before {\n content: '\\f148';\n}\n\n.fa-level-up-alt:before {\n content: '\\f3bf';\n}\n\n.fa-life-ring:before {\n content: '\\f1cd';\n}\n\n.fa-lightbulb:before {\n content: '\\f0eb';\n}\n\n.fa-line:before {\n content: '\\f3c0';\n}\n\n.fa-link:before {\n content: '\\f0c1';\n}\n\n.fa-linkedin:before {\n content: '\\f08c';\n}\n\n.fa-linkedin-in:before {\n content: '\\f0e1';\n}\n\n.fa-linode:before {\n content: '\\f2b8';\n}\n\n.fa-linux:before {\n content: '\\f17c';\n}\n\n.fa-lira-sign:before {\n content: '\\f195';\n}\n\n.fa-list:before {\n content: '\\f03a';\n}\n\n.fa-list-alt:before {\n content: '\\f022';\n}\n\n.fa-list-ol:before {\n content: '\\f0cb';\n}\n\n.fa-list-ul:before {\n content: '\\f0ca';\n}\n\n.fa-location-arrow:before {\n content: '\\f124';\n}\n\n.fa-lock:before {\n content: '\\f023';\n}\n\n.fa-lock-alt:before {\n content: '\\f30d';\n}\n\n.fa-lock-open:before {\n content: '\\f3c1';\n}\n\n.fa-lock-open-alt:before {\n content: '\\f3c2';\n}\n\n.fa-long-arrow-alt-down:before {\n content: '\\f309';\n}\n\n.fa-long-arrow-alt-left:before {\n content: '\\f30a';\n}\n\n.fa-long-arrow-alt-right:before {\n content: '\\f30b';\n}\n\n.fa-long-arrow-alt-up:before {\n content: '\\f30c';\n}\n\n.fa-long-arrow-down:before {\n content: '\\f175';\n}\n\n.fa-long-arrow-left:before {\n content: '\\f177';\n}\n\n.fa-long-arrow-right:before {\n content: '\\f178';\n}\n\n.fa-long-arrow-up:before {\n content: '\\f176';\n}\n\n.fa-loveseat:before {\n content: '\\f4cc';\n}\n\n.fa-low-vision:before {\n content: '\\f2a8';\n}\n\n.fa-luchador:before {\n content: '\\f455';\n}\n\n.fa-lyft:before {\n content: '\\f3c3';\n}\n\n.fa-magento:before {\n content: '\\f3c4';\n}\n\n.fa-magic:before {\n content: '\\f0d0';\n}\n\n.fa-magnet:before {\n content: '\\f076';\n}\n\n.fa-male:before {\n content: '\\f183';\n}\n\n.fa-map:before {\n content: '\\f279';\n}\n\n.fa-map-marker:before {\n content: '\\f041';\n}\n\n.fa-map-marker-alt:before {\n content: '\\f3c5';\n}\n\n.fa-map-pin:before {\n content: '\\f276';\n}\n\n.fa-map-signs:before {\n content: '\\f277';\n}\n\n.fa-mars:before {\n content: '\\f222';\n}\n\n.fa-mars-double:before {\n content: '\\f227';\n}\n\n.fa-mars-stroke:before {\n content: '\\f229';\n}\n\n.fa-mars-stroke-h:before {\n content: '\\f22b';\n}\n\n.fa-mars-stroke-v:before {\n content: '\\f22a';\n}\n\n.fa-maxcdn:before {\n content: '\\f136';\n}\n\n.fa-medapps:before {\n content: '\\f3c6';\n}\n\n.fa-medium:before {\n content: '\\f23a';\n}\n\n.fa-medium-m:before {\n content: '\\f3c7';\n}\n\n.fa-medkit:before {\n content: '\\f0fa';\n}\n\n.fa-medrt:before {\n content: '\\f3c8';\n}\n\n.fa-meetup:before {\n content: '\\f2e0';\n}\n\n.fa-meh:before {\n content: '\\f11a';\n}\n\n.fa-mercury:before {\n content: '\\f223';\n}\n\n.fa-microchip:before {\n content: '\\f2db';\n}\n\n.fa-microphone:before {\n content: '\\f130';\n}\n\n.fa-microphone-alt:before {\n content: '\\f3c9';\n}\n\n.fa-microphone-slash:before {\n content: '\\f131';\n}\n\n.fa-microsoft:before {\n content: '\\f3ca';\n}\n\n.fa-minus:before {\n content: '\\f068';\n}\n\n.fa-minus-circle:before {\n content: '\\f056';\n}\n\n.fa-minus-hexagon:before {\n content: '\\f307';\n}\n\n.fa-minus-octagon:before {\n content: '\\f308';\n}\n\n.fa-minus-square:before {\n content: '\\f146';\n}\n\n.fa-mix:before {\n content: '\\f3cb';\n}\n\n.fa-mixcloud:before {\n content: '\\f289';\n}\n\n.fa-mizuni:before {\n content: '\\f3cc';\n}\n\n.fa-mobile:before {\n content: '\\f10b';\n}\n\n.fa-mobile-alt:before {\n content: '\\f3cd';\n}\n\n.fa-mobile-android:before {\n content: '\\f3ce';\n}\n\n.fa-mobile-android-alt:before {\n content: '\\f3cf';\n}\n\n.fa-modx:before {\n content: '\\f285';\n}\n\n.fa-monero:before {\n content: '\\f3d0';\n}\n\n.fa-money-bill:before {\n content: '\\f0d6';\n}\n\n.fa-money-bill-alt:before {\n content: '\\f3d1';\n}\n\n.fa-moon:before {\n content: '\\f186';\n}\n\n.fa-motorcycle:before {\n content: '\\f21c';\n}\n\n.fa-mouse-pointer:before {\n content: '\\f245';\n}\n\n.fa-music:before {\n content: '\\f001';\n}\n\n.fa-napster:before {\n content: '\\f3d2';\n}\n\n.fa-neuter:before {\n content: '\\f22c';\n}\n\n.fa-newspaper:before {\n content: '\\f1ea';\n}\n\n.fa-nintendo-switch:before {\n content: '\\f418';\n}\n\n.fa-node:before {\n content: '\\f419';\n}\n\n.fa-node-js:before {\n content: '\\f3d3';\n}\n\n.fa-notes-medical:before {\n content: '\\f481';\n}\n\n.fa-npm:before {\n content: '\\f3d4';\n}\n\n.fa-ns8:before {\n content: '\\f3d5';\n}\n\n.fa-nutritionix:before {\n content: '\\f3d6';\n}\n\n.fa-object-group:before {\n content: '\\f247';\n}\n\n.fa-object-ungroup:before {\n content: '\\f248';\n}\n\n.fa-octagon:before {\n content: '\\f306';\n}\n\n.fa-odnoklassniki:before {\n content: '\\f263';\n}\n\n.fa-odnoklassniki-square:before {\n content: '\\f264';\n}\n\n.fa-opencart:before {\n content: '\\f23d';\n}\n\n.fa-openid:before {\n content: '\\f19b';\n}\n\n.fa-opera:before {\n content: '\\f26a';\n}\n\n.fa-optin-monster:before {\n content: '\\f23c';\n}\n\n.fa-osi:before {\n content: '\\f41a';\n}\n\n.fa-outdent:before {\n content: '\\f03b';\n}\n\n.fa-page4:before {\n content: '\\f3d7';\n}\n\n.fa-pagelines:before {\n content: '\\f18c';\n}\n\n.fa-paint-brush:before {\n content: '\\f1fc';\n}\n\n.fa-palfed:before {\n content: '\\f3d8';\n}\n\n.fa-pallet:before {\n content: '\\f482';\n}\n\n.fa-pallet-alt:before {\n content: '\\f483';\n}\n\n.fa-paper-plane:before {\n content: '\\f1d8';\n}\n\n.fa-paperclip:before {\n content: '\\f0c6';\n}\n\n.fa-parachute-box:before {\n content: '\\f4cd';\n}\n\n.fa-paragraph:before {\n content: '\\f1dd';\n}\n\n.fa-paste:before {\n content: '\\f0ea';\n}\n\n.fa-patreon:before {\n content: '\\f3d9';\n}\n\n.fa-pause:before {\n content: '\\f04c';\n}\n\n.fa-pause-circle:before {\n content: '\\f28b';\n}\n\n.fa-paw:before {\n content: '\\f1b0';\n}\n\n.fa-paypal:before {\n content: '\\f1ed';\n}\n\n.fa-pen:before {\n content: '\\f304';\n}\n\n.fa-pen-alt:before {\n content: '\\f305';\n}\n\n.fa-pen-square:before {\n content: '\\f14b';\n}\n\n.fa-pencil:before {\n content: '\\f040';\n}\n\n.fa-pencil-alt:before {\n content: '\\f303';\n}\n\n.fa-pennant:before {\n content: '\\f456';\n}\n\n.fa-people-carry:before {\n content: '\\f4ce';\n}\n\n.fa-percent:before {\n content: '\\f295';\n}\n\n.fa-periscope:before {\n content: '\\f3da';\n}\n\n.fa-person-carry:before {\n content: '\\f4cf';\n}\n\n.fa-person-dolly:before {\n content: '\\f4d0';\n}\n\n.fa-person-dolly-empty:before {\n content: '\\f4d1';\n}\n\n.fa-phabricator:before {\n content: '\\f3db';\n}\n\n.fa-phoenix-framework:before {\n content: '\\f3dc';\n}\n\n.fa-phone:before {\n content: '\\f095';\n}\n\n.fa-phone-plus:before {\n content: '\\f4d2';\n}\n\n.fa-phone-slash:before {\n content: '\\f3dd';\n}\n\n.fa-phone-square:before {\n content: '\\f098';\n}\n\n.fa-phone-volume:before {\n content: '\\f2a0';\n}\n\n.fa-php:before {\n content: '\\f457';\n}\n\n.fa-pied-piper:before {\n content: '\\f2ae';\n}\n\n.fa-pied-piper-alt:before {\n content: '\\f1a8';\n}\n\n.fa-pied-piper-pp:before {\n content: '\\f1a7';\n}\n\n.fa-piggy-bank:before {\n content: '\\f4d3';\n}\n\n.fa-pills:before {\n content: '\\f484';\n}\n\n.fa-pinterest:before {\n content: '\\f0d2';\n}\n\n.fa-pinterest-p:before {\n content: '\\f231';\n}\n\n.fa-pinterest-square:before {\n content: '\\f0d3';\n}\n\n.fa-plane:before {\n content: '\\f072';\n}\n\n.fa-plane-alt:before {\n content: '\\f3de';\n}\n\n.fa-play:before {\n content: '\\f04b';\n}\n\n.fa-play-circle:before {\n content: '\\f144';\n}\n\n.fa-playstation:before {\n content: '\\f3df';\n}\n\n.fa-plug:before {\n content: '\\f1e6';\n}\n\n.fa-plus:before {\n content: '\\f067';\n}\n\n.fa-plus-circle:before {\n content: '\\f055';\n}\n\n.fa-plus-hexagon:before {\n content: '\\f300';\n}\n\n.fa-plus-octagon:before {\n content: '\\f301';\n}\n\n.fa-plus-square:before {\n content: '\\f0fe';\n}\n\n.fa-podcast:before {\n content: '\\f2ce';\n}\n\n.fa-poo:before {\n content: '\\f2fe';\n}\n\n.fa-portrait:before {\n content: '\\f3e0';\n}\n\n.fa-pound-sign:before {\n content: '\\f154';\n}\n\n.fa-power-off:before {\n content: '\\f011';\n}\n\n.fa-prescription-bottle:before {\n content: '\\f485';\n}\n\n.fa-prescription-bottle-alt:before {\n content: '\\f486';\n}\n\n.fa-print:before {\n content: '\\f02f';\n}\n\n.fa-procedures:before {\n content: '\\f487';\n}\n\n.fa-product-hunt:before {\n content: '\\f288';\n}\n\n.fa-pushed:before {\n content: '\\f3e1';\n}\n\n.fa-puzzle-piece:before {\n content: '\\f12e';\n}\n\n.fa-python:before {\n content: '\\f3e2';\n}\n\n.fa-qq:before {\n content: '\\f1d6';\n}\n\n.fa-qrcode:before {\n content: '\\f029';\n}\n\n.fa-question:before {\n content: '\\f128';\n}\n\n.fa-question-circle:before {\n content: '\\f059';\n}\n\n.fa-question-square:before {\n content: '\\f2fd';\n}\n\n.fa-quidditch:before {\n content: '\\f458';\n}\n\n.fa-quinscape:before {\n content: '\\f459';\n}\n\n.fa-quora:before {\n content: '\\f2c4';\n}\n\n.fa-quote-left:before {\n content: '\\f10d';\n}\n\n.fa-quote-right:before {\n content: '\\f10e';\n}\n\n.fa-racquet:before {\n content: '\\f45a';\n}\n\n.fa-ramp-loading:before {\n content: '\\f4d4';\n}\n\n.fa-random:before {\n content: '\\f074';\n}\n\n.fa-ravelry:before {\n content: '\\f2d9';\n}\n\n.fa-react:before {\n content: '\\f41b';\n}\n\n.fa-readme:before {\n content: '\\f4d5';\n}\n\n.fa-rebel:before {\n content: '\\f1d0';\n}\n\n.fa-rectangle-landscape:before {\n content: '\\f2fa';\n}\n\n.fa-rectangle-portrait:before {\n content: '\\f2fb';\n}\n\n.fa-rectangle-wide:before {\n content: '\\f2fc';\n}\n\n.fa-recycle:before {\n content: '\\f1b8';\n}\n\n.fa-red-river:before {\n content: '\\f3e3';\n}\n\n.fa-reddit:before {\n content: '\\f1a1';\n}\n\n.fa-reddit-alien:before {\n content: '\\f281';\n}\n\n.fa-reddit-square:before {\n content: '\\f1a2';\n}\n\n.fa-redo:before {\n content: '\\f01e';\n}\n\n.fa-redo-alt:before {\n content: '\\f2f9';\n}\n\n.fa-registered:before {\n content: '\\f25d';\n}\n\n.fa-rendact:before {\n content: '\\f3e4';\n}\n\n.fa-renren:before {\n content: '\\f18b';\n}\n\n.fa-repeat:before {\n content: '\\f363';\n}\n\n.fa-repeat-1:before {\n content: '\\f365';\n}\n\n.fa-repeat-1-alt:before {\n content: '\\f366';\n}\n\n.fa-repeat-alt:before {\n content: '\\f364';\n}\n\n.fa-reply:before {\n content: '\\f3e5';\n}\n\n.fa-reply-all:before {\n content: '\\f122';\n}\n\n.fa-replyd:before {\n content: '\\f3e6';\n}\n\n.fa-resolving:before {\n content: '\\f3e7';\n}\n\n.fa-retweet:before {\n content: '\\f079';\n}\n\n.fa-retweet-alt:before {\n content: '\\f361';\n}\n\n.fa-ribbon:before {\n content: '\\f4d6';\n}\n\n.fa-road:before {\n content: '\\f018';\n}\n\n.fa-rocket:before {\n content: '\\f135';\n}\n\n.fa-rocketchat:before {\n content: '\\f3e8';\n}\n\n.fa-rockrms:before {\n content: '\\f3e9';\n}\n\n.fa-route:before {\n content: '\\f4d7';\n}\n\n.fa-rss:before {\n content: '\\f09e';\n}\n\n.fa-rss-square:before {\n content: '\\f143';\n}\n\n.fa-ruble-sign:before {\n content: '\\f158';\n}\n\n.fa-rupee-sign:before {\n content: '\\f156';\n}\n\n.fa-safari:before {\n content: '\\f267';\n}\n\n.fa-sass:before {\n content: '\\f41e';\n}\n\n.fa-save:before {\n content: '\\f0c7';\n}\n\n.fa-scanner:before {\n content: '\\f488';\n}\n\n.fa-scanner-keyboard:before {\n content: '\\f489';\n}\n\n.fa-scanner-touchscreen:before {\n content: '\\f48a';\n}\n\n.fa-schlix:before {\n content: '\\f3ea';\n}\n\n.fa-scribd:before {\n content: '\\f28a';\n}\n\n.fa-scrubber:before {\n content: '\\f2f8';\n}\n\n.fa-search:before {\n content: '\\f002';\n}\n\n.fa-search-minus:before {\n content: '\\f010';\n}\n\n.fa-search-plus:before {\n content: '\\f00e';\n}\n\n.fa-searchengin:before {\n content: '\\f3eb';\n}\n\n.fa-seedling:before {\n content: '\\f4d8';\n}\n\n.fa-sellcast:before {\n content: '\\f2da';\n}\n\n.fa-sellsy:before {\n content: '\\f213';\n}\n\n.fa-server:before {\n content: '\\f233';\n}\n\n.fa-servicestack:before {\n content: '\\f3ec';\n}\n\n.fa-share:before {\n content: '\\f064';\n}\n\n.fa-share-all:before {\n content: '\\f367';\n}\n\n.fa-share-alt:before {\n content: '\\f1e0';\n}\n\n.fa-share-alt-square:before {\n content: '\\f1e1';\n}\n\n.fa-share-square:before {\n content: '\\f14d';\n}\n\n.fa-shekel-sign:before {\n content: '\\f20b';\n}\n\n.fa-shield:before {\n content: '\\f132';\n}\n\n.fa-shield-alt:before {\n content: '\\f3ed';\n}\n\n.fa-shield-check:before {\n content: '\\f2f7';\n}\n\n.fa-ship:before {\n content: '\\f21a';\n}\n\n.fa-shipping-fast:before {\n content: '\\f48b';\n}\n\n.fa-shipping-timed:before {\n content: '\\f48c';\n}\n\n.fa-shirtsinbulk:before {\n content: '\\f214';\n}\n\n.fa-shopping-bag:before {\n content: '\\f290';\n}\n\n.fa-shopping-basket:before {\n content: '\\f291';\n}\n\n.fa-shopping-cart:before {\n content: '\\f07a';\n}\n\n.fa-shower:before {\n content: '\\f2cc';\n}\n\n.fa-shuttlecock:before {\n content: '\\f45b';\n}\n\n.fa-sign:before {\n content: '\\f4d9';\n}\n\n.fa-sign-in:before {\n content: '\\f090';\n}\n\n.fa-sign-in-alt:before {\n content: '\\f2f6';\n}\n\n.fa-sign-language:before {\n content: '\\f2a7';\n}\n\n.fa-sign-out:before {\n content: '\\f08b';\n}\n\n.fa-sign-out-alt:before {\n content: '\\f2f5';\n}\n\n.fa-signal:before {\n content: '\\f012';\n}\n\n.fa-simplybuilt:before {\n content: '\\f215';\n}\n\n.fa-sistrix:before {\n content: '\\f3ee';\n}\n\n.fa-sitemap:before {\n content: '\\f0e8';\n}\n\n.fa-skyatlas:before {\n content: '\\f216';\n}\n\n.fa-skype:before {\n content: '\\f17e';\n}\n\n.fa-slack:before {\n content: '\\f198';\n}\n\n.fa-slack-hash:before {\n content: '\\f3ef';\n}\n\n.fa-sliders-h:before {\n content: '\\f1de';\n}\n\n.fa-sliders-h-square:before {\n content: '\\f3f0';\n}\n\n.fa-sliders-v:before {\n content: '\\f3f1';\n}\n\n.fa-sliders-v-square:before {\n content: '\\f3f2';\n}\n\n.fa-slideshare:before {\n content: '\\f1e7';\n}\n\n.fa-smile:before {\n content: '\\f118';\n}\n\n.fa-smile-plus:before {\n content: '\\f4da';\n}\n\n.fa-smoking:before {\n content: '\\f48d';\n}\n\n.fa-snapchat:before {\n content: '\\f2ab';\n}\n\n.fa-snapchat-ghost:before {\n content: '\\f2ac';\n}\n\n.fa-snapchat-square:before {\n content: '\\f2ad';\n}\n\n.fa-snowflake:before {\n content: '\\f2dc';\n}\n\n.fa-sort:before {\n content: '\\f0dc';\n}\n\n.fa-sort-alpha-down:before {\n content: '\\f15d';\n}\n\n.fa-sort-alpha-up:before {\n content: '\\f15e';\n}\n\n.fa-sort-amount-down:before {\n content: '\\f160';\n}\n\n.fa-sort-amount-up:before {\n content: '\\f161';\n}\n\n.fa-sort-down:before {\n content: '\\f0dd';\n}\n\n.fa-sort-numeric-down:before {\n content: '\\f162';\n}\n\n.fa-sort-numeric-up:before {\n content: '\\f163';\n}\n\n.fa-sort-up:before {\n content: '\\f0de';\n}\n\n.fa-soundcloud:before {\n content: '\\f1be';\n}\n\n.fa-space-shuttle:before {\n content: '\\f197';\n}\n\n.fa-spade:before {\n content: '\\f2f4';\n}\n\n.fa-speakap:before {\n content: '\\f3f3';\n}\n\n.fa-spinner:before {\n content: '\\f110';\n}\n\n.fa-spinner-third:before {\n content: '\\f3f4';\n}\n\n.fa-spotify:before {\n content: '\\f1bc';\n}\n\n.fa-square:before {\n content: '\\f0c8';\n}\n\n.fa-square-full:before {\n content: '\\f45c';\n}\n\n.fa-stack-exchange:before {\n content: '\\f18d';\n}\n\n.fa-stack-overflow:before {\n content: '\\f16c';\n}\n\n.fa-star:before {\n content: '\\f005';\n}\n\n.fa-star-exclamation:before {\n content: '\\f2f3';\n}\n\n.fa-star-half:before {\n content: '\\f089';\n}\n\n.fa-staylinked:before {\n content: '\\f3f5';\n}\n\n.fa-steam:before {\n content: '\\f1b6';\n}\n\n.fa-steam-square:before {\n content: '\\f1b7';\n}\n\n.fa-steam-symbol:before {\n content: '\\f3f6';\n}\n\n.fa-step-backward:before {\n content: '\\f048';\n}\n\n.fa-step-forward:before {\n content: '\\f051';\n}\n\n.fa-stethoscope:before {\n content: '\\f0f1';\n}\n\n.fa-sticker-mule:before {\n content: '\\f3f7';\n}\n\n.fa-sticky-note:before {\n content: '\\f249';\n}\n\n.fa-stop:before {\n content: '\\f04d';\n}\n\n.fa-stop-circle:before {\n content: '\\f28d';\n}\n\n.fa-stopwatch:before {\n content: '\\f2f2';\n}\n\n.fa-strava:before {\n content: '\\f428';\n}\n\n.fa-street-view:before {\n content: '\\f21d';\n}\n\n.fa-strikethrough:before {\n content: '\\f0cc';\n}\n\n.fa-stripe:before {\n content: '\\f429';\n}\n\n.fa-stripe-s:before {\n content: '\\f42a';\n}\n\n.fa-studiovinari:before {\n content: '\\f3f8';\n}\n\n.fa-stumbleupon:before {\n content: '\\f1a4';\n}\n\n.fa-stumbleupon-circle:before {\n content: '\\f1a3';\n}\n\n.fa-subscript:before {\n content: '\\f12c';\n}\n\n.fa-subway:before {\n content: '\\f239';\n}\n\n.fa-suitcase:before {\n content: '\\f0f2';\n}\n\n.fa-sun:before {\n content: '\\f185';\n}\n\n.fa-superpowers:before {\n content: '\\f2dd';\n}\n\n.fa-superscript:before {\n content: '\\f12b';\n}\n\n.fa-supple:before {\n content: '\\f3f9';\n}\n\n.fa-sync:before {\n content: '\\f021';\n}\n\n.fa-sync-alt:before {\n content: '\\f2f1';\n}\n\n.fa-syringe:before {\n content: '\\f48e';\n}\n\n.fa-table:before {\n content: '\\f0ce';\n}\n\n.fa-table-tennis:before {\n content: '\\f45d';\n}\n\n.fa-tablet:before {\n content: '\\f10a';\n}\n\n.fa-tablet-alt:before {\n content: '\\f3fa';\n}\n\n.fa-tablet-android:before {\n content: '\\f3fb';\n}\n\n.fa-tablet-android-alt:before {\n content: '\\f3fc';\n}\n\n.fa-tablet-rugged:before {\n content: '\\f48f';\n}\n\n.fa-tablets:before {\n content: '\\f490';\n}\n\n.fa-tachometer:before {\n content: '\\f0e4';\n}\n\n.fa-tachometer-alt:before {\n content: '\\f3fd';\n}\n\n.fa-tag:before {\n content: '\\f02b';\n}\n\n.fa-tags:before {\n content: '\\f02c';\n}\n\n.fa-tape:before {\n content: '\\f4db';\n}\n\n.fa-tasks:before {\n content: '\\f0ae';\n}\n\n.fa-taxi:before {\n content: '\\f1ba';\n}\n\n.fa-telegram:before {\n content: '\\f2c6';\n}\n\n.fa-telegram-plane:before {\n content: '\\f3fe';\n}\n\n.fa-tencent-weibo:before {\n content: '\\f1d5';\n}\n\n.fa-tennis-ball:before {\n content: '\\f45e';\n}\n\n.fa-terminal:before {\n content: '\\f120';\n}\n\n.fa-text-height:before {\n content: '\\f034';\n}\n\n.fa-text-width:before {\n content: '\\f035';\n}\n\n.fa-th:before {\n content: '\\f00a';\n}\n\n.fa-th-large:before {\n content: '\\f009';\n}\n\n.fa-th-list:before {\n content: '\\f00b';\n}\n\n.fa-themeisle:before {\n content: '\\f2b2';\n}\n\n.fa-thermometer:before {\n content: '\\f491';\n}\n\n.fa-thermometer-empty:before {\n content: '\\f2cb';\n}\n\n.fa-thermometer-full:before {\n content: '\\f2c7';\n}\n\n.fa-thermometer-half:before {\n content: '\\f2c9';\n}\n\n.fa-thermometer-quarter:before {\n content: '\\f2ca';\n}\n\n.fa-thermometer-three-quarters:before {\n content: '\\f2c8';\n}\n\n.fa-thumbs-down:before {\n content: '\\f165';\n}\n\n.fa-thumbs-up:before {\n content: '\\f164';\n}\n\n.fa-thumbtack:before {\n content: '\\f08d';\n}\n\n.fa-ticket:before {\n content: '\\f145';\n}\n\n.fa-ticket-alt:before {\n content: '\\f3ff';\n}\n\n.fa-times:before {\n content: '\\f00d';\n}\n\n.fa-times-circle:before {\n content: '\\f057';\n}\n\n.fa-times-hexagon:before {\n content: '\\f2ee';\n}\n\n.fa-times-octagon:before {\n content: '\\f2f0';\n}\n\n.fa-times-square:before {\n content: '\\f2d3';\n}\n\n.fa-tint:before {\n content: '\\f043';\n}\n\n.fa-toggle-off:before {\n content: '\\f204';\n}\n\n.fa-toggle-on:before {\n content: '\\f205';\n}\n\n.fa-trademark:before {\n content: '\\f25c';\n}\n\n.fa-train:before {\n content: '\\f238';\n}\n\n.fa-transgender:before {\n content: '\\f224';\n}\n\n.fa-transgender-alt:before {\n content: '\\f225';\n}\n\n.fa-trash:before {\n content: '\\f1f8';\n}\n\n.fa-trash-alt:before {\n content: '\\f2ed';\n}\n\n.fa-tree:before {\n content: '\\f1bb';\n}\n\n.fa-tree-alt:before {\n content: '\\f400';\n}\n\n.fa-trello:before {\n content: '\\f181';\n}\n\n.fa-triangle:before {\n content: '\\f2ec';\n}\n\n.fa-tripadvisor:before {\n content: '\\f262';\n}\n\n.fa-trophy:before {\n content: '\\f091';\n}\n\n.fa-trophy-alt:before {\n content: '\\f2eb';\n}\n\n.fa-truck:before {\n content: '\\f0d1';\n}\n\n.fa-truck-container:before {\n content: '\\f4dc';\n}\n\n.fa-truck-couch:before {\n content: '\\f4dd';\n}\n\n.fa-truck-loading:before {\n content: '\\f4de';\n}\n\n.fa-truck-moving:before {\n content: '\\f4df';\n}\n\n.fa-truck-ramp:before {\n content: '\\f4e0';\n}\n\n.fa-tty:before {\n content: '\\f1e4';\n}\n\n.fa-tumblr:before {\n content: '\\f173';\n}\n\n.fa-tumblr-square:before {\n content: '\\f174';\n}\n\n.fa-tv:before {\n content: '\\f26c';\n}\n\n.fa-tv-retro:before {\n content: '\\f401';\n}\n\n.fa-twitch:before {\n content: '\\f1e8';\n}\n\n.fa-twitter:before {\n content: '\\f099';\n}\n\n.fa-twitter-square:before {\n content: '\\f081';\n}\n\n.fa-typo3:before {\n content: '\\f42b';\n}\n\n.fa-uber:before {\n content: '\\f402';\n}\n\n.fa-uikit:before {\n content: '\\f403';\n}\n\n.fa-umbrella:before {\n content: '\\f0e9';\n}\n\n.fa-underline:before {\n content: '\\f0cd';\n}\n\n.fa-undo:before {\n content: '\\f0e2';\n}\n\n.fa-undo-alt:before {\n content: '\\f2ea';\n}\n\n.fa-uniregistry:before {\n content: '\\f404';\n}\n\n.fa-universal-access:before {\n content: '\\f29a';\n}\n\n.fa-university:before {\n content: '\\f19c';\n}\n\n.fa-unlink:before {\n content: '\\f127';\n}\n\n.fa-unlock:before {\n content: '\\f09c';\n}\n\n.fa-unlock-alt:before {\n content: '\\f13e';\n}\n\n.fa-untappd:before {\n content: '\\f405';\n}\n\n.fa-upload:before {\n content: '\\f093';\n}\n\n.fa-usb:before {\n content: '\\f287';\n}\n\n.fa-usd-circle:before {\n content: '\\f2e8';\n}\n\n.fa-usd-square:before {\n content: '\\f2e9';\n}\n\n.fa-user:before {\n content: '\\f007';\n}\n\n.fa-user-alt:before {\n content: '\\f406';\n}\n\n.fa-user-circle:before {\n content: '\\f2bd';\n}\n\n.fa-user-md:before {\n content: '\\f0f0';\n}\n\n.fa-user-plus:before {\n content: '\\f234';\n}\n\n.fa-user-secret:before {\n content: '\\f21b';\n}\n\n.fa-user-times:before {\n content: '\\f235';\n}\n\n.fa-users:before {\n content: '\\f0c0';\n}\n\n.fa-ussunnah:before {\n content: '\\f407';\n}\n\n.fa-utensil-fork:before {\n content: '\\f2e3';\n}\n\n.fa-utensil-knife:before {\n content: '\\f2e4';\n}\n\n.fa-utensil-spoon:before {\n content: '\\f2e5';\n}\n\n.fa-utensils:before {\n content: '\\f2e7';\n}\n\n.fa-utensils-alt:before {\n content: '\\f2e6';\n}\n\n.fa-vaadin:before {\n content: '\\f408';\n}\n\n.fa-venus:before {\n content: '\\f221';\n}\n\n.fa-venus-double:before {\n content: '\\f226';\n}\n\n.fa-venus-mars:before {\n content: '\\f228';\n}\n\n.fa-viacoin:before {\n content: '\\f237';\n}\n\n.fa-viadeo:before {\n content: '\\f2a9';\n}\n\n.fa-viadeo-square:before {\n content: '\\f2aa';\n}\n\n.fa-vial:before {\n content: '\\f492';\n}\n\n.fa-vials:before {\n content: '\\f493';\n}\n\n.fa-viber:before {\n content: '\\f409';\n}\n\n.fa-video:before {\n content: '\\f03d';\n}\n\n.fa-video-plus:before {\n content: '\\f4e1';\n}\n\n.fa-video-slash:before {\n content: '\\f4e2';\n}\n\n.fa-vimeo:before {\n content: '\\f40a';\n}\n\n.fa-vimeo-square:before {\n content: '\\f194';\n}\n\n.fa-vimeo-v:before {\n content: '\\f27d';\n}\n\n.fa-vine:before {\n content: '\\f1ca';\n}\n\n.fa-vk:before {\n content: '\\f189';\n}\n\n.fa-vnv:before {\n content: '\\f40b';\n}\n\n.fa-volleyball-ball:before {\n content: '\\f45f';\n}\n\n.fa-volume-down:before {\n content: '\\f027';\n}\n\n.fa-volume-mute:before {\n content: '\\f2e2';\n}\n\n.fa-volume-off:before {\n content: '\\f026';\n}\n\n.fa-volume-up:before {\n content: '\\f028';\n}\n\n.fa-vuejs:before {\n content: '\\f41f';\n}\n\n.fa-warehouse:before {\n content: '\\f494';\n}\n\n.fa-warehouse-alt:before {\n content: '\\f495';\n}\n\n.fa-watch:before {\n content: '\\f2e1';\n}\n\n.fa-weibo:before {\n content: '\\f18a';\n}\n\n.fa-weight:before {\n content: '\\f496';\n}\n\n.fa-weixin:before {\n content: '\\f1d7';\n}\n\n.fa-whatsapp:before {\n content: '\\f232';\n}\n\n.fa-whatsapp-square:before {\n content: '\\f40c';\n}\n\n.fa-wheelchair:before {\n content: '\\f193';\n}\n\n.fa-whistle:before {\n content: '\\f460';\n}\n\n.fa-whmcs:before {\n content: '\\f40d';\n}\n\n.fa-wifi:before {\n content: '\\f1eb';\n}\n\n.fa-wikipedia-w:before {\n content: '\\f266';\n}\n\n.fa-window:before {\n content: '\\f40e';\n}\n\n.fa-window-alt:before {\n content: '\\f40f';\n}\n\n.fa-window-close:before {\n content: '\\f410';\n}\n\n.fa-window-maximize:before {\n content: '\\f2d0';\n}\n\n.fa-window-minimize:before {\n content: '\\f2d1';\n}\n\n.fa-window-restore:before {\n content: '\\f2d2';\n}\n\n.fa-windows:before {\n content: '\\f17a';\n}\n\n.fa-wine-glass:before {\n content: '\\f4e3';\n}\n\n.fa-won-sign:before {\n content: '\\f159';\n}\n\n.fa-wordpress:before {\n content: '\\f19a';\n}\n\n.fa-wordpress-simple:before {\n content: '\\f411';\n}\n\n.fa-wpbeginner:before {\n content: '\\f297';\n}\n\n.fa-wpexplorer:before {\n content: '\\f2de';\n}\n\n.fa-wpforms:before {\n content: '\\f298';\n}\n\n.fa-wrench:before {\n content: '\\f0ad';\n}\n\n.fa-x-ray:before {\n content: '\\f497';\n}\n\n.fa-xbox:before {\n content: '\\f412';\n}\n\n.fa-xing:before {\n content: '\\f168';\n}\n\n.fa-xing-square:before {\n content: '\\f169';\n}\n\n.fa-y-combinator:before {\n content: '\\f23b';\n}\n\n.fa-yahoo:before {\n content: '\\f19e';\n}\n\n.fa-yandex:before {\n content: '\\f413';\n}\n\n.fa-yandex-international:before {\n content: '\\f414';\n}\n\n.fa-yelp:before {\n content: '\\f1e9';\n}\n\n.fa-yen-sign:before {\n content: '\\f157';\n}\n\n.fa-yoast:before {\n content: '\\f2b1';\n}\n\n.fa-youtube:before {\n content: '\\f167';\n}\n\n.fa-youtube-square:before {\n content: '\\f431';\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}\n\n/*!\n * Font Awesome Pro 5.0.9 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n */\n@font-face {\n font-family: 'Font Awesome 5 Pro';\n font-style: normal;\n font-weight: 400;\n src: url('../fonts/fa-regular-400.eot');\n src: url('../fonts/fa-regular-400.eot?#iefix') format('embedded-opentype'),\n url('../fonts/fa-regular-400.woff2') format('woff2'),\n url('../fonts/fa-regular-400.woff') format('woff'),\n url('../fonts/fa-regular-400.ttf') format('truetype'),\n url('../fonts/fa-regular-400.svg#fontawesome') format('svg');\n}\n\n.far {\n font-family: 'Font Awesome 5 Pro';\n font-weight: 400;\n}\n\n/*!\n * Font Awesome Pro 5.0.9 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n */\n@font-face {\n font-family: 'Font Awesome 5 Pro';\n font-style: normal;\n font-weight: 900;\n src: url('../fonts/fa-solid-900.eot');\n src: url('../fonts/fa-solid-900.eot?#iefix') format('embedded-opentype'),\n url('../fonts/fa-solid-900.woff2') format('woff2'),\n url('../fonts/fa-solid-900.woff') format('woff'),\n url('../fonts/fa-solid-900.ttf') format('truetype'),\n url('../fonts/fa-solid-900.svg#fontawesome') format('svg');\n}\n\n.fa,\n.fas {\n font-family: 'Font Awesome 5 Pro';\n font-weight: 900;\n}\n","$white: #fff;\n$black: #000;\n\n$grey050: hsl(212, 60%, 97%);\n$grey100: hsl(212, 50%, 93%);\n$grey200: hsl(212, 30%, 85%);\n$grey300: hsl(211, 13%, 65%);\n$grey350: hsl(211, 11%, 59%);\n$grey400: hsl(210, 10%, 53%);\n$grey500: hsl(211, 12%, 43%);\n$grey550: hsl(210, 13%, 40%);\n$grey600: hsl(209, 14%, 37%);\n$grey700: hsl(209, 18%, 30%);\n$grey800: hsl(209, 20%, 25%);\n$grey900: hsl(210, 24%, 16%);\n$grey1000: hsl(210, 24%, 10%);\n\n$blue050: #e3f8ff;\n$blue100: #b3ecff;\n$blue200: #81defd;\n$blue300: #5ed0fa;\n$blue400: #40c3f7;\n$blue500: #2bb0ed;\n$blue600: #1992d4;\n$blue700: #127fbf;\n$blue800: #0b69a3;\n$blue900: #035388;\n\n$cyan050: #e0fcff;\n$cyan100: #bef8fd;\n$cyan200: #87eaf2;\n$cyan300: #54d1db;\n$cyan400: #38bec9;\n$cyan500: #2cb1bc;\n$cyan600: #14919b;\n$cyan700: #0e7c86;\n$cyan800: #0a6c74;\n$cyan900: #044e54;\n\n$pink050: #ffe3ec;\n$pink100: #ffb8d2;\n$pink200: #ff8cba;\n$pink300: #f364a2;\n$pink400: #e8368f;\n$pink500: #da127d;\n$pink600: #bc0a6f;\n$pink700: #a30664;\n$pink800: #870557;\n$pink900: #620042;\n\n$red050: #ffe3e3;\n$red100: #ffbdbd;\n$red200: #ff9b9b;\n$red300: #f86a6a;\n$red400: #ef4e4e;\n$red500: #e12d39;\n$red600: #cf1124;\n$red700: #ab091e;\n$red800: #8a041a;\n$red900: #610316;\n\n$yellow050: #fffbea;\n$yellow100: #fff3c4;\n$yellow200: #fce588;\n$yellow300: #fadb5f;\n$yellow400: #f7c948;\n$yellow500: #f0b429;\n$yellow600: #de911d;\n$yellow700: #cb6e17;\n$yellow800: #b44d12;\n$yellow900: #8d2b0b;\n\n$teal050: #effcf6;\n$teal100: #c6f7e2;\n$teal200: #8eedc7;\n$teal300: #65d6ad;\n$teal400: #3ebd93;\n$teal500: #27ab83;\n$teal600: #199473;\n$teal700: #147d64;\n$teal800: #0c6b58;\n$teal900: #014d40;\n\n// submit button colors\n$primaryColor: $red500;\n$secondaryColor: $grey500;\n\n$inputColor: hsl(212, 25%, 50%);\n\n// text colors\n$textColor: $grey700;\n$mediumDarkTextColor: $grey550;\n$mediumTextColor: $grey550;\n$lightTextColor: $grey500;\n$linkColor: #2563eb;\n\n// menu colors\n$menuOptionColor: $textColor;\n$menuOptionActiveColor: $white;\n$menuOptionActiveBackgroundColor: $grey350;\n\n// hairline colors\n$hairlineColor: transparentize($grey800, 0.9);\n$mediumHairlineColor: transparentize($grey600, 0.75);\n$darkHairlineColor: transparentize($grey400, 0.5);\n\n// focus colors\n$lightFocusColor: $blue300;\n$mediumFocusColor: $blue500;\n$darkFocusColor: #0f74b1;\n\n// focus rings\n$lightFocusRing: 0 0 0 1px $lightFocusColor,\n 0 0 0 3px transparentize($lightFocusColor, 0.3);\n$mediumFocusRing: 0 0 0 1px $mediumFocusColor,\n 0 0 0 3px transparentize($mediumFocusColor, 0.3);\n$darkFocusRing: 0 0 0 1px $darkFocusColor,\n 0 0 0 3px transparentize($darkFocusColor, 0.3);\n\n// selection colors\n$lightSelColor: $grey200;\n$darkSelColor: $grey600;\n\n// alert/notice colors\n$errorColor: $red600;\n$warningColor: $yellow800;\n$successColor: $teal500;\n$noticeColor: $blue800;\n\n// UI element styles\n$smallBorderRadius: 3px;\n$mediumBorderRadius: 4px;\n$largeBorderRadius: 5px;\n\n$menuBorderRadius: $mediumBorderRadius;\n$checkboxSize: 16px;\n$radioSize: 16px;\n\n@mixin sans-serif-font {\n font-family: system-ui, BlinkMacSystemFont, -apple-system, 'Segoe UI',\n 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans',\n 'Helvetica Neue', sans-serif;\n}\n\n@mixin fixed-width-font {\n font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier,\n monospace;\n font-size: 0.9em !important;\n}\n\n// Other\n\n@mixin svg-mask($color) {\n rect,\n circle,\n ellipse,\n line,\n polyline,\n polygon,\n path,\n text {\n fill: $color;\n stroke-width: 0;\n transition: fill linear 100ms;\n }\n}\n\n@mixin icon {\n font-family: 'Craft';\n speak: none;\n -webkit-font-feature-settings: 'liga', 'dlig';\n -moz-font-feature-settings: 'liga=1, dlig=1';\n -moz-font-feature-settings: 'liga', 'dlig';\n -ms-font-feature-settings: 'liga', 'dlig';\n -o-font-feature-settings: 'liga', 'dlig';\n font-feature-settings: 'liga', 'dlig';\n text-rendering: optimizeLegibility;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n direction: ltr; // Fixes a rendering issue in Chrome/Win\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n\n display: inline-block;\n text-align: center;\n font-style: normal;\n vertical-align: middle;\n word-wrap: normal !important;\n user-select: none;\n\n opacity: var(--icon-opacity);\n}\n\n@mixin angle($dir: down, $color: currentColor, $width: 2px) {\n display: block;\n content: '';\n font-size: 0;\n width: 7px;\n height: 7px;\n border: solid $color;\n border-width: 0 $width $width 0;\n opacity: 0.8;\n\n @if $dir == up {\n transform: rotate(225deg);\n } @else if $dir == down {\n transform: rotate(45deg);\n } @else if $dir == left {\n body.ltr & {\n transform: rotate(135deg);\n }\n body.rtl & {\n transform: rotate(-45deg);\n }\n } @else if $dir == right {\n body.ltr & {\n transform: rotate(-45deg);\n }\n body.rtl & {\n transform: rotate(135deg);\n }\n }\n}\n\n@mixin clearafter {\n content: '';\n display: block;\n height: 0;\n clear: both;\n visibility: hidden;\n}\n\n@mixin shadow {\n box-shadow: 0 1px 5px -1px transparentize($grey900, 0.8);\n}\n\n@mixin pane {\n background: $white;\n box-shadow: 0 0 0 1px $grey200, 0 2px 12px transparentize($grey200, 0.5);\n\n &:focus {\n box-shadow: var(--focus-ring);\n }\n}\n\n@mixin modal {\n border-radius: $largeBorderRadius;\n background-color: $white;\n box-shadow: 0 25px 100px transparentize($grey900, 0.5);\n}\n\n@mixin light-on-dark-text() {\n // Make light on dark text sharp on Macs\n // (sub-pixel antialiasing looks too bold/blurry with light text on dark background)\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-weight: 500;\n}\n\n@mixin light-focus-ring() {\n --focus-ring: 0 0 0 1px hsl(var(--light-focus-hsl)),\n 0 0 0 3px hsla(var(--light-focus-hsl), 0.7);\n}\n\n// RTL stuff\n\n@mixin left($left) {\n body.ltr & {\n left: $left;\n }\n body.rtl & {\n right: $left;\n }\n}\n\n@mixin right($right) {\n body.ltr & {\n right: $right;\n }\n body.rtl & {\n left: $right;\n }\n}\n\n@mixin alignleft {\n body.ltr & {\n text-align: left;\n }\n body.rtl & {\n text-align: right;\n }\n}\n\n@mixin alignright {\n body.ltr & {\n text-align: right;\n }\n body.rtl & {\n text-align: left;\n }\n}\n\n@mixin border-left($params...) {\n body.ltr & {\n border-left: $params;\n }\n body.rtl & {\n border-right: $params;\n }\n}\n\n@mixin border-right($params...) {\n body.ltr & {\n border-right: $params;\n }\n body.rtl & {\n border-left: $params;\n }\n}\n\n@mixin border-left-width($param) {\n body.ltr & {\n border-left-width: $param;\n }\n body.rtl & {\n border-right-width: $param;\n }\n}\n\n@mixin border-right-width($param) {\n body.ltr & {\n border-right-width: $param;\n }\n body.rtl & {\n border-left-width: $param;\n }\n}\n\n@mixin border-radius($tl, $tr, $br, $bl) {\n body.ltr & {\n border-radius: $tl $tr $br $bl;\n }\n body.rtl & {\n border-radius: $tr $tl $bl $br;\n }\n}\n\n@mixin border-top-left-radius($params...) {\n body.ltr & {\n border-top-left-radius: $params;\n }\n body.rtl & {\n border-top-right-radius: $params;\n }\n}\n\n@mixin border-top-right-radius($params...) {\n body.ltr & {\n border-top-right-radius: $params;\n }\n body.rtl & {\n border-top-left-radius: $params;\n }\n}\n\n@mixin border-bottom-left-radius($params...) {\n body.ltr & {\n border-bottom-left-radius: $params;\n }\n body.rtl & {\n border-bottom-right-radius: $params;\n }\n}\n\n@mixin border-bottom-right-radius($params...) {\n body.ltr & {\n border-bottom-right-radius: $params;\n }\n body.rtl & {\n border-bottom-left-radius: $params;\n }\n}\n\n@mixin floatleft {\n body.ltr & {\n float: left;\n }\n body.rtl & {\n float: right;\n }\n}\n\n@mixin floatright {\n body.ltr & {\n float: right;\n }\n body.rtl & {\n float: left;\n }\n}\n\n@mixin margin($t, $r, $b, $l, $important: '') {\n body.ltr & {\n margin: $t $r $b $l unquote($important);\n }\n body.rtl & {\n margin: $t $l $b $r unquote($important);\n }\n}\n\n@mixin margin-left($margin...) {\n body.ltr & {\n margin-left: $margin;\n }\n body.rtl & {\n margin-right: $margin;\n }\n}\n\n@mixin margin-right($margin...) {\n body.ltr & {\n margin-right: $margin;\n }\n body.rtl & {\n margin-left: $margin;\n }\n}\n\n@mixin padding($t, $r, $b, $l, $important: '') {\n body.ltr & {\n padding: $t $r $b $l unquote($important);\n }\n body.rtl & {\n padding: $t $l $b $r unquote($important);\n }\n}\n\n@mixin padding-left($padding...) {\n body.ltr & {\n padding-left: $padding;\n }\n body.rtl & {\n padding-right: $padding;\n }\n}\n\n@mixin padding-right($padding...) {\n body.ltr & {\n padding-right: $padding;\n }\n body.rtl & {\n padding-left: $padding;\n }\n}\n\n// Misc\n\n@mixin dark-inputs {\n @include placeholder-styles($grey400);\n\n .btn,\n .select:not(.selectize) select {\n background-color: $grey200;\n\n &:focus,\n &:hover {\n background-color: darken($grey200, 5%);\n }\n\n &:active,\n &.active {\n background-color: darken($grey200, 10%);\n }\n }\n\n .text {\n background-color: $grey200;\n\n &:focus {\n background-color: darken($grey200, 5%);\n }\n }\n}\n\n@mixin header-btn {\n width: 30px;\n height: 30px;\n padding-left: 0;\n padding-right: 0;\n\n &:not(:hover):not(:active):not(.active) {\n background-color: transparent;\n }\n &:not(:active):not(.active):hover {\n background-color: transparentize($grey300, 0.85);\n }\n}\n\n@mixin h6-styles {\n margin: 14px 0 3px;\n font-size: 11px;\n line-height: 1.2;\n color: $lightTextColor;\n text-transform: uppercase;\n}\n\n@mixin token-styles {\n display: inline-block;\n border-radius: $smallBorderRadius;\n padding: 3px 7px;\n font-size: 12px;\n line-height: 14px;\n color: $textColor;\n background-color: $grey100;\n}\n\n@mixin active-token-styles {\n background-color: $grey200;\n}\n\n@mixin menu-styles {\n z-index: 100;\n border-radius: $menuBorderRadius;\n padding: 0 14px;\n overflow: auto;\n background: $white;\n user-select: none;\n box-shadow: 0 0 0 1px transparentize($grey900, 0.9),\n 0 5px 20px transparentize($grey900, 0.75);\n}\n\n@mixin menu-option-styles {\n margin: 0 -14px;\n padding: 10px 14px;\n color: $menuOptionColor;\n text-decoration: none;\n white-space: nowrap;\n}\n\n@mixin menu-option-active-styles {\n color: $menuOptionActiveColor;\n background-color: $menuOptionActiveBackgroundColor;\n}\n\n@mixin disclosure-link-hover-styles {\n color: $menuOptionColor;\n background-color: $grey050;\n}\n\n@mixin input-styles {\n border-radius: $smallBorderRadius;\n border: 1px solid transparentize($inputColor, 0.75);\n background-color: hsl(212, 50%, 99%);\n background-clip: padding-box;\n}\n\n@mixin input-focused-styles {\n border-color: hsl(var(--dark-focus-hsl));\n box-shadow: 0 0 0 2px hsla(var(--dark-focus-hsl), 0.7);\n}\n\n@mixin placeholder-styles($color) {\n ::-webkit-input-placeholder {\n color: $color;\n }\n\n input:-ms-input-placeholder {\n color: $color;\n }\n\n ::-ms-input-placeholder {\n color: $color;\n }\n\n :-moz-placeholder {\n color: $color;\n }\n\n ::-moz-placeholder {\n color: $color;\n }\n\n ::placeholder {\n color: $color;\n }\n}\n\n@mixin select-styles {\n position: relative;\n border-radius: $largeBorderRadius;\n white-space: nowrap;\n}\n\n@mixin select-container-styles {\n max-width: 100%;\n position: relative;\n :not(.flex) > & {\n display: inline-block;\n }\n}\n\n@mixin select-arrow-styles {\n @include angle;\n position: absolute;\n z-index: 1;\n top: calc(50% - 5px);\n @include right(9px);\n user-select: none;\n pointer-events: none;\n}\n\n@mixin select-input-styles {\n display: block;\n position: relative;\n max-width: 100%;\n border: none;\n @include padding(7px, 22px, 7px, 10px);\n font-size: 14px;\n line-height: 20px;\n color: $textColor;\n background-color: hsl(212, 25%, 90%);\n appearance: none;\n // from https://stackoverflow.com/a/15933790/1688568\n &::-ms-expand {\n display: none;\n }\n}\n\n@mixin select-input-fullwidth-styles {\n min-width: 100%;\n}\n\n@mixin select-input-focused-styles {\n outline-color: transparent;\n background-color: hsl(212, 25%, 85%);\n box-shadow: var(--focus-ring);\n}\n\n@mixin touch-target {\n height: var(--touch-target-size);\n width: var(--touch-target-size);\n}\n\n@mixin visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n@mixin readable {\n font-size: 16px;\n line-height: 22px;\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin: 24px 0 16px;\n font-weight: 600;\n }\n\n h1 {\n font-size: 32px;\n line-height: 40px;\n color: #000;\n }\n\n h2 {\n font-size: 24px;\n line-height: 30px;\n }\n\n h3 {\n font-size: 20px;\n line-height: 24px;\n }\n\n h4 {\n font-size: 16px;\n line-height: 20px;\n }\n\n h5 {\n font-size: 14px;\n line-height: 18px;\n }\n\n h6 {\n font-size: 13.6px;\n line-height: 17px;\n color: $mediumTextColor;\n }\n\n ul,\n ol {\n margin: 1em 0;\n @include padding-left(2em);\n }\n\n ul li {\n list-style-type: disc;\n }\n\n li + li {\n margin-top: 0.25em;\n }\n\n blockquote {\n margin: 16px 0;\n\n &:not(.note) {\n padding: 0 16px;\n color: $mediumTextColor;\n @include border-left(4px solid $hairlineColor);\n }\n\n &.note {\n position: relative;\n border-radius: 4px;\n padding: 1em;\n @include padding-left(56px);\n border: 1px solid;\n\n &:not(.tip):not(.warning) {\n border-color: $errorColor;\n color: #bf503f;\n\n &:before {\n content: 'alert';\n color: $errorColor;\n }\n }\n\n &.tip {\n border-color: $linkColor;\n color: $mediumTextColor;\n\n &:before {\n content: 'lightbulb';\n color: $linkColor;\n }\n }\n\n &.warning {\n border-color: $warningColor;\n color: #cf783a;\n\n &:before {\n content: 'alert';\n color: $warningColor;\n }\n }\n\n &:before {\n @include icon;\n position: absolute;\n top: 12px;\n @include left(16px);\n font-size: 30px;\n width: 24px;\n }\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/src/web/assets/feedme/src/scss/feed-me.scss b/src/web/assets/feedme/src/scss/feed-me.scss index e0cf542a..c6070f89 100644 --- a/src/web/assets/feedme/src/scss/feed-me.scss +++ b/src/web/assets/feedme/src/scss/feed-me.scss @@ -38,10 +38,10 @@ body.ltr .table-feed-me .thin.action { } .table-feed-me .thin.action .icon { - color: rgba(0, 0, 0, 0.2); + color: var(--ui-control-color); &:hover { - color: #0d78f2; + color: var(--link-color); } } @@ -89,14 +89,6 @@ body.ltr .table-feed-me .thin.action { } } -#feeds .settings-pane .btn-group { - display: inline-flex; -} - -#feeds .settings-pane .btn-group .btn { - height: auto; -} - #feeds .settings-pane .input input { font-size: 12px; } @@ -372,22 +364,6 @@ body.ltr .table-feed-me .thin.action { justify-content: flex-end; padding-top: 8px; - .lightswitch.small { - width: 25px; - height: 16px; - margin-bottom: -4px; - } - - .lightswitch.small .label { - height: 16px; - } - - .lightswitch.small .handle { - margin: 1px -8px; - width: 14px; - height: 14px; - } - > .heading > label { font-weight: 400; cursor: pointer; diff --git a/src/web/twig/variables/FeedMeVariable.php b/src/web/twig/variables/FeedMeVariable.php index b9a4ba19..3b0dc055 100644 --- a/src/web/twig/variables/FeedMeVariable.php +++ b/src/web/twig/variables/FeedMeVariable.php @@ -17,6 +17,7 @@ use craft\fields\RadioButtons; use craft\fields\Url; use craft\helpers\DateTimeHelper; +use craft\helpers\Html; use craft\helpers\UrlHelper; use craft\models\CategoryGroup; use craft\models\Section; @@ -93,7 +94,7 @@ public function getSelectOptions($options, $label = 'name', $index = 'id', $incl continue; } - $values[$value[$index]] = $value[$label]; + $values[$value[$index]] = Html::encode($value[$label]); } } @@ -344,6 +345,8 @@ public function supportedSubField($class): bool Number::class, PlainText::class, RadioButtons::class, + 'craft\ckeditor\Field', + 'craft\redactor\Field', ]; return in_array($class, $supportedSubFields, true);