diff --git a/config/listener.yaml b/config/listener.yaml index 19348c6a2b..9b42bb24c4 100644 --- a/config/listener.yaml +++ b/config/listener.yaml @@ -525,11 +525,6 @@ services: arguments: - '@monolog.logger.contao.error' - contao.messenger.worker_listener: - class: Contao\CoreBundle\Messenger\EventListener\WorkerListener - arguments: - - '@contao.messenger.auto_fallback_notifier' - contao.twig.loader.auto_refresh_template_hierarchy_listener: class: Contao\CoreBundle\Twig\Loader\AutoRefreshTemplateHierarchyListener arguments: diff --git a/config/services.yaml b/config/services.yaml index 1680229c73..0acf294f9a 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -415,6 +415,7 @@ services: contao.assets.files_context: '@contao.assets.files_context' contao.routing.page_finder: '@contao.routing.page_finder' contao.framework: '@contao.framework' + contao.filesystem.virtual.files: '@contao.filesystem.virtual.files' event_dispatcher: '@event_dispatcher' - '%kernel.project_dir%' - '%contao.upload_path%' @@ -472,7 +473,7 @@ services: contao.insert_tag.resolver.if_language: class: Contao\CoreBundle\InsertTag\Resolver\IfLanguageInsertTag arguments: - - '@request_stack' + - '@translator' contao.insert_tag.resolver.legacy: class: Contao\CoreBundle\InsertTag\Resolver\LegacyInsertTag @@ -549,23 +550,18 @@ services: arguments: - '@contao.menu.matcher' - contao.messenger.auto_fallback_notifier: - class: Contao\CoreBundle\Messenger\AutoFallbackNotifier - arguments: - - '@cache.app' - - '@messenger.receiver_locator' - - contao.messenger.auto_fallback_transport_factory: - class: Contao\CoreBundle\Messenger\Transport\AutoFallbackTransportFactory - arguments: - - '@contao.messenger.auto_fallback_notifier' - - '@messenger.receiver_locator' - contao.messenger.search_index_message_handler: class: Contao\CoreBundle\Messenger\MessageHandler\SearchIndexMessageHandler arguments: - '@?contao.search.indexer' + contao.messenger.web_worker: + class: Contao\CoreBundle\Messenger\WebWorker + arguments: + - '@cache.app' + - '@console.command.messenger_consume_messages' + - '@messenger.receiver_locator' + contao.model_argument_resolver: class: Contao\CoreBundle\HttpKernel\ModelArgumentResolver arguments: diff --git a/contao/dca/tl_article.php b/contao/dca/tl_article.php index 41cc25a7f0..0a5ebe1132 100644 --- a/contao/dca/tl_article.php +++ b/contao/dca/tl_article.php @@ -101,8 +101,6 @@ ( 'id' => array ( - 'label' => array('ID'), - 'search' => true, 'sql' => "int(10) unsigned NOT NULL auto_increment" ), 'pid' => array diff --git a/contao/dca/tl_content.php b/contao/dca/tl_content.php index 7d822ad28b..600c5c6829 100644 --- a/contao/dca/tl_content.php +++ b/contao/dca/tl_content.php @@ -167,8 +167,7 @@ ( 'id' => array ( - 'sql' => "int(10) unsigned NOT NULL auto_increment", - 'search' => true + 'sql' => "int(10) unsigned NOT NULL auto_increment" ), 'pid' => array ( diff --git a/contao/dca/tl_favorites.php b/contao/dca/tl_favorites.php index e497f6ab7f..f222117028 100644 --- a/contao/dca/tl_favorites.php +++ b/contao/dca/tl_favorites.php @@ -60,8 +60,6 @@ ( 'id' => array ( - 'label' => array('ID'), - 'search' => true, 'sql' => "int(10) unsigned NOT NULL auto_increment" ), 'pid' => array diff --git a/contao/dca/tl_module.php b/contao/dca/tl_module.php index 0b2488973f..4a0f3d88b9 100644 --- a/contao/dca/tl_module.php +++ b/contao/dca/tl_module.php @@ -106,7 +106,6 @@ ( 'id' => array ( - 'search' => true, 'sql' => "int(10) unsigned NOT NULL auto_increment" ), 'pid' => array diff --git a/contao/dca/tl_page.php b/contao/dca/tl_page.php index 97ee76ed66..4cb7b2e8e1 100644 --- a/contao/dca/tl_page.php +++ b/contao/dca/tl_page.php @@ -145,8 +145,6 @@ ( 'id' => array ( - 'label' => array('ID'), - 'search' => true, 'sql' => "int(10) unsigned NOT NULL auto_increment" ), 'pid' => array diff --git a/contao/drivers/DC_Folder.php b/contao/drivers/DC_Folder.php index 0b503aae2e..aa0e4ccad1 100644 --- a/contao/drivers/DC_Folder.php +++ b/contao/drivers/DC_Folder.php @@ -602,24 +602,19 @@ public function showAll() )) . ')' ; - if (isset($GLOBALS['TL_DCA'][$this->strTable]['list']['global_operations']['toggleNodes'])) - { - $return = '
' . $return . '
'; - } - - return $return; + return '
' . $return . '
'; } /** @@ -2748,7 +2743,7 @@ protected function generateTree($path, $intMargin, $mount=false, $blnProtected=t } } - $return .= '
'; + $return .= ''; // Call the next node if (!empty($content) && $blnIsOpen) @@ -2849,7 +2844,7 @@ protected function generateTree($path, $intMargin, $mount=false, $blnProtected=t } } - $return .= $_buttons . '
'; + $return .= $_buttons . ''; } return $return; diff --git a/contao/drivers/DC_Table.php b/contao/drivers/DC_Table.php index 927c3fdbb6..df3f29eb26 100644 --- a/contao/drivers/DC_Table.php +++ b/contao/drivers/DC_Table.php @@ -392,6 +392,15 @@ public function showAll() ); $objSession->set('CLIPBOARD', $arrClipboard); + + if ($this->currentPid) + { + $this->redirect(Backend::addToUrl('id=' . $this->currentPid, false, array('act', 'mode'))); + } + else + { + $this->redirect(Backend::addToUrl('', false, array('act', 'mode', 'id'))); + } } // Custom filter @@ -3950,7 +3959,7 @@ protected function treeView() $breadcrumb = $GLOBALS['TL_DCA'][$table]['list']['sorting']['breadcrumb'] ?? ''; // Return if there are no records - if (!$tree && Input::get('act') != 'paste') + if (!$tree && !$blnClipboard) { if ($breadcrumb) { @@ -4092,25 +4101,20 @@ protected function treeView() '; } - if (isset($GLOBALS['TL_DCA'][$this->strTable]['list']['global_operations']['toggleNodes'])) - { - $return = '
' . $return . '
'; - } - - return $return; + return '
' . $return . '
'; } /** @@ -4326,7 +4330,7 @@ protected function generateTree($table, $id, $arrPrevNext, $blnHasSorting, $intM { $mouseover = ' toggle_select hover-div'; } - elseif (($GLOBALS['TL_DCA'][$this->strTable]['list']['sorting']['mode'] ?? null) == self::MODE_TREE_EXTENDED && Input::get('act') == 'paste') + elseif (($GLOBALS['TL_DCA'][$this->strTable]['list']['sorting']['mode'] ?? null) == self::MODE_TREE_EXTENDED && $arrClipboard !== false) { $mouseover = ' hover-div'; } @@ -4604,7 +4608,7 @@ protected function parentView()
'; // List all records of the child table - if (\in_array(Input::get('act'), array('paste', 'select', null))) + if (\in_array(Input::get('act'), array('select', null))) { // Header $imagePasteNew = Image::getHtml('new.svg', $labelPasteNew[0]); @@ -5501,7 +5505,7 @@ protected function listView() */ protected function searchMenu() { - $searchFields = array(); + $searchFields = array('id'); $objSessionBag = System::getContainer()->get('request_stack')->getSession()->getBag('contao_backend'); $session = $objSessionBag->all(); diff --git a/contao/library/Contao/Database.php b/contao/library/Contao/Database.php index 3cb5bf49cb..291f0626f3 100644 --- a/contao/library/Contao/Database.php +++ b/contao/library/Contao/Database.php @@ -157,6 +157,11 @@ public function query($strQuery) /** * Auto-generate a FIND_IN_SET() statement * + * Do not pass user input as $strKey to this method as only identifiers get + * quoted and SQL expressions get returned as is! + * + * @internal Do not use this class in your code + * * @param string $strKey The field name * @param mixed $varSet The set to find the key in * @param boolean $blnIsField If true, the set will not be quoted @@ -657,6 +662,12 @@ public function getUuid() /** * Quote the column name if it is a reserved word * + * Do not pass user input to this method as only identifiers get quoted and + * SQL expressions get returned as is! + * + * @internal Do not use this class in your code; use the "quoteIdentifier()" + * method of the "@database_connection" service instead + * * @param string $strName * * @return string diff --git a/contao/library/Contao/StringUtil.php b/contao/library/Contao/StringUtil.php index 780571dbc0..124229cb65 100644 --- a/contao/library/Contao/StringUtil.php +++ b/contao/library/Contao/StringUtil.php @@ -607,9 +607,15 @@ public static function srcToInsertTag($data) */ public static function insertTagToSrc($data) { - $return = ''; $paths = preg_split('/((src|href)="([^"]*){{file::([^"}|]+)[^"}]*}}")/i', $data, -1, PREG_SPLIT_DELIM_CAPTURE); + if (!$paths) + { + return $data; + } + + $return = ''; + for ($i=0, $c=\count($paths); $i<$c; $i+=5) { $return .= $paths[$i]; diff --git a/contao/templates/forms/form_wrapper.html5 b/contao/templates/forms/form_wrapper.html5 index 4b8029323a..3b80668819 100644 --- a/contao/templates/forms/form_wrapper.html5 +++ b/contao/templates/forms/form_wrapper.html5 @@ -64,6 +64,10 @@ $this->wrapperAttributes = $this // Send the triggered button data as well if (e.submitter) { formData.append(e.submitter.name, e.submitter.value); + + // Prevent double form submission + e.submitter.disabled = true; + setTimeout(() => e.submitter.disabled = false, 30000); } request(form, formData, xhr => { @@ -75,10 +79,10 @@ $this->wrapperAttributes = $this return; } - const template = document.createElement('template'); - template.innerHTML = xhr.responseText.trim(); + const range = document.createRange(); + range.selectNode(form.parentNode); - const newForm = template.content.firstElementChild; + const newForm = range.createContextualFragment(xhr.responseText).firstElementChild; form.replaceWith(newForm); if (!newForm.getAttribute('action')) { @@ -93,4 +97,14 @@ $this->wrapperAttributes = $this initForm(el); }); + + attr()->setIfExists('nonce', $this->nonce('script-src')) ?>> + document.currentScript.previousElementSibling.querySelector('form').addEventListener('submit', e => { + // Prevent double form submission + if (e.submitter) { + e.submitter.disabled = true; + setTimeout(() => e.submitter.disabled = false, 30000); + } + }); + diff --git a/contao/themes/flexible/backend.0e6e4e98.css.map b/contao/themes/flexible/backend.0e6e4e98.css.map deleted file mode 100644 index 7dc09e829b..0000000000 --- a/contao/themes/flexible/backend.0e6e4e98.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"backend.0e6e4e98.css","mappings":"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gBAED,CAGA,0CACC,0BAA2B,CAC3B,kBACD,CAEA,qBACC,oCACD,CAEA,4CACC,WACD,CAEA,oBACC,uCACD,CAEA,4CACC,oCACD,CAEA,2CACC,qCACD,CAGA,OACC,UAAW,CAGX,cAAgB,CAFhB,WAAa,CACb,gBAED,CAEA,qBACC,WAAY,CACZ,aACD,CAEA,UACC,UACD,CAEA,WAEC,kBAAmB,CADnB,QAAS,CAET,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,SAAU,CACV,iBAAkB,CAClB,SACD,CAGA,uBACC,cACD,CAEA,cACC,sBAAuB,CACvB,mBAAoB,CACpB,mBAAoB,CAIpB,kBAAmB,CAHnB,YAAa,CACb,iDAAkD,CAClD,oEAED,CAEA,gBACC,sCAAuC,CACvC,uCACD,CAEA,yCACC,mBACD,CAGA,4BACC,gBAAiB,CACjB,iBAAkB,CAClB,iBACD,CAEA,yBACC,UAAW,CACX,uBACD,CAEA,yBACC,UAAW,CACX,uBACD,CAEA,0BACC,uBACD,CAEA,sCACC,UACD,CAEA,gCACC,UAAW,CACX,aACD,CAEA,yBACC,aACD,CAEA,QACC,WACD,CAEA,UACC,iBACD,CAEA,YACC,WACD,CAEA,cACC,iBACD,CAEA,yBACC,eACD,CAEA,WACC,eACD,CAEA,eACC,gBACD,CAEA,eACC,SACD,CAEA,mBACC,mBACD,CAEA,gBACC,yBACD,CAEA,eAGC,0BAA2B,CAE3B,iBAAkB,CADlB,eAAgB,CAHhB,YAAa,CACb,WAID,CAEA,gBACC,gBACD,CAGA,SAIC,yBAA0B,CAD1B,iBAAkB,CADlB,kBAAmB,CADnB,eAID,CAEA,2DACC,QAAS,CACT,eAAgB,CAChB,SACD,CAEA,wGAGC,kBAAmB,CACnB,cAAe,CAFf,YAAa,CADb,YAID,CAEA,sFAGC,kBAAmB,CACnB,cAAe,CAFf,YAAa,CADb,QAID,CAEA,yEAEC,eAAgB,CADhB,iBAED,CAEA,kEACC,yEACC,eACD,CACD,CAEA,0CACC,iBACD,CAEA,sCACC,qBACD,CAEA,qDACC,QAAS,CACT,QAAS,CACT,SACD,CAGA,SACC,UACD,CAEA,6BACC,SACD,CAEA,WACC,aACD,CAEA,WACC,SACD,CAEA,aACC,UACD,CAEA,cACC,SACD,CAEA,cACC,SACD,CAEA,qGAQC,oBAAqB,CACrB,uBAAwB,CAFxB,+BAAgC,CAFhC,mCAAoC,CACpC,iBAAkB,CAHlB,qBAAsB,CAFtB,WAAY,CACZ,YAAa,CAEb,mBAMD,CAEA,qLAEC,wCAAyC,CACzC,4CAA6C,CAF7C,+BAAgC,CAGhC,kBACD,CAEA,qLACC,wCAAyC,CACzC,4CACD,CAEA,aACC,YAAa,CAEb,gBAAiB,CADjB,eAED,CAEA,+EACC,eACD,CAEA,2FACC,cACD,CAEA,0BACC,WACD,CAEA,gBACC,cACD,CAEA,mBACC,WAAY,CAEZ,kBAAmB,CADnB,aAED,CAEA,8CACC,uBACD,CAEA,iDACC,uBAAwB,CAIxB,kTAAmT,CAHnT,WAAY,CAEZ,cAAe,CADf,UAGD,CAEA,4BACC,6MACC,gBACD,CACD,CAEA,6CACC,oCACC,6MACC,gBACD,CAEA,mBACC,eACD,CAEA,iDACC,kBACD,CACD,CACD,CAEA,6BACC,qGACC,mBACD,CACD,CAGA,OAEC,oBAAqB,CACrB,uBAAwB,CAFxB,mBAGD,CAEA,mBACC,YACD,CAEA,iBACC,WACD,CAEA,yCACC,UACD,CAEA,gBACC,SACD,CAEA,oBACC,SACD,CAEA,6EAOC,yzBAA0zB,CAC1zB,6BAA8B,CAJ9B,mCAAoC,CAEpC,iBAAkB,CAHlB,qBAAsB,CAMtB,cAAe,CARf,WAAY,CACZ,YAAa,CAGb,wBAKD,CAEA,8PAGC,wCAAyC,CACzC,4CAA6C,CAF7C,+BAAgC,CAGhC,kBACD,CAEA,+HACC,qBACD,CAEA,6BACC,6EACC,wBACD,CACD,CAGA,aACC,gBACD,CAEA,kBACC,oBACD,CAEA,8BACC,eACD,CAEA,oCACC,eACD,CAEA,kEACC,oCACC,eACD,CACD,CAGA,wBACC,cACD,CAEA,0CACC,eACD,CAEA,kEACC,0CACC,eACD,CACD,CAEA,kDAGC,gBAAiB,CAFjB,iBAAkB,CAClB,QAED,CAEA,kBACC,6BACD,CAEA,sDACC,yBACD,CAGA,UACC,gBACD,CAEA,eACC,oBACD,CAGA,gBACC,cACD,CAEA,mBAGC,kBAAmB,CACnB,cAAe,CAFf,mBAAoB,CADpB,kBAID,CAGA,iBACC,YACD,CAGA,WAOC,6BAA8B,CAJ9B,mCAAoC,CACpC,iBAAkB,CAClB,qBAAsB,CACtB,cAAe,CALf,WAAY,CACZ,gBAAiB,CAMjB,8BACD,CAEA,iBAEC,yCAA0C,CAD1C,aAED,CAEA,kBACC,+BACD,CAEA,oBAEC,gDAAkD,CADlD,iBAAkB,CAElB,kBACD,CAEA,iFACC,yBACD,CAEA,mGACC,+BACD,CAOA,0BAJC,oBAQD,CAJA,cAEC,iBAAkB,CAClB,SACD,CAEA,kCAGC,eAAgB,CAFhB,QAAS,CACT,SAED,CAGA,mBACC,eACD,CAEA,4BACC,eACD,CAEA,UACC,iBAAkB,CAClB,QAAS,CACT,qBACD,CAEA,sBAGC,eAAgB,CADhB,QAAS,CADT,SAAU,CAGV,qBACD,CAEA,2DACC,uBACD,CAEA,mBACC,SACD,CAEA,uBACC,oBACD,CAEA,YACC,eACD,CAEA,eACC,aACD,CAEA,gCACC,UACD,CAEA,QACC,UACD,CAEA,YACC,cACD,CAEA,YACC,WACD,CAGA,QAGC,WAAY,CAFZ,WAAY,CACZ,eAED,CAEA,KAKC,2BAA4B,CAD5B,iBAAkB,CAFlB,cAAe,CACf,eAAgB,CAFhB,iBAAkB,CAKlB,UACD,CAEA,SACC,eACD,CAEA,0BACC,wBACD,CAEA,YAQC,wCAAyC,CAFzC,iCAAkC,CAClC,kCAAmC,CANnC,UAAW,CACX,UAAW,CAGX,QAAS,CAFT,iBAAkB,CAClB,SAKD,CAEA,iBACC,SAAU,CACV,SACD,CAGA,qGACC,2CACD,CAGA,aAMC,2BAA4B,CAF5B,iBAAkB,CAGlB,wBAAyB,CANzB,WAAY,CAOZ,gBAAiB,CACjB,eAAgB,CAPhB,eAAgB,CAChB,eAAgB,CAEhB,eAKD,CAGA,yBACC,cACC,sBACD,CAEA,yBACC,eACD,CAEA,KACC,eACD,CAGA,yBACC,aAAc,CACd,cACD,CAEA,yBAEC,UAAW,CACX,eAAgB,CAFhB,sBAGD,CAEA,0DACC,UACD,CAEA,yBACC,eACD,CAEA,6BAEC,qBAAsB,CADtB,eAED,CACD,CAGA,0BACC,KACC,eACD,CAEA,KACC,eACD,CAEA,KACC,eACD,CAEA,KACC,eACD,CAEA,KACC,eACD,CAEA,OACC,YACD,CAEA,iBAEC,SAAa,CADb,mBAAoB,CAEpB,WAAY,CACZ,iBAAkB,CAClB,gBAAiB,CACjB,eAAiB,CACjB,UACD,CAEA,iBACC,eACD,CACD,CAGA,6BACC,cACC,mBACD,CAEA,iBAKC,yBAA0B,CAC1B,mCAAoC,CACpC,iBAAkB,CAJlB,WAAY,CAKZ,qBAAsB,CAEtB,iBAAkB,CANlB,cAAe,CAKf,aAAc,CARd,iBAAkB,CAClB,OASD,CAEA,wBACC,QAAS,CAET,eAAgB,CAChB,kBAAmB,CAFnB,UAGD,CAEA,4BAGC,yBAA0B,CAD1B,eAAgB,CADhB,YAGD,CAEA,kCACC,mCACD,CAEA,wBASC,4BAA6B,CAC7B,mCAAoC,CAHpC,YAAa,CADb,SAAU,CAEV,UAGD,CAEA,+CAZC,UAAW,CACX,aAAc,CACd,QAAS,CAET,iBAAkB,CADlB,OAoBD,CAXA,uBASC,4BAA6B,CAC7B,uCAAwC,CAHxC,YAAa,CADb,SAAU,CAEV,UAGD,CAEA,kCAEC,yBAA0B,CAD1B,iBAED,CAEA,kCAIC,yBAA0B,CAE1B,mCAAc,CAAd,aAAc,CACd,yBAA0B,CAC1B,qBAAsB,CAPtB,WAAY,CACZ,YAAa,CACb,eAAgB,CAMhB,8BACD,CAEA,iFACC,mCACD,CAEA,wCACC,YACD,CACD,CC1kCA,MACC,+BAAkC,CAClC,2CAA8C,CAC9C,2CAA8C,CAC9C,+CAAkD,CAClD,iCAAoC,CACpC,8CAAiD,CACjD,iCAAoC,CACpC,uCAA0C,CAC1C,sDAAyD,CACzD,mCAAsC,CACtC,+CAAkD,CAClD,2CAA8C,CAC9C,6CAAgD,CAChD,qCAAwC,CACxC,yCAA4C,CAC5C,qCACD,CAEA,6BACC,qCAAwC,CACxC,iDAAoD,CACpD,iDAAoD,CACpD,qDAAwD,CACxD,uCAA0C,CAC1C,oDAAuD,CACvD,uCAA0C,CAC1C,6CAAgD,CAChD,4DAA+D,CAC/D,yCAA4C,CAC5C,qDAAwD,CACxD,iDAAoD,CACpD,mDAAsD,CACtD,2CAA8C,CAC9C,+CAAkD,CAClD,2CACD,CAGA,KAEC,sBAAuB,CADvB,uBAED,CAEA,kDACC,KACC,oBACD,CACD,CAGA,KACC,yBAA0B,CAC1B,iBACD,CAEA,WACC,4BACD,CAGA,QAGC,2BAA4B,CAF5B,eAAgB,CAChB,eAED,CAEA,WACC,iBACD,CAEA,aAIC,iDAAkD,CAHlD,aAAc,CAId,eAAgB,CAHhB,WAAY,CACZ,2BAGD,CAEA,wBAEC,wBAAyB,CADzB,cAED,CAEA,kEACC,aACC,eACD,CACD,CAEA,OACC,YAAa,CACb,wBACD,CAEA,UACC,iBACD,CAEA,gCAGC,oBAAqB,CAFrB,QAAS,CACT,iBAED,CAEA,WAMC,6BAA8B,CAE9B,iBAAkB,CAHlB,sBAAuB,CADvB,eAAgB,CAMhB,eAAgB,CAPhB,SAAU,CAIV,WAAY,CANZ,iBAAkB,CAQlB,aAAc,CAPd,OASD,CAEA,eACC,YACD,CAEA,sBAEC,eAAgB,CAChB,QAAS,CAFT,oBAGD,CAEA,mBACC,kBAAmB,CACnB,qBACD,CAEA,uBAOC,mEAAsE,CAFtE,WAAY,CAHZ,cAAe,CACf,iBAAkB,CAClB,eAAgB,CAEhB,kBAAmB,CALnB,iBAOD,CAEA,kEACC,uBACC,eACD,CACD,CAEA,sDACC,wBAAyB,CACzB,oCACD,CAEA,yHACC,uCACD,CAEA,uBAKC,4BAA6B,CAC7B,sCAAuC,CACvC,mCAAoC,CAEpC,iBAAkB,CALlB,cAAe,CAHf,eAAgB,CAUhB,SAAU,CATV,iBAAkB,CAClB,SAAU,CAOV,eAAgB,CAGhB,+CAAiD,CADjD,iBAAkB,CAJlB,SAMD,CAEA,+BACC,SAAU,CACV,kBACD,CAEA,4BAEC,aAAc,CADd,aAAc,CAEd,yBAA0B,CAC1B,kBACD,CAEA,kCACC,oCACD,CAEA,6BAGC,qCAAsC,CAFtC,iBAAkB,CAGlB,eAAgB,CAChB,iBAAkB,CAHlB,iBAAkB,CAIlB,kBACD,CAEA,8BACC,iBAAkB,CAClB,aACD,CAEA,8BASC,4BAAsC,CAAtC,yCAAsC,CARtC,UAAW,CACX,aAAc,CAEd,QAAS,CACT,iBAAkB,CAClB,SAAU,CACV,SAAU,CAJV,OAOD,CAEA,6BASC,4CAA6C,CAD7C,0CAA2C,CAP3C,UAAW,CACX,aAAc,CAEd,UAAW,CACX,iBAAkB,CAElB,UAAW,CADX,QAAS,CAIT,wBAA0B,CAP1B,SAQD,CAEA,+BAGC,kCAAmC,CAFnC,cAAe,CACf,aAED,CAEA,uFAEC,kBAAmB,CAEnB,eAAgB,CADhB,iBAAkB,CAGlB,gBAAiB,CADjB,kBAAmB,CAJnB,UAMD,CAEA,mBACC,oDACD,CAEA,sBACC,uDACD,CAEA,8BACC,+DACD,CAEA,oBACC,qDACD,CAEA,0BACC,2DACD,CAEA,qBACC,oDACD,CAEA,sBACC,qDACD,CAEA,uBACC,sDACD,CAEA,oBACC,mDACD,CAGA,WACC,YAAa,CACb,6BACD,CAEA,kBAIC,cAAe,CADf,YAAa,CAFb,SAAU,CACV,UAGD,CAGA,MAEC,wBAAyB,CACzB,YAAa,CACb,qBAAsB,CAHtB,WAID,CAEA,eAGC,gBAAiB,CACjB,eAAgB,CAHhB,cAAe,CACf,iBAGD,CAEA,gCACC,sBACD,CAGA,MAEC,YAAa,CACb,qBAAsB,CAFtB,wBAGD,CAEA,aAMC,QAAS,CACT,eAAgB,CANhB,UAAW,CAGX,QAAS,CADT,cAAe,CAEf,SAAU,CAHV,UAMD,CAEA,eAKC,4BAA6B,CAC7B,sCAAuC,CALvC,kBACD,CAOA,sBAEC,QAAS,CADT,QAED,CAGA,eACC,WACD,CAEA,6BACC,gBACD,CAEA,sCAMC,+BAAgC,CALhC,UAAW,CAGX,aAAc,CADd,UAAW,CAEX,gBAAiB,CAHjB,uBAKD,CAEA,2CACC,YACD,CAEA,8CAIC,sBAAuB,CAHvB,aAAc,CAId,gBAAiB,CAEjB,eAAgB,CALhB,aAAc,CACd,wBAAyB,CAGzB,wBAED,CAEA,kEACC,8CACC,eACD,CACD,CAEA,gCACC,2DACD,CAEA,8BACC,mDACD,CAEA,6BACC,mDACD,CAEA,+BACC,kDACD,CAEA,6BACC,kDACD,CAEA,6BACC,eACD,CAEA,sCAIC,gBAAiB,CAHjB,aAAc,CAEd,eAAgB,CADhB,yBAA0B,CAG1B,yBACD,CAEA,kEACC,sCACC,eACD,CACD,CAEA,iDACC,mCAAoC,CACpC,mCACD,CAEA,0CACC,iBACD,CAEA,+BACC,iBACD,CAEA,0CACC,iBACD,CAEA,+BACC,iBACD,CAEA,0CACC,iBACD,CAEA,+BACC,iBACD,CAEA,0CACC,iBACD,CAEA,+BACC,iBACD,CAEA,0CACC,iBACD,CAEA,+BACC,gBACD,CAEA,yDACC,eACD,CAEA,wDACC,kBACD,CAEA,+EAEC,mCAAoC,CADpC,sBAED,CAEA,wCACC,YACD,CAGA,YACC,QAAS,CACT,gBAAiB,CACjB,gBACD,CAEA,YACC,cACD,CAEA,SACC,eAAgB,CAChB,UACD,CAGA,eAGC,YAAa,CADb,gBAAiB,CADjB,gBAGD,CAEA,sBACC,YACD,CAEA,oBACC,oBAAqB,CAMrB,UAAW,CADX,gBAAiB,CAJjB,qBAAsB,CAEtB,eAAgB,CAChB,sBAAuB,CAFvB,kBAKD,CAEA,kCACC,eACD,CAEA,gCACC,eAAgB,CAChB,eACD,CAEA,kEACC,kCACC,eACD,CAEA,gCACC,eACD,CACD,CAEA,gBACC,eAAgB,CAChB,aACD,CAEA,YACC,iBAAkB,CAClB,gBACD,CAEA,YACC,iBAAkB,CAClB,iBACD,CAEA,WAGC,2CAAwD,CAFxD,WAAY,CACZ,sBAED,CAEA,uCAGC,eAAgB,CAFhB,cAAe,CACf,2BAED,CAEA,UACC,mEACD,CAEA,YACC,kEACD,CAEA,SACC,iEACD,CAEA,QACC,oEACD,CAEA,8CACC,gBACD,CAEA,yBACC,yBACD,CAEA,0BACC,kBACD,CAEA,oBACC,iBACD,CAEA,kBACC,mBACD,CAEA,uEAEC,2BAA4B,CAD5B,yBAED,CAEA,mEACC,aACD,CAGA,4BAEC,0BAA2B,CAC3B,6CAA8C,CAF9C,gBAAiB,CAGjB,gBACD,CAEA,kBACC,gBACD,CAEA,qBACC,eACD,CAEA,6BACC,eACD,CAEA,6BACC,qBACD,CAMA,8CAHC,iBAeD,CAZA,eAGC,QAAS,CAQT,cAAe,CATf,WAAY,CAEZ,QAAS,CAIT,eAAgB,CAHhB,SAAU,CACV,gBAAiB,CAIjB,OAAQ,CAHR,kBAAmB,CANnB,UAWD,CAEA,cACC,oDACD,CAEA,cACC,oDACD,CAEA,aACC,WAAY,CACZ,qBACD,CAEA,eACC,qBACD,CAEA,oCACC,qBACD,CAEA,iBACC,cAAe,CACf,gBAAiB,CACjB,iBACD,CAEA,2DACC,iCACD,CAEA,+BACC,eACD,CAEA,WACC,UACD,CAEA,sBAEC,eAAgB,CADhB,gBAED,CAEA,4BACC,SACD,CAEA,UACC,SACD,CAEA,qBAEC,eAAgB,CADhB,SAED,CAEA,WACC,SACD,CAEA,sBAEC,eAAgB,CAChB,eAAgB,CAFhB,SAGD,CAEA,oBAGC,4BAA6B,CAC7B,sBAAuB,CAFvB,cAAe,CADf,SAID,CAEA,YACC,SACD,CAEA,uBAEC,cAAe,CADf,SAED,CAGA,cAGC,0BAA2B,CAC3B,6CAA8C,CAH9C,eAAgB,CAChB,eAAgB,CAGhB,eAAgB,CAChB,KAAM,CACN,SACD,CAEA,qBACC,iBAAkB,CAClB,oBACD,CAEA,wCACC,YACD,CAEA,iBAGC,eAAgB,CAFhB,QAAS,CACT,SAAU,CAEV,kBACD,CAEA,iBACC,oBAAqB,CAGrB,gBAAiB,CAFjB,gBAAiB,CACjB,kBAED,CAEA,qBAEC,eAAgB,CAChB,WAAY,CAFZ,SAGD,CAEA,yCACC,UAAW,CACX,aAAc,CAEd,WAAY,CACZ,iBAAkB,CAClB,KAAM,CAHN,UAID,CAEA,qBACC,oEACD,CAEA,oBAEC,mEAAsE,CADtE,OAED,CAGA,QACC,cACD,CAEA,iBAEC,qCAAsC,CADtC,mBAED,CAEA,uCACC,eACD,CAEA,kCAIC,iBAAkB,CADlB,WAAY,CAFZ,QAAS,CACT,gBAGD,CAEA,uBAGC,iBAAkB,CAFlB,cAAe,CACf,SAED,CAEA,sBACC,iBAAkB,CAClB,kBACD,CAEA,0EACC,eACD,CAEA,oBACC,gBACD,CAEA,oBAGC,iBAAkB,CADlB,eAAgB,CADhB,eAGD,CAEA,oDACC,yBACD,CAEA,4CACC,kCACD,CAEA,oBACC,0CAA2C,CAE3C,QAAS,CADT,eAAgB,CAEhB,SACD,CAEA,qBAEC,0BAA2B,CAD3B,gBAED,CAEA,gCACC,YACD,CAGA,oBACC,gBACD,CAEA,0CACC,kCACD,CAEA,+BACC,kBAAoB,CACpB,qBACD,CAEA,kCACC,iBACD,CAEA,sCACC,oBACD,CAEA,2CACC,eAAgB,CAEhB,QAAS,CADT,mBAED,CAGA,sCACC,GACC,0BACD,CACD,CAEA,sBACC,kBACD,CAEA,wBAGC,4BAA6B,CAC7B,4BAA6B,CAF7B,gBAAiB,CADjB,aAID,CAEA,mBACC,YAAa,CAGb,cAAe,CADf,eAAgB,CADhB,aAGD,CAEA,iCACC,cACD,CAEA,iBAEC,kBAAmB,CADnB,iBAED,CAEA,oBAGC,mCAAoC,CACpC,iBAAkB,CAHlB,YAAa,CACb,WAGD,CAEA,wBAOC,yBAA0B,CAH1B,UAAY,CAHZ,YAAa,CACb,qBAAsB,CACtB,sBAAuB,CAEvB,iBAAkB,CAClB,kBAED,CAEA,gCAGC,uDAAwD,CAFxD,wCAAyC,CACzC,qKAED,CAEA,iCACC,yCACD,CAEA,0BACC,iBACD,CAEA,sBACC,eAAgB,CAChB,iBACD,CAEA,qBACC,iBACD,CAEA,sBAEC,eAAgB,CADhB,eAED,CAEA,wBACC,yBACD,CAEA,0BACC,YAAa,CAEb,eAAgB,CADhB,aAED,CAEA,gBAEC,iBAAkB,CADlB,cAED,CAEA,qBACC,YAAa,CACb,eACD,CAEA,8FACC,YACD,CAEA,8FACC,aACD,CAEA,mCACC,kBACD,CAEA,mCACC,gBACD,CAEA,2BAEC,iBAAkB,CADlB,YAED,CAGA,YACC,kCAAmC,CACnC,kBACD,CAEA,4BACC,oBACD,CAEA,cAEC,eAAgB,CADhB,kBAED,CAEA,eAEC,kBAAmB,CADnB,eAED,CAEA,qBACC,aACD,CAEA,yBACC,qBACD,CAEA,kCACC,cACD,CAEA,oBACC,WAAY,CACZ,qBACD,CAEA,8BAGC,eAAgB,CAChB,gBAAiB,CACjB,gBAAiB,CAJjB,QAAS,CACT,aAID,CAEA,iCACC,eAAgB,CAEhB,QAAS,CADT,mBAED,CAEA,8BACC,UAAW,CACX,kBACD,CAEA,wBACC,kBACD,CAEA,0BAEC,4BAA6B,CAC7B,uBAA+B,CAF/B,oBAGD,CAEA,iEAEC,eAAgB,CADhB,kBAED,CAEA,0BAIC,YAAa,CACb,mCAAoC,CAHpC,qBAAsB,CADtB,eAAgB,CAEhB,SAGD,CAEA,6BAEC,eAAgB,CADhB,QAED,CAEA,sEACC,gBACD,CAGA,QACC,qBAAsB,CACtB,gBACD,CAEA,iBAEC,4BAA6B,CAC7B,sBAAuB,CAFvB,eAGD,CAGA,iBACC,eACD,CAEA,qBAKC,uBAAwB,CADxB,sCAAuC,CAFvC,WAAY,CADZ,cAAe,CAEf,WAGD,CAEA,yBAEC,gBAAiB,CACjB,oBAAqB,CAFrB,iBAGD,CAEA,gCAGC,6BAA8B,CAC9B,8DAAgE,CAFhE,WAAY,CAGZ,UAAY,CAJZ,iBAKD,CAGA,iBACC,UACD,CAEA,sBACC,aAAc,CACd,cACD,CAEA,6EACC,eACD,CAEA,kCACC,eACD,CAEA,iCAGC,8BAA+B,CAD/B,qCAAsC,CAEtC,eAAgB,CAHhB,WAID,CAEA,kEACC,iCACC,eACD,CACD,CAEA,iBAEC,kCAAmC,CADnC,gBAED,CAEA,uBAIC,4BAA6B,CAD7B,qCAAsC,CADtC,eAAgB,CADhB,iBAID,CAEA,wBACC,WAAY,CAEZ,eAAgB,CAChB,kBAAmB,CAFnB,sBAAuB,CAGvB,oBACD,CAEA,iBACC,WAAY,CAEZ,gBAAiB,CADjB,kBAAmB,CAEnB,kBACD,CAEA,uLACC,6FACD,CAEA,kKAEC,eAAgB,CADhB,cAED,CAEA,sMACC,iBACD,CAEA,6CACC,kBACD,CAEA,4CACC,uBACD,CAGA,yCACC,gBACD,CAEA,SAEC,cAAe,CACf,kBAAmB,CAFnB,SAGD,CAEA,kBACC,eACD,CAEA,wBACC,gBAAiB,CACjB,oBACD,CAEA,wBAEC,kBAAmB,CADnB,SAED,CAEA,2BACC,eACD,CAEA,eAEC,iBAAkB,CADlB,aAED,CAEA,UAEC,eAAgB,CADhB,iBAAkB,CAElB,kBACD,CAEA,gBACC,eACD,CAEA,kEACC,UACC,eACD,CAEA,gBACC,eACD,CACD,CAEA,UACC,QAAS,CACT,YACD,CAEA,sBACC,QAAS,CACT,gBACD,CAEA,gCACC,gBACD,CAEA,UACC,YACD,CAEA,mBACC,eAGD,CAEA,mCAJC,mBAAoB,CACpB,gBAOD,CAJA,gBACC,cAGD,CAEA,iCAEC,iBAAkB,CAClB,gBAAiB,CAFjB,gBAGD,CAGA,WAGC,8BAA+B,CAF/B,kBAAmB,CACnB,YAED,CAEA,iBACC,eACD,CAEA,mBAGC,8BAA+B,CAD/B,qCAAsC,CAEtC,eAAgB,CAHhB,eAID,CAEA,8BACC,kCACD,CAEA,kEACC,mBACC,eACD,CACD,CAEA,4BAIC,4BAA6B,CAD7B,QAAS,CAET,cAAe,CAJf,eAAgB,CAChB,aAID,CAEA,YACC,qCAAsC,CACtC,iBACD,CAEA,oBAEC,kCAAmC,CADnC,WAED,CAEA,0BACC,eACD,CAEA,4EACC,UACD,CAEA,qBAIC,kCAAmC,CADnC,8BAA+B,CAF/B,eAAgB,CAChB,SAGD,CAEA,6BACC,YAAa,CACb,8BACD,CAEA,wCACC,eACD,CAEA,gBAGC,eAAgB,CAFhB,QAAS,CACT,SAED,CAEA,8BACC,oCACD,CAEA,qBACC,gBACD,CAEA,qBACC,gBACD,CAEA,qBACC,gBACD,CAEA,qBACC,gBACD,CAEA,qBACC,iBACD,CAEA,6BACC,SACD,CAEA,4BAIC,2BAA4B,CAD5B,kBAAmB,CAFnB,QAAS,CACT,mBAGD,CAEA,8BACC,iBAAkB,CAClB,kBACD,CAEA,8BACC,iBAAkB,CAClB,kBACD,CAEA,8BACC,iBAAkB,CAClB,kBACD,CAEA,8BACC,iBAAkB,CAClB,kBACD,CAEA,iCACC,mBACD,CAEA,oCACC,8BACD,CAEA,kCACC,YACD,CAEA,yCACC,aACD,CAEA,iBACC,gBACD,CAEA,0BACC,gBACD,CAEA,kBAGC,WAAY,CAGZ,kBAAmB,CADnB,gBAAiB,CAJjB,iBAAkB,CAGlB,gBAAiB,CAFjB,SAKD,CAEA,uCAOC,8BAA+B,CAD/B,mCAAoC,CAJpC,UAAW,CAEX,eAAgB,CADhB,aAAc,CAFd,OAAQ,CAIR,gBAGD,CAEA,0CAKC,eAAgB,CAFhB,QAAS,CACT,WAAY,CAHZ,QAAS,CACT,SAID,CAEA,2HAEC,eACD,CAEA,UAGC,iBAAkB,CADlB,gBAAiB,CAEjB,gBAAiB,CAHjB,cAID,CAEA,mBAIC,oCAAqC,CACrC,eAAgB,CAHhB,eAAgB,CADhB,OAAQ,CAER,gBAGD,CAEA,0CACC,kBACD,CAEA,8CACC,gBACD,CAEA,yBAEC,yEAA4E,CAD5E,iBAED,CAEA,sBACC,iBACD,CAEA,aACC,gBAAiB,CACjB,iBACD,CAEA,gBACC,iBAAkB,CAClB,iBACD,CAEA,gBACC,cAAe,CACf,iBACD,CAEA,gBACC,eAAgB,CAChB,iBACD,CAEA,gDACC,iBAAkB,CAClB,iBACD,CAEA,8KACC,iBACD,CAEA,iBAEC,WAAY,CADZ,eAAgB,CAEhB,aACD,CAEA,gCAEC,qCAAsC,CADtC,eAED,CAEA,gBAEC,8BAA+B,CAD/B,WAED,CAEA,gBACC,4BACD,CAEA,2BAEC,gBAAiB,CADjB,eAED,CAEA,iBAEC,iBAAkB,CADlB,YAAa,CAGb,oBAAqB,CADrB,oBAED,CAEA,0BACC,yBACD,CAEA,iCAGC,YAAa,CACb,iCAAkC,CAClC,eAAgB,CAJhB,QAAS,CACT,SAID,CAEA,eACC,kBACD,CAEA,2BACC,iBACD,CAEA,0BACC,iBAAkB,CAClB,oBAAqB,CACrB,iBACD,CAEA,iFACC,yBAA0B,CAC1B,mCACD,CAEA,8BACC,iBACD,CAEA,oBACC,wBAAyB,CACzB,2BACD,CAEA,gGACC,aAAc,CACd,iBACD,CAEA,qBACC,cACD,CAEA,2EACC,eACD,CAEA,6BACC,uBACD,CAEA,2CACC,gBAAiB,CACjB,qBACD,CAEA,mBACC,YACD,CAEA,sBAIC,kCAAmC,CAFnC,oBAAuB,CADvB,OAAQ,CAER,qBAED,CAGA,cACC,eACD,CAEA,eAKC,4BAA6B,CAF7B,QAAS,CACT,MAAO,CAEP,gBAAiB,CAJjB,iBAAkB,CAKlB,iBAAkB,CANlB,UAOD,CAEA,sBAIC,4BAA6B,CAD7B,QAAS,CAKT,0BAA2B,CAC3B,2BAA4B,CAF5B,iBAAkB,CADlB,eAAgB,CALhB,QAAS,CACT,SAAU,CAGV,UAKD,CAEA,2BACC,iBAAkB,CAClB,QAAS,CACT,SACD,CAGA,eAKC,6BAA8B,CAF9B,sCAAuC,CACvC,kBAAmB,CAHnB,eAAgB,CAChB,eAID,CAEA,WAGC,8BAA+B,CAD/B,qCAAsC,CADtC,eAGD,CAEA,gEACC,yCAA2C,CAC3C,2BACD,CAEA,oEACC,aACD,CAEA,qBAEC,qBAAsB,CADtB,WAAY,CAKZ,gBAAiB,CAFjB,eAAgB,CAChB,sBAAuB,CAFvB,kBAID,CAEA,sCAEC,yBAA0B,CAC1B,kBAAmB,CACnB,iBAAkB,CAElB,aAAc,CADd,0BAA4B,CAJ5B,iBAAkB,CAMlB,aAAc,CACd,kBACD,CAEA,iGACC,YACD,CAEA,uFACC,aACD,CAEA,sDACC,sCACD,CAEA,6BACC,iBACD,CAEA,gEACC,eACD,CAEA,gCAIC,WAAY,CACZ,qBAAsB,CAHtB,eAAgB,CADhB,eAAgB,CAEhB,UAGD,CAEA,oCAIC,WAAY,CACZ,gBAAmB,CAHnB,eAAgB,CADhB,cAAe,CAKf,qBAAsB,CAHtB,UAID,CAEA,sBACC,mBAAoB,CACpB,kBACD,CAEA,4BACC,sBACC,aACD,CACD,CAEA,2BACC,QAAS,CACT,SACD,CAEA,eACC,YAAa,CAEb,oBAAqB,CADrB,QAED,CAEA,sBACC,cAAe,CACf,cAAe,CACf,eACD,CAEA,yBAEC,iBAAkB,CAClB,gBAAiB,CAFjB,gBAGD,CAGA,eAIC,2BAA4B,CAC5B,qCAAsC,CACtC,iBAAkB,CAHlB,iBAAkB,CAIlB,gBAAiB,CANjB,eAAgB,CAChB,eAMD,CAEA,kBAIC,UAAW,CADX,oBAAqB,CAFrB,QAAS,CACT,aAGD,CAEA,oBACC,oBACD,CAEA,sBAEC,WAAY,CACZ,mBAAoB,CAFpB,UAGD,CAGA,oBACC,cAAe,CACf,iBACD,CAEA,uBAGC,oBAAqB,CAFrB,cAAe,CACf,SAED,CAEA,0BACC,gBAAiB,CACjB,aACD,CAEA,sBACC,iBACD,CAEA,0CACC,gBAAiB,CACjB,uBACD,CAEA,wBAEC,WAAY,CADZ,eAED,CAEA,kCACC,qBAAuB,CACvB,gBACD,CAEA,mCACC,YACD,CAEA,4FACC,QAAS,CACT,SACD,CAEA,wBACC,oBACD,CAEA,sCACC,gBACD,CAEA,sCACC,WACD,CAEA,YACC,YAAa,CAGb,OAAQ,CADR,mBAAoB,CADpB,6CAA+C,CAG/C,aACD,CAEA,eAQC,0BAA2B,CAC3B,kBAAmB,CAJnB,6BAA8B,CAC9B,oBAAqB,CACrB,YAAa,CAGb,8BAA+B,CAC/B,sBAAuB,CARvB,QAAS,CADT,eAAgB,CADhB,eAAgB,CAGhB,SAQD,CAGA,qBACC,eACD,CAEA,kBAEC,qCAAsC,CADtC,gBAED,CAEA,6BACC,eACD,CAEA,iCACC,kBACD,CAEA,gBACC,kBACD,CAEA,eACC,kBACD,CAEA,0BACC,iBACD,CAEA,2FAGC,4BAA6B,CAD7B,4BAA6B,CAD7B,kBAGD,CAEA,kBACC,yBACD,CAEA,aACC,eACD,CAEA,mBAEC,kBAAmB,CADnB,UAED,CAEA,gCACC,WACD,CAEA,gBACC,gBACD,CAEA,4BACC,kBACD,CAEA,2BAGC,gBAAiB,CADjB,kBAAmB,CADnB,UAGD,CAEA,yBAIC,8BAA+B,CAF/B,kBAAmB,CADnB,eAAgB,CAEhB,gBAED,CAGA,UACC,UACD,CAEA,aAIC,6BAA8B,CAD9B,eAAgB,CAFhB,WAAY,CACZ,iBAGD,CAEA,kEACC,aACC,eACD,CACD,CAEA,aAEC,8BAA+B,CAD/B,iBAED,CAEA,0BAGC,kCAAmC,CADnC,WAAY,CADZ,cAGD,CAGA,yNAIC,eAAgB,CADhB,QAAS,CAFT,QAAS,CACT,SAAU,CAGV,qBACD,CAGA,iBAGC,cAAe,CADf,eAAgB,CADhB,UAGD,CAEA,oBAEC,iBAAkB,CADlB,iBAED,CAEA,oBACC,gBAAiB,CACjB,eAAgB,CAChB,mBACD,CAEA,kEACC,oBACC,eACD,CACD,CAEA,+BAEC,kBAAmB,CADnB,QAED,CAEA,+DACC,YACD,CAEA,6EACC,YACD,CAEA,4CAIC,8CAA+C,CAH/C,cAAe,CAEf,WAAY,CADZ,UAGD,CAEA,oDACC,oCACD,CAEA,+BACC,YACD,CAEA,mCACC,cAAe,CACf,gBACD,CAGA,iBAEC,eAAgB,CADhB,UAED,CAEA,qBAEC,eAAgB,CADhB,UAED,CAEA,sCACC,cACD,CAEA,kDACC,gBACD,CAEA,4CACC,iBACD,CAEA,4CACC,gBAAiB,CACjB,eAAgB,CAChB,mBACD,CAEA,kEACC,4CACC,eACD,CACD,CAEA,0EAEC,kBAAmB,CADnB,QAED,CAEA,0BACC,YACD,CAEA,8CACC,iBAAkB,CAClB,OACD,CAEA,gEACC,YACD,CAEA,wBACC,cACD,CAEA,uCACC,WACD,CAGA,gBACC,cAAe,CAEf,aAAc,CADd,kBAED,CAEA,mBACC,iBACD,CAEA,yBACC,kBAAmB,CACnB,iBAAkB,CAClB,kBACD,CAEA,oCACC,kBACD,CAEA,8BACC,kBACD,CAEA,6BACC,YACD,CAGA,eAGC,eAAgB,CAFhB,YAAa,CACb,SAED,CAEA,wBAEC,YAAa,CADb,SAED,CAEA,sBACC,eACD,CAGA,kCACC,qBACD,CAGA,eAGC,eAAgB,CAFhB,YAAa,CACb,SAED,CAEA,kBACC,iBAAkB,CAClB,WACD,CAEA,iCACC,8BACD,CAEA,gCACC,4BACD,CAEA,qBACC,UAAW,CAEX,cAAe,CADf,SAED,CAEA,oDACC,UAAW,CAEX,YAAa,CADb,sBAED,CAEA,4BACC,eACD,CAEA,0BAGC,eAAgB,CAFhB,iBAAkB,CAClB,OAED,CAEA,kBACC,UACD,CAEA,qBACC,aAAc,CAEd,eAAgB,CADhB,gBAAiB,CAEjB,iBACD,CAEA,4BACC,iBAAkB,CAClB,OAAQ,CACR,QACD,CAEA,kEACC,qBACC,eACD,CACD,CAGA,kBACC,cAAe,CAEf,eAAgB,CADhB,UAED,CAEA,qBAGC,iBAAkB,CADlB,iBAAkB,CADlB,SAGD,CAEA,qBACC,gBAAiB,CACjB,eAAgB,CAChB,mBACD,CAEA,kEACC,qBACC,eACD,CACD,CAEA,gCACC,kBACD,CAGA,YACC,iBAAkB,CAClB,SACD,CAEA,wBACC,gBACD,CAEA,cAQC,yDAA0D,CAD1D,qBAAsB,CADtB,UAAW,CADX,KAAM,CAIN,uBACD,C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","sources":["webpack:///./core-bundle/contao/themes/flexible/styles/fonts.css","webpack:///./core-bundle/contao/themes/flexible/styles/basic.css","webpack:///./core-bundle/contao/themes/flexible/styles/main.css"],"sourcesContent":["/* Architects Daughter (https://google-webfonts-helper.herokuapp.com/fonts/architects-daughter?subsets=latin) */\n@font-face {\n\tfont-family: \"Architects Daughter\";\n\tsrc: local(\"Architects Daughter\"),\n\t\turl(\"fonts/architects-daughter-v6-latin-regular.woff2\") format(\"woff2\"),\n\t\turl(\"fonts/architects-daughter-v6-latin-regular.woff\") format(\"woff\");\n\tfont-weight: normal;\n\tfont-style: normal;\n}\n","/* Appearance */\n:root {\n\t--text: #222;\n\t--body-bg: #eaeaec;\n\t--content-bg: #fff;\n\t--content-border: #cacacc;\n\t--black: #000;\n\t--white: #fff;\n\t--gray: #999;\n\t--green: #589b0e;\n\t--red: #c33;\n\t--blue: #006494;\n\t--orange: #f90;\n\t--contao: #f47c00;\n\t--border: #eaeaec;\n\t--nav: #d3d6da;\n\t--nav-hover: #eaedf1;\n\t--nav-bg: #0f1c26;\n\t--nav-hover-bg: #eaedf1;\n\t--nav-current: #172b3b;\n\t--nav-group: #9fa4a8;\n\t--nav-separator: #3a454d;\n\t--hover-row: #fffce1;\n\t--header-bg: #f47c00;\n\t--header-bg-hover: #e67300;\n\t--header-text: #fff;\n\t--invert-bg: #333;\n\t--invert-text: #fff;\n\t--table-header: #f7f7f8;\n\t--table-odd: #fff;\n\t--table-even: #fbfbfc;\n\t--table-nb-header: #f2f2f3;\n\t--table-nb-odd: #fff;\n\t--table-nb-even: #f7f7f8;\n\t--panel-bg: #f3f3f5;\n\t--tree-header: #f3f3f5;\n\t--tree-header-border: #dddddf;\n\t--form-text-disabled: #bbb;\n\t--form-border: #aaa;\n\t--form-border-disabled: #c8c8c8;\n\t--form-bg: #fff;\n\t--form-bg-hover: #f6f6f6;\n\t--form-bg-disabled: #f9f9f9;\n\t--form-button: #eee;\n\t--form-button-hover: #f6f6f6;\n\t--form-button-active: #aaa;\n\t--form-button-disabled: #e9e9e9;\n\t--diff-left: #ffe8e5;\n\t--diff-del: #ffc1bf;\n\t--diff-right: #e0ffe8;\n\t--diff-ins: #abf2bc;\n\t--code-bg: #f0f0f0;\n\t--checkerbox-bg: #ddd;\n\t--info: #808080;\n\t--active-bg: #fffce1;\n\t--active-border: #e7b36a;\n\t--pre-disabled: #a6a6a6;\n\t--error-bg: rgba(204, 51, 51, .15);\n\t--confirm-bg: rgba(88, 155, 14, .15);\n\t--info-bg: rgba(0, 100, 148, .15);\n\t--new-bg: rgba(224, 149, 21, .15);\n\t--progress-running: #f47c00;\n\t--progress-finished: #589b0e;\n\t--drag-bg: #a3c2db;\n\t--legend: #6a6a6c;\n\t--paste-hint: #838990;\n\t--serp-preview: #3c4043;\n\t--serp-preview-title: #1a0dab;\n\t--nested-bg: #fbfbfd;\n}\n\nhtml[data-color-scheme=\"dark\"] {\n\tcolor-scheme: dark;\n\t--text: #ddd;\n\t--body-bg: #121416;\n\t--content-bg: #1b1d21;\n\t--content-border: #414448;\n\t--black: #fff;\n\t--white: #000;\n\t--blue: #0073a8;\n\t--orange: #d68c23;\n\t--contao: #f47c00;\n\t--border: #303236;\n\t--nav-bg: #1b1d21;\n\t--nav-hover-bg: #1b325f;\n\t--nav-current: #272a30;\n\t--nav-separator: #3f3f3f;\n\t--hover-row: #1b325f;\n\t--header-bg: #292c32;\n\t--header-bg-hover: #202327;\n\t--header-text: #ddd;\n\t--invert-bg: #8f96a3;\n\t--invert-text: #222;\n\t--table-header: #232529;\n\t--table-odd: #1b1d21;\n\t--table-even: #1e2024;\n\t--table-nb-header: #292c32;\n\t--table-nb-odd: #1b1d21;\n\t--table-nb-even: #23252a;\n\t--panel-bg: #272a30;\n\t--tree-header: #272a30;\n\t--tree-header-border: #3f4146;\n\t--form-text-disabled: #666;\n\t--form-border: #44464b;\n\t--form-border-disabled: #3a3c40;\n\t--form-bg: #151619;\n\t--form-bg-hover: #1e2024;\n\t--form-bg-disabled: #1e2024;\n\t--form-button: #31333a;\n\t--form-button-hover: #383a42;\n\t--form-button-active: #777;\n\t--form-button-disabled: #26272c;\n\t--diff-left: rgba(248, 81, 73, .17);\n\t--diff-del: rgba(248, 81, 73, .4);\n\t--diff-right: rgba(46, 160, 67, .17);\n\t--diff-ins: rgba(46, 160, 67, .4);\n\t--code-bg: #30343b;\n\t--checkerbox-bg: #30343b;\n\t--info: #9095a2;\n\t--active-bg: #1b325f;\n\t--active-border: #264787;\n\t--drag-bg: #1b325f;\n\t--legend: #747b8b;\n\t--serp-preview: #bdc1c6;\n\t--serp-preview-title: #8ab4f8;\n\t--nested-bg: #1e2024;\n}\n\nhtml[data-color-scheme=\"dark\"] .color-scheme--light, .color-scheme--dark {\n\tdisplay: none;\n}\n\nhtml[data-color-scheme=\"dark\"] .color-scheme--dark, .color-scheme--light {\n\tdisplay: initial;\n}\n\n/* HTML */\nhtml {\n\tfont-size: 100%;\n\t-webkit-text-size-adjust: 100%;\n}\n\n/* General */\nheader, footer, nav, section, aside, main, article, figure, figcaption {\n\tdisplay: block;\n}\n\nbody, h1, h2, h3, h4, p, figure, blockquote, dl {\n\tmargin: 0;\n}\n\nimg {\n\tborder: 0;\n}\n\ntable {\n\tborder-spacing: 0;\n\tborder-collapse: collapse;\n\tempty-cells: show;\n}\n\nth, td {\n\ttext-align: left;\n}\n\ninput, select, label, img, a.tl_submit, .tl_select {\n\tvertical-align: middle;\n}\n\nbutton {\n\tcursor: pointer;\n}\n\nbutton[disabled] {\n\tcursor: default;\n}\n\nnav ul, nav li {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n\n/* Font */\nbody {\n\tfont-family: -apple-system, system-ui, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n\tfont-weight: 400;\n\tfont-size: .875rem;\n\tline-height: 1;\n\tcolor: var(--text);\n}\n\nh1, h2, h3, h4, h5, h6, strong, b, th {\n\tfont-weight: 600;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\tbody {\n\t\tfont-weight: 300;\n\t}\n\n\th1, h2, h3, h4, h5, h6, strong, b, th {\n\t\tfont-weight: 500;\n\t}\n}\n\npre, code, .tl_textarea.monospace {\n\tfont: 300 .75rem/1.25 SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\nh1, h2, h3, h4, h5, h6 {\n\tfont-size: 1rem;\n}\n\ninput, textarea, select, button {\n\tfont: inherit;\n\tcolor: inherit;\n\tline-height: inherit;\n}\n\ninput, select {\n\tline-height: 17px; /* see #501 and #79 */\n}\n\n@supports (display:-ms-grid) {\n\tinput, select {\n\t\tline-height: 1.1;\n\t}\n}\n\n.tl_gray {\n\tcolor: var(--gray);\n}\n\n.tl_green {\n\tcolor: var(--green);\n}\n\n.tl_red {\n\tcolor: var(--red);\n}\n\n.tl_blue {\n\tcolor: var(--blue);\n}\n\n.tl_orange {\n\tcolor: var(--orange);\n}\n\nspan.mandatory {\n\tcolor: var(--red);\n}\n\n.upper {\n\ttext-transform: uppercase;\n}\n\n/* Basic elements */\na {\n\tcolor: var(--text);\n\ttext-decoration: none;\n}\n\na:hover, a:active {\n\tcolor: var(--contao);\n}\n\nhr {\n\theight: 1px;\n\tmargin: 18px 0;\n\tborder: 0;\n\tbackground: var(--border);\n\tcolor: var(--border);\n}\n\np {\n\tmargin-bottom: 1em;\n\tpadding: 0;\n}\n\n.hidden {\n\tdisplay: none !important;\n}\n\n.unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\t-webkit-touch-callout: none;\n}\n\n/* Tables */\ntable.with-border th, table.with-border td {\n\tborder: solid var(--border);\n\tborder-width: 1px 0;\n}\n\ntable.with-border th {\n\tbackground-color: var(--table-header);\n}\n\ntable.with-padding th, table.with-padding td {\n\tpadding: 6px;\n}\n\ntable.with-zebra th {\n\tbackground-color: var(--table-nb-header);\n}\n\ntable.with-zebra tbody tr:nth-child(odd) td {\n\tbackground-color: var(--table-nb-odd);\n}\n\ntable.with-zebra tbody tr:nth-child(even) td {\n\tbackground-color: var(--table-nb-even);\n}\n\n/* Invisible elements */\n.clear {\n\tclear: both;\n\theight: 0.1px;\n\tline-height: 0.1px;\n\tfont-size: 0.1px;\n}\n\n.cf:before, .cf:after {\n\tcontent: \" \";\n\tdisplay: table;\n}\n\n.cf:after {\n\tclear: both;\n}\n\n.invisible {\n\tborder: 0;\n\tclip: rect(0 0 0 0);\n\theight: 1px;\n\tmargin: -1px;\n\toverflow: hidden;\n\tpadding: 0;\n\tposition: absolute;\n\twidth: 1px;\n}\n\n/* Widgets */\nfieldset > .widget-group {\n\tpadding: 0 15px;\n}\n\n.widget-group {\n\t--widget-col-amount: 12;\n\t--widget-gap-rows: 0;\n\t--widget-gap-cols: 0;\n\tdisplay: grid;\n\tgap: var(--widget-gap-rows) var(--widget-gap-cols);\n\tgrid-template-columns: repeat(var(--widget-col-amount), minmax(0, 1fr));\n\talign-items: center;\n}\n\n.widget-group > * {\n\t--widget-cols: var(--widget-col-amount);\n\tgrid-column-end: span var(--widget-cols);\n}\n\n.widget-group > .clr, .widget-group > .subpal {\n\tgrid-column-start: 1;\n}\n\n/* Backwards compatibility */\n:not(.widget-group) > .widget {\n\tmargin-left: 15px;\n\tmargin-right: 15px;\n\tposition: relative;\n}\n\n:not(.widget-group) > .w50 {\n\tfloat: none;\n\twidth: calc(100% - 30px);\n}\n\n:not(.widget-group) > .clr {\n\tclear: both;\n\twidth: calc(100% - 30px);\n}\n\n:not(.widget-group) > .long {\n\twidth: calc(100% - 30px); /* see #6320 */\n}\n\n:not(.widget-group) > .clr:not(.widget) {\n\twidth: 100%;\n}\n\n:not(.widget-group) > .clr:before {\n\tcontent: \"\";\n\tdisplay: table;\n}\n\n:not(.widget-group) > .m12 {\n\tmargin: 0 15px;\n}\n\n.widget {\n\tfont-size: 0;\n}\n\n.widget * {\n\tfont-size: .875rem;\n}\n\n.widget > div {\n\tfont-size: 0;\n}\n\n.widget > div > * {\n\tfont-size: .875rem;\n}\n\n.widget pre, .widget code {\n\tfont-size: .7rem;\n}\n\n.widget h3 {\n\tmin-height: 16px;\n}\n\n.widget h3 img {\n\tmargin-right: 3px;\n}\n\n.widget legend {\n\tpadding: 0;\n}\n\n.widget legend img {\n\tvertical-align: -1px;\n}\n\n.widget-captcha {\n\tdisplay: initial !important;\n}\n\n.widget p.info {\n\tmargin: 2px 0;\n\tpadding: 7px;\n\tbackground: var(--panel-bg);\n\tline-height: 1.3;\n\tborder-radius: 3px;\n}\n\n.widget picture {\n\tdisplay: contents;\n}\n\n/* Forms */\noptgroup {\n\tpadding-top: 3px;\n\tpadding-bottom: 3px;\n\tfont-style: normal;\n\tbackground: var(--form-bg);\n}\n\nfieldset.tl_checkbox_container, fieldset.tl_radio_container {\n\tborder: 0;\n\tmargin: 15px 0 0;\n\tpadding: 0;\n}\n\nfieldset.tl_checkbox_container > span, fieldset.tl_radio_container > span, .tl_checkbox_single_container > span {\n\tmargin: 2px 0;\n\tdisplay: flex;\n\talign-items: center;\n\tcolumn-gap: 3px;\n}\n\nfieldset.tl_checkbox_wizard .sortable > span, fieldset.tl_radio_container .sortable > span {\n\tmargin: 0;\n\tdisplay: flex;\n\talign-items: center;\n\tcolumn-gap: 3px;\n}\n\nfieldset.tl_checkbox_container legend, fieldset.tl_radio_container legend {\n\tmargin-bottom: 1px;\n\tfont-weight: 600;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\tfieldset.tl_checkbox_container legend, fieldset.tl_radio_container legend {\n\t\tfont-weight: 500;\n\t}\n}\n\nfieldset.tl_checkbox_container .check-all {\n\tcolor: var(--gray);\n}\n\nfieldset.tl_checkbox_container button {\n\tvertical-align: middle;\n}\n\nfieldset.checkbox_container, fieldset.radio_container {\n\tborder: 0;\n\tmargin: 0;\n\tpadding: 0;\n}\n\n/* Text fields */\n.tl_text {\n\twidth: 100%;\n}\n\n.tl_text_2, .tl_text_interval {\n\twidth: 49%;\n}\n\n.tl_text_3 {\n\twidth: 32.333%;\n}\n\n.tl_text_4 {\n\twidth: 24%;\n}\n\n.tl_textarea {\n\twidth: 100%;\n}\n\n.tl_text_unit {\n\twidth: 79%;\n}\n\n.tl_text_trbl {\n\twidth: 19%;\n}\n\n.tl_text, .tl_text_2, .tl_text_3, .tl_text_4, .tl_textarea, .tl_text_unit, .tl_text_trbl, .tl_text_interval {\n\theight: 30px;\n\tmargin: 3px 0;\n\tbox-sizing: border-box;\n\tpadding: 5px 6px 6px;\n\tborder: 1px solid var(--form-border);\n\tborder-radius: 2px;\n\tbackground-color: var(--form-bg);\n\t-moz-appearance: none;\n\t-webkit-appearance: none;\n}\n\n.tl_text[disabled], .tl_text_2[disabled], .tl_text_3[disabled], .tl_text_4[disabled], .tl_textarea[disabled], .tl_text_unit[disabled], .tl_text_trbl[disabled], .tl_text_interval[disabled] {\n\tcolor: var(--form-text-disabled);\n\tbackground-color: var(--form-bg-disabled);\n\tborder: 1px solid var(--form-border-disabled);\n\tcursor: not-allowed;\n}\n\n.tl_text[readonly], .tl_text_2[readonly], .tl_text_3[readonly], .tl_text_4[readonly], .tl_textarea[readonly], .tl_text_unit[readonly], .tl_text_trbl[readonly], .tl_text_interval[readonly] {\n\tbackground-color: var(--form-bg-disabled);\n\tborder: 1px solid var(--form-border-disabled);\n}\n\n.tl_textarea {\n\theight: 240px;\n\tpadding: 4px 6px;\n\tline-height: 1.45;\n}\n\n.tl_text_2, .tl_text_3, .tl_text_4, .tl_text_unit, .tl_text_trbl, .tl_text_interval {\n\tmargin-right: 1%;\n}\n\n.tl_text_2:last-child, .tl_text_3:last-child, .tl_text_4:last-child, .tl_text_trbl:last-child {\n\tmargin-right: 0;\n}\n\n.tl_text_field .tl_text_2 {\n\twidth: 49.5%;\n}\n\n.tl_imageSize_0 {\n\tmargin-left: 1%;\n}\n\ninput[type=\"search\"] {\n\theight: 27px;\n\tpadding-top: 0;\n\tpadding-bottom: 1px;\n}\n\ninput[type=\"search\"]::-webkit-search-decoration {\n\t-webkit-appearance: none;\n}\n\ninput[type=\"search\"]::-webkit-search-cancel-button {\n\t-webkit-appearance: none;\n\theight: 14px;\n\twidth: 14px;\n\tmargin-right: 0;\n\tbackground-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iIzc3NyI+PHBhdGggZD0iTTE5IDYuNDFMMTcuNTkgNSAxMiAxMC41OSA2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMiAxMy40MSAxNy41OSAxOSAxOSAxNy41OSAxMy40MSAxMnoiLz48L3N2Zz4=\");\n}\n\n@-moz-document url-prefix() {\n\t.tl_text::placeholder, .tl_text_2::placeholder, .tl_text_3::placeholder, .tl_text_4::placeholder, .tl_textarea::placeholder, .tl_text_unit::placeholder, .tl_text_trbl::placeholder, .tl_text_interval::placeholder {\n\t\tline-height: 18px;\n\t}\n}\n\n@media not all and (min-resolution: .001dpcm) {\n\t@supports (-webkit-appearance:none) {\n\t\t.tl_text::placeholder, .tl_text_2::placeholder, .tl_text_3::placeholder, .tl_text_4::placeholder, .tl_textarea::placeholder, .tl_text_unit::placeholder, .tl_text_trbl::placeholder, .tl_text_interval::placeholder {\n\t\t\tline-height: 16px;\n\t\t}\n\n\t\tinput[type=\"search\"] {\n\t\t\tpadding-right: 0;\n\t\t}\n\n\t\tinput[type=\"search\"]::-webkit-search-cancel-button {\n\t\t\tmargin: 7px 4px 0 0;\n\t\t}\n\t}\n}\n\n@supports (display:-ms-grid) {\n\t.tl_text, .tl_text_2, .tl_text_3, .tl_text_4, .tl_textarea, .tl_text_unit, .tl_text_trbl, .tl_text_interval {\n\t\tpadding: 4px 6px 5px;\n\t}\n}\n\n/* Select menus */\nselect {\n\ttext-transform: none;\n\t-moz-appearance: none;\n\t-webkit-appearance: none;\n}\n\nselect::-ms-expand {\n\tdisplay: none;\n}\n\nselect[multiple] {\n\theight: auto;\n}\n\n.tl_select, .tl_mselect, .tl_select_column {\n\twidth: 100%;\n}\n\n.tl_select_unit {\n\twidth: 20%;\n}\n\n.tl_select_interval {\n\twidth: 50%;\n}\n\n.tl_select, .tl_mselect, .tl_select_column, .tl_select_unit, .tl_select_interval {\n\theight: 30px;\n\tmargin: 3px 0;\n\tbox-sizing: border-box;\n\tborder: 1px solid var(--form-border);\n\tpadding: 5px 22px 6px 6px;\n\tborder-radius: 2px;\n\tbackground: var(--form-bg) url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDUwMCA1MDAiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMzEuNTIzIiB5MT0iNDIuNjMiIHgyPSIzNjguNDc4IiB5Mj0iMjc5LjU4NCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjYjNiM2IzIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjOTk5Ii8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI2EpIiBkPSJNMjUwIDM5Ni42NjZjLTEuMTU1IDAtNC4xMS0xLjgzMi03LjExMy02Ljc1bC0xNjkuNi0yNzcuNDU1Yy0yLjUxNy00LjExNC0zLjE5LTYuOTgtMy4yOC04LjMxNC44MjctLjMzIDIuNTY1LS44MTIgNS42MjctLjgxMmgzNDguNzMzYzMuMDYzIDAgNC43OTguNDgyIDUuNjI3LjgxMi0uMDkgMS4zMzQtLjc2NiA0LjItMy4yOCA4LjMxNWwtMTY5LjYgMjc3LjQ1N2MtMy4wMDUgNC45MTctNS45NiA2Ljc1LTcuMTE0IDYuNzV6Ii8+PC9zdmc+\") right -16px top 3px no-repeat;\n\tbackground-origin: content-box;\n\tcursor: pointer;\n}\n\n.tl_select[disabled], .tl_mselect[disabled], .tl_select_column[disabled], .tl_select_unit[disabled], .tl_select_interval[disabled],\n.tl_select[readonly], .tl_mselect[readonly], .tl_select_column[readonly], .tl_select_unit[readonly], .tl_select_interval[readonly] {\n\tcolor: var(--form-text-disabled);\n\tbackground-color: var(--form-bg-disabled);\n\tborder: 1px solid var(--form-border-disabled);\n\tcursor: not-allowed;\n}\n\n.tl_select[multiple], .tl_mselect[multiple], .tl_select_column[multiple], .tl_select_unit[multiple], .tl_select_interval[multiple] {\n\tbackground-image: none;\n}\n\n@supports (display:-ms-grid) {\n\t.tl_select, .tl_mselect, .tl_select_column, .tl_select_unit, .tl_select_interval {\n\t\tpadding: 5px 18px 5px 2px;\n\t}\n}\n\n/* Checkboxes */\n.tl_checkbox {\n\tmargin: 0 1px 0 0;\n}\n\n.tl_tree_checkbox {\n\tmargin: 1px 1px 1px 0;\n}\n\n.tl_checkbox_single_container {\n\tmargin: 16px 0 0;\n}\n\n.tl_checkbox_single_container label {\n\tfont-weight: 600;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.tl_checkbox_single_container label {\n\t\tfont-weight: 500;\n\t}\n}\n\n/* Grouped checkboxes */\n.checkbox_toggler_first {\n\tmargin-top: 2px;\n}\n\n.checkbox_toggler, .checkbox_toggler_first {\n\tfont-weight: 600;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.checkbox_toggler, .checkbox_toggler_first {\n\t\tfont-weight: 500;\n\t}\n}\n\n.checkbox_toggler img, .checkbox_toggler_first img {\n\tposition: relative;\n\ttop: -1px;\n\tmargin-right: 2px;\n}\n\n.checkbox_options {\n\tmargin: 0 0 3px 21px !important;\n}\n\n.tl_checkbox_container .checkbox_options:last-of-type {\n\tmargin-bottom: 0 !important;\n}\n\n/* Radio buttons */\n.tl_radio {\n\tmargin: 0 1px 0 0;\n}\n\n.tl_tree_radio {\n\tmargin: 1px 1px 1px 0;\n}\n\n/* Radio table */\n.tl_radio_table {\n\tmargin-top: 3px;\n}\n\n.tl_radio_table td {\n\tpadding: 0 24px 0 0;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tcolumn-gap: 3px;\n}\n\n/* Upload fields */\n.tl_upload_field {\n\tmargin: 1px 0;\n}\n\n/* Submit buttons */\n.tl_submit {\n\theight: 30px;\n\tpadding: 7px 12px;\n\tborder: 1px solid var(--form-border);\n\tborder-radius: 2px;\n\tbox-sizing: border-box;\n\tcursor: pointer;\n\tbackground: var(--form-button);\n\ttransition: background .2s ease;\n}\n\n.tl_submit:hover {\n\tcolor: inherit;\n\tbackground-color: var(--form-button-hover);\n}\n\n.tl_submit:active {\n\tcolor: var(--form-button-active);\n}\n\n.tl_submit:disabled {\n\tcolor: var(--gray);\n\tbackground: var(--form-button-disabled) !important;\n\tcursor: not-allowed;\n}\n\n.tl_panel .tl_submit, .tl_version_panel .tl_submit, .tl_formbody_submit .tl_submit {\n\tbackground: var(--form-bg);\n}\n\n.tl_panel .tl_submit:hover, .tl_version_panel .tl_submit:hover, .tl_formbody_submit .tl_submit:hover {\n\tbackground: var(--form-bg-hover);\n}\n\na.tl_submit {\n\tdisplay: inline-block;\n}\n\n/* Split buttons */\n.split-button {\n\tdisplay: inline-block;\n\tposition: relative;\n\tz-index: 1;\n}\n\n.split-button ul, .split-button li {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n/* Placeholders */\n::-moz-placeholder {\n\tpadding-top: 1px;\n}\n\n::-webkit-input-placeholder {\n\tpadding-top: 1px;\n}\n\n.wizard > a {\n\tposition: relative;\n\ttop: -2px;\n\tvertical-align: middle;\n}\n\n.wizard > .image-button {\n\tpadding: 0;\n\tborder: 0;\n\tbackground: none;\n\tvertical-align: middle;\n}\n\n.wizard .tl_text, .wizard .tl_select, .wizard .tl_image_size {\n\twidth: calc(100% - 24px);\n}\n\n.wizard .tl_text_2 {\n\twidth: 45%;\n}\n\n.wizard .tl_image_size {\n\tdisplay: inline-block;\n}\n\n.wizard img {\n\tmargin-left: 4px;\n}\n\n.wizard h3 img {\n\tmargin-left: 0;\n}\n\n.long .tl_text, .long .tl_select {\n\twidth: 100%;\n}\n\n.subpal {\n\tclear: both;\n}\n\n.inline div {\n\tdisplay: inline;\n}\n\n.autoheight {\n\theight: auto;\n}\n\n/* Tips */\n.tl_tip {\n\theight: 15px;\n\toverflow: hidden;\n\tcursor: help;\n}\n\n.tip {\n\tposition: relative;\n\tmax-width: 80vw;\n\tpadding: 6px 9px;\n\tborder-radius: 2px;\n\tbackground: var(--invert-bg);\n\tz-index: 99;\n}\n\n.tip div {\n\tline-height: 1.3;\n}\n\n.tip div, .tip a, .tip span {\n\tcolor: var(--invert-text);\n}\n\n.tip:before {\n\tcontent: \"\";\n\theight: 6px;\n\tposition: absolute;\n\ttop: -13px;\n\tleft: 9px;\n\tborder-left: 7px solid transparent;\n\tborder-right: 7px solid transparent;\n\tborder-bottom: 7px solid var(--invert-bg);\n}\n\n.tip--rtl:before {\n\tleft: auto;\n\tright: 9px;\n}\n\n/* Row highlighting */\n.hover-div:hover, .hover-row:hover td, .hover-div:hover .limit_toggler, .hover-row:hover .limit_toggler {\n\tbackground-color: var(--hover-row) !important;\n}\n\n/* Badge */\n.badge-title {\n\tfloat: right;\n\tmargin-left: 8px;\n\tmargin-top: -8px;\n\tborder-radius: 8px;\n\tpadding: 2px 5px;\n\tbackground: var(--invert-bg);\n\tcolor: var(--invert-text);\n\tfont-size: .75rem;\n\tfont-weight: 600;\n}\n\n/* Tablets */\n@media (min-width: 768px) {\n\t.widget-group {\n\t\t--widget-gap-cols: 30px;\n\t}\n\n\t.w16, .w25, .w33, .w50, .w75 {\n\t\t--widget-cols: 6;\n\t}\n\n\t.tip {\n\t\tmax-width: 320px;\n\t}\n\n\t/* Backwards compatibility */\n\t:not(.widget-group) > .m12 {\n\t\tmargin: 0 15px;\n\t\tpadding: 16px 0;\n\t}\n\n\t:not(.widget-group) > .w50 {\n\t\twidth: calc(50% - 30px);\n\t\tfloat: left;\n\t\tmin-height: 80px;\n\t}\n\n\t.nogrid :not(.widget-group) > :is(.w25, .w33, .w50, .w66, .w75) {\n\t\tfloat: none;\n\t}\n\n\t:not(.widget-group) > .cbx {\n\t\tmin-height: 46px;\n\t}\n\n\t:not(.widget-group) > .cbx.m12 {\n\t\tmin-height: 80px;\n\t\tbox-sizing: border-box;\n\t}\n}\n\n/* Large screens */\n@media (min-width: 1280px) {\n\t.w16 {\n\t\t--widget-cols: 2;\n\t}\n\n\t.w25 {\n\t\t--widget-cols: 3;\n\t}\n\n\t.w33 {\n\t\t--widget-cols: 4;\n\t}\n\n\t.w50 {\n\t\t--widget-cols: 6;\n\t}\n\n\t.w75 {\n\t\t--widget-cols: 9;\n\t}\n\n\t#sbtog {\n\t\tdisplay: none;\n\t}\n\n\t.split-button ul {\n\t\tdisplay: inline-flex;\n\t\tclip: initial;\n\t\theight: auto;\n\t\tmargin: 0 0 0 -4px;\n\t\toverflow: initial;\n\t\tposition: initial;\n\t\twidth: auto;\n\t}\n\n\t.split-button li {\n\t\tmargin-left: 4px;\n\t}\n}\n\n/* Split button */\n@media (max-width: 1279.98px) {\n\t.split-button {\n\t\tdisplay: inline-flex;\n\t}\n\n\t.split-button ul {\n\t\tposition: absolute;\n\t\tright: 0;\n\t\tbottom: 20px;\n\t\tmin-width: 100%;\n\t\tbackground: var(--form-bg);\n\t\tborder: 1px solid var(--form-border);\n\t\tborder-radius: 2px;\n\t\tbox-sizing: border-box;\n\t\tpadding: 3px 0;\n\t\tmargin-bottom: 1em;\n\t}\n\n\t.split-button ul button {\n\t\tborder: 0;\n\t\twidth: 100%;\n\t\ttext-align: left;\n\t\twhite-space: nowrap;\n\t}\n\n\t.split-button ul .tl_submit {\n\t\tmargin-top: 0;\n\t\tmargin-bottom: 0;\n\t\tbackground: var(--form-bg);\n\t}\n\n\t.split-button ul .tl_submit:hover {\n\t\tbackground: var(--form-button-hover);\n\t}\n\n\t.split-button ul:before {\n\t\tcontent: \"\";\n\t\tdisplay: block;\n\t\theight: 0;\n\t\twidth: 0;\n\t\tposition: absolute;\n\t\tright: 4px;\n\t\tbottom: -12px;\n\t\tz-index: 89;\n\t\tborder: 6px inset transparent;\n\t\tborder-top: 6px solid var(--form-bg);\n\t}\n\n\t.split-button ul:after {\n\t\tcontent: \"\";\n\t\tdisplay: block;\n\t\theight: 0;\n\t\twidth: 0;\n\t\tposition: absolute;\n\t\tright: 3px;\n\t\tbottom: -14px;\n\t\tz-index: 88;\n\t\tborder: 7px inset transparent;\n\t\tborder-top: 7px solid var(--form-border);\n\t}\n\n\t.split-button > button[type=\"submit\"] {\n\t\tposition: relative;\n\t\tborder-radius: 2px 0 0 2px;\n\t}\n\n\t.split-button > button[type=\"button\"] {\n\t\theight: 30px;\n\t\tmargin: 2px 0;\n\t\tpadding: 7px 4px;\n\t\tbackground: var(--form-bg);\n\t\tborder: 1px solid var(--form-border);\n\t\tborder-left: 0;\n\t\tborder-radius: 0 2px 2px 0;\n\t\tbox-sizing: border-box;\n\t\ttransition: background .2s ease;\n\t}\n\n\t.split-button > button[type=\"button\"].active, .split-button > button[type=\"button\"]:hover {\n\t\tbackground: var(--form-button-hover);\n\t}\n\n\t.split-button > button[type=\"button\"]:focus {\n\t\toutline: none;\n\t}\n}\n","@import 'fonts.css';\n@import 'basic.css';\n\n/* Icons */\n:root {\n\t--icon-logo: url(\"icons/logo.svg\");\n\t--icon-profile: url(\"icons/profile_small.svg\");\n\t--icon-security: url(\"icons/shield_small.svg\");\n\t--icon-favorites: url(\"icons/favorites_small.svg\");\n\t--icon-logout: url(\"icons/exit.svg\");\n\t--icon-toggle-all: url(\"icons/chevron-right.svg\");\n\t--icon-alert: url(\"icons/alert.svg\");\n\t--icon-favorite: url(\"icons/favorite.svg\");\n\t--icon-favorite--active: url(\"icons/favorite_active.svg\");\n\t--icon-manual: url(\"icons/manual.svg\");\n\t--icon-color-scheme: url(\"icons/color_scheme.svg\");\n\t--icon-arrow-left: url(\"icons/arrow_left.svg\");\n\t--icon-arrow-right: url(\"icons/arrow_right.svg\");\n\t--icon-visible: url(\"icons/visible.svg\");\n\t--icon-invisible: url(\"icons/invisible.svg\");\n\t--icon-loading: url(\"icons/loading.svg\");\n}\n\nhtml[data-color-scheme=\"dark\"] {\n\t--icon-logo: url(\"icons/logo--dark.svg\");\n\t--icon-profile: url(\"icons/profile_small--dark.svg\");\n\t--icon-security: url(\"icons/shield_small--dark.svg\");\n\t--icon-favorites: url(\"icons/favorites_small--dark.svg\");\n\t--icon-logout: url(\"icons/exit--dark.svg\");\n\t--icon-toggle-all: url(\"icons/chevron-right--dark.svg\");\n\t--icon-alert: url(\"icons/alert--dark.svg\");\n\t--icon-favorite: url(\"icons/favorite--dark.svg\");\n\t--icon-favorite--active: url(\"icons/favorite_active--dark.svg\");\n\t--icon-manual: url(\"icons/manual--dark.svg\");\n\t--icon-color-scheme: url(\"icons/color_scheme--dark.svg\");\n\t--icon-arrow-left: url(\"icons/arrow_left--dark.svg\");\n\t--icon-arrow-right: url(\"icons/arrow_right--dark.svg\");\n\t--icon-visible: url(\"icons/visible--dark.svg\");\n\t--icon-invisible: url(\"icons/invisible--dark.svg\");\n\t--icon-loading: url(\"icons/loading--dark.svg\");\n}\n\n/* Account for the jump links bar */\nhtml {\n\tscroll-padding-top: 36px;\n\tscroll-behavior: smooth;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n\thtml {\n\t\tscroll-behavior: auto;\n\t}\n}\n\n/* Body */\nbody {\n\tbackground: var(--body-bg);\n\toverflow-y: scroll;\n}\n\nbody.popup {\n\tbackground: var(--content-bg);\n}\n\n/* Header */\n#header {\n\tmin-height: 40px;\n\ttext-align: left;\n\tbackground: var(--header-bg);\n}\n\n#header h1 {\n\tposition: absolute;\n}\n\n#header h1 a {\n\tdisplay: block;\n\theight: 16px;\n\tpadding: 12px 12px 12px 42px;\n\tbackground: var(--icon-logo) no-repeat 10px center;\n\tfont-weight: 400;\n}\n\n#header h1 a .app-title {\n\tfont-size: 17px;\n\tcolor: var(--header-text);\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t#header h1 a {\n\t\tfont-weight: 300;\n\t}\n}\n\n#tmenu {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n}\n\n#tmenu li {\n\tposition: relative;\n}\n\n#tmenu a, #tmenu .profile button {\n\tmargin: 0;\n\tpadding: 13px 12px;\n\tdisplay: inline-block;\n}\n\n#tmenu sup {\n\tposition: absolute;\n\ttop: 5px;\n\tleft: 20px;\n\tfont-size: .6rem;\n\tcolor: var(--header-bg);\n\tbackground: var(--header-text);\n\tpadding: 2px;\n\tborder-radius: 2px;\n\ttext-indent: 0;\n\tfont-weight: 400;\n}\n\n#tmenu .burger {\n\tdisplay: none;\n}\n\n#tmenu .burger button {\n\tpadding: 8px 10px 9px;\n\tbackground: none;\n\tborder: 0;\n}\n\n#tmenu .burger svg {\n\tmargin-bottom: -1px;\n\tvertical-align: middle;\n}\n\n#tmenu .profile button {\n\tposition: relative;\n\tcursor: pointer;\n\tfont-size: .875rem;\n\tfont-weight: 400;\n\tborder: none;\n\tpadding-right: 26px;\n\tbackground: url(\"icons/chevron-down.svg\") right 9px top 14px no-repeat;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t#tmenu .profile button {\n\t\tfont-weight: 300;\n\t}\n}\n\n#tmenu a, #tmenu .profile button, #tmenu .burger button {\n\tcolor: var(--header-text);\n\ttransition: background-color .3s ease;\n}\n\n#tmenu a:hover, #tmenu a.hover, #tmenu li:hover .profile button, #tmenu .active .profile button, #tmenu .burger button:hover {\n\tbackground-color: var(--header-bg-hover);\n}\n\n#tmenu ul.menu_level_1 {\n\tmin-width: 150px;\n\tposition: absolute;\n\tright: 6px;\n\tmargin-top: 5px;\n\tbackground: var(--content-bg);\n\tborder: 1px solid var(--content-border);\n\tbox-shadow: 0 1px 6px rgba(0,0,0,.2);\n\tz-index: 4; /* Above .jump-targets */\n\tcolor: var(--text);\n\ttext-align: left;\n\topacity: 0;\n\tvisibility: hidden;\n\ttransition: opacity .3s ease, visibility .3s ease;\n}\n\n#tmenu .active ul.menu_level_1 {\n\topacity: 1;\n\tvisibility: visible;\n}\n\n#tmenu ul.menu_level_1 li a {\n\tdisplay: block;\n\tcolor: inherit;\n\tpadding: 6px 20px 6px 40px;\n\twhite-space: nowrap;\n}\n\n#tmenu ul.menu_level_1 li a:hover {\n\tbackground-color: var(--nav-hover-bg);\n}\n\n#tmenu ul.menu_level_1 .info {\n\tcolor: var(--info);\n\tpadding: 15px 20px;\n\tborder-bottom: 1px solid var(--border);\n\tline-height: 1.4;\n\tmargin-bottom: 9px;\n\twhite-space: nowrap;\n}\n\n#tmenu ul.menu_level_1 strong {\n\tcolor: var(--text);\n\tdisplay: block;\n}\n\n#tmenu ul.menu_level_1:before {\n\tcontent: \"\";\n\tdisplay: block;\n\twidth: 0;\n\theight: 0;\n\tposition: absolute;\n\tright: 9px;\n\ttop: -14px;\n\tborder: 7px solid transparent;\n\tborder-bottom-color: var(--content-bg);\n}\n\n#tmenu ul.menu_level_1:after {\n\tcontent: \"\";\n\tdisplay: block;\n\twidth: 9px;\n\theight: 9px;\n\tposition: absolute;\n\ttop: -6px;\n\tright: 11px;\n\tborder-top: 1px solid var(--content-border);\n\tborder-right: 1px solid var(--content-border);\n\ttransform: rotateZ(-45deg);\n}\n\n#tmenu ul.menu_level_1 .logout {\n\tmargin-top: 9px;\n\tpadding: 6px 0;\n\tborder-top: 1px solid var(--border);\n}\n\n#tmenu .icon-alert, #tmenu .icon-favorite, #tmenu .icon-manual, #tmenu .icon-color-scheme {\n\twidth: 16px;\n\tmargin-bottom: -2px;\n\tposition: relative;\n\toverflow: hidden;\n\twhite-space: nowrap;\n\ttext-indent: 28px; /* 16px width + 12px padding */\n}\n\n#tmenu .icon-alert {\n\tbackground: var(--icon-alert) center center no-repeat;\n}\n\n#tmenu .icon-favorite {\n\tbackground: var(--icon-favorite) center center no-repeat;\n}\n\n#tmenu .icon-favorite--active {\n\tbackground: var(--icon-favorite--active) center center no-repeat;\n}\n\n#tmenu .icon-manual {\n\tbackground: var(--icon-manual) center center no-repeat;\n}\n\n#tmenu .icon-color-scheme {\n\tbackground: var(--icon-color-scheme) center center no-repeat;\n}\n\n#tmenu .icon-profile {\n\tbackground: var(--icon-profile) 20px center no-repeat;\n}\n\n#tmenu .icon-security {\n\tbackground: var(--icon-security) 20px center no-repeat;\n}\n\n#tmenu .icon-favorites {\n\tbackground: var(--icon-favorites) 20px center no-repeat;\n}\n\n#tmenu .icon-logout {\n\tbackground: var(--icon-logout) 20px center no-repeat;\n}\n\n/* Container */\n#container {\n\tdisplay: flex;\n\tmin-height: calc(100vh - 40px);\n}\n\n.popup #container {\n\tpadding: 0;\n\twidth: auto;\n\tmin-height: 0;\n\tmax-width: none;\n}\n\n/* Left */\n#left {\n\twidth: 220px;\n\tbackground: var(--nav-bg);\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n#left .version {\n\tmargin-top: 4em;\n\tpadding: 15px 18px;\n\tfont-size: .75rem;\n\tline-height: 1.4;\n}\n\n#left .version, #left .version a {\n\tcolor: var(--nav-group);\n}\n\n/* Main */\n#main {\n\twidth: calc(100% - 220px);\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.popup #main {\n\tfloat: none;\n\twidth: auto;\n\tmax-width: none;\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tdisplay: initial;\n}\n\n#main .content {\n\tmargin: 0 15px 15px;\n}\n\n#main .content {\n\tbackground: var(--content-bg);\n\tborder: 1px solid var(--content-border);\n}\n\n.popup #main .content {\n\tmargin: 0;\n\tborder: 0;\n}\n\n/* Navigation */\n#tl_navigation {\n\tflex-grow: 1;\n}\n\n#tl_navigation .menu_level_0 {\n\tpadding-top: 20px;\n}\n\n#tl_navigation .menu_level_0 > li:after {\n\tcontent: \"\";\n\twidth: calc(100% - 30px);\n\theight: 1px;\n\tdisplay: block;\n\tmargin: 15px auto;\n\tbackground: var(--nav-separator);\n}\n\n#tl_navigation .menu_level_0 > li.last:after {\n\tdisplay: none;\n}\n\n#tl_navigation .menu_level_0 a[class^=\"group-\"] {\n\tdisplay: block;\n\tmargin: 0 15px;\n\tpadding: 3px 3px 3px 22px;\n\tcolor: var(--nav-group);\n\tfont-size: .75rem;\n\ttext-transform: uppercase;\n\tfont-weight: 500;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t#tl_navigation .menu_level_0 a[class^=\"group-\"] {\n\t\tfont-weight: 400;\n\t}\n}\n\n#tl_navigation .group-favorites {\n\tbackground: url(\"icons/favorites_group.svg\") 3px 2px no-repeat;\n}\n\n#tl_navigation .group-content {\n\tbackground: url(\"icons/content.svg\") 3px 2px no-repeat;\n}\n\n#tl_navigation .group-design {\n\tbackground: url(\"icons/monitor.svg\") 3px 2px no-repeat;\n}\n\n#tl_navigation .group-accounts {\n\tbackground: url(\"icons/person.svg\") 3px 2px no-repeat;\n}\n\n#tl_navigation .group-system {\n\tbackground: url(\"icons/wrench.svg\") 3px 2px no-repeat;\n}\n\n#tl_navigation .menu_level_1 {\n\tpadding-top: 5px;\n}\n\n#tl_navigation [class^=\"menu_level_\"] a {\n\tdisplay: block;\n\tpadding: 5px 33px 5px 37px;\n\tfont-weight: 400;\n\tcolor: var(--nav);\n\ttransition: color .2s ease;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t#tl_navigation [class^=\"menu_level_\"] a {\n\t\tfont-weight: 300;\n\t}\n}\n\n#tl_navigation [class^=\"menu_level_\"] > li.current > a {\n\tbackground-color: var(--nav-current);\n\tborder-left: 4px solid var(--contao);\n}\n\n#tl_navigation .menu_level_1 > li.current > a {\n\tpadding-left: 33px;\n}\n\n#tl_navigation .menu_level_2 a {\n\tpadding-left: 49px;\n}\n\n#tl_navigation .menu_level_2 > li.current > a {\n\tpadding-left: 45px;\n}\n\n#tl_navigation .menu_level_3 a {\n\tpadding-left: 61px;\n}\n\n#tl_navigation .menu_level_3 > li.current > a {\n\tpadding-left: 57px;\n}\n\n#tl_navigation .menu_level_4 a {\n\tpadding-left: 73px;\n}\n\n#tl_navigation .menu_level_4 > li.current > a {\n\tpadding-left: 69px;\n}\n\n#tl_navigation .menu_level_5 a {\n\tpadding-left: 85px;\n}\n\n#tl_navigation .menu_level_5 > li.current > a {\n\tpadding-left: 81px;\n}\n\n#tl_navigation .menu_level_2 a {\n\tfont-size: .75rem;\n}\n\n#tl_navigation .menu_level_1 li.has-children:not(.first) {\n\tpadding-top: 5px;\n}\n\n#tl_navigation .menu_level_1 li.has-children:not(.last) {\n\tpadding-bottom: 5px;\n}\n\n#tl_navigation .menu_level_1 a:hover, #tl_navigation .menu_level_1 li.current > a {\n\tcolor: var(--nav-hover);\n\tbackground-color: var(--nav-current);\n}\n\n#tl_navigation .collapsed .menu_level_1 {\n\tdisplay: none;\n}\n\n/* Buttons */\n#tl_buttons {\n\tmargin: 0;\n\tpadding: 9px 15px;\n\ttext-align: right;\n}\n\n.toggleWrap {\n\tcursor: pointer;\n}\n\n.opacity {\n\t-moz-opacity: .8;\n\topacity: .8;\n}\n\n/* Data container */\n#main_headline {\n\tmargin: 18px 16px;\n\tfont-size: 1.1rem;\n\tdisplay: flex;\n}\n\n.popup #main_headline {\n\tdisplay: none;\n}\n\n#main_headline span {\n\tdisplay: inline-block;\n\tmax-width: max-content;\n\twhite-space: nowrap;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\tline-height: 22px;\n\tflex: 1 0 0;\n}\n\n#main_headline span:nth-child(even) {\n\tfont-weight: 400;\n}\n\n#main_headline span + span::before {\n\tcontent: \"\\A0› \"; /* Non-breaking-space to prevent collapsing whitespace */\n\tfont-weight: 600;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t#main_headline span:nth-child(even) {\n\t\tfont-weight: 300;\n\t}\n\n\t#main_headline span + span::before {\n\t\tfont-weight: 500;\n\t}\n}\n\nh2.sub_headline {\n\tmargin: 3px 18px;\n\tpadding: 7px 0;\n}\n\n.label-info {\n\tcolor: var(--gray);\n\tpadding-left: 3px;\n}\n\n.label-date {\n\tcolor: var(--gray);\n\tpadding-right: 3px;\n}\n\n.tl_gerror {\n\tmargin: 12px;\n\tpadding: 3px 0 3px 22px;\n\tbackground: url(\"icons/error.svg\") no-repeat left center;\n}\n\n.tl_error, .tl_confirm, .tl_info, .tl_new {\n\tmargin: 0 0 1px;\n\tpadding: 11px 18px 11px 32px;\n\tline-height: 1.3;\n}\n\n.tl_error {\n\tbackground: var(--error-bg) url(\"icons/error.svg\") no-repeat 11px 12px;\n}\n\n.tl_confirm {\n\tbackground: var(--confirm-bg) url(\"icons/ok.svg\") no-repeat 11px 12px;\n}\n\n.tl_info {\n\tbackground: var(--info-bg) url(\"icons/show.svg\") no-repeat 11px 12px;\n}\n\n.tl_new {\n\tbackground: var(--new-bg) url(\"icons/featured.svg\") no-repeat 11px 12px;\n}\n\n.tl_gerror, .tl_gerror a, .tl_error, .tl_error a {\n\tcolor: var(--red);\n}\n\n.tl_gerror a, .tl_error a {\n\ttext-decoration: underline;\n}\n\n.tl_confirm, .tl_confirm a {\n\tcolor: var(--green);\n}\n\n.tl_info, .tl_info a {\n\tcolor: var(--blue);\n}\n\n.tl_new, .tl_new a {\n\tcolor: var(--orange);\n}\n\n.widget .tl_error, .widget .tl_confirm, .widget .tl_info, .widget .tl_new {\n\tpadding: 8px 10px 8px 30px;\n\tbackground-position: 9px 9px;\n}\n\n.tl_error strong, .tl_confirm strong, .tl_info strong, .tl_new strong {\n\tcolor: inherit;\n}\n\n/* Filter */\n.tl_panel, .tl_version_panel {\n\tpadding: 4px 12px;\n\tbackground: var(--panel-bg);\n\tborder-bottom: 1px solid var(--content-border);\n\ttext-align: right;\n}\n\n.tl_version_panel {\n\tpadding: 8px 12px;\n}\n\n.tl_panel .tl_select {\n\ttext-align: left;\n}\n\n.tl_version_panel .tl_select {\n\tmax-width: 280px;\n}\n\n.tl_version_panel .tl_submit {\n\tvertical-align: middle;\n}\n\n.tl_version_panel .tl_formbody {\n\tposition: relative;\n}\n\n.tl_img_submit {\n\twidth: 16px;\n\theight: 16px;\n\tborder: 0;\n\tmargin: 0;\n\tpadding: 0;\n\ttext-indent: 16px; /* 16px width */\n\twhite-space: nowrap;\n\toverflow: hidden;\n\tposition: relative;\n\ttop: 9px;\n\tcursor: pointer;\n}\n\n.filter_apply {\n\tbackground: url(\"icons/filter-apply.svg\") center center no-repeat;\n}\n\n.filter_reset {\n\tbackground: url(\"icons/filter-reset.svg\") center center no-repeat;\n}\n\n.tl_subpanel {\n\tfloat: right;\n\tletter-spacing: -.31em;\n}\n\n.tl_subpanel * {\n\tletter-spacing: normal;\n}\n\n.tl_subpanel strong, .tl_search span {\n\tvertical-align: middle;\n}\n\n.tl_submit_panel {\n\tmin-width: 32px;\n\tpadding-left: 6px;\n\tpadding-right: 3px;\n}\n\n.tl_panel .active, .tl_panel_bottom .active, #search .active {\n\tbackground-color: var(--active-bg);\n}\n\n.tl_submit_panel button + button {\n\tmargin-left: 1px;\n}\n\n.tl_filter {\n\twidth: 100%;\n}\n\n.tl_filter .tl_select {\n\tmax-width: 14.65%;\n\tmargin-left: 3px;\n}\n\n.tl_submit_panel + .tl_filter {\n\twidth: 86%;\n}\n\n.tl_limit {\n\twidth: 22%;\n}\n\n.tl_limit .tl_select {\n\twidth: 52%;\n\tmargin-left: 3px;\n}\n\n.tl_search {\n\twidth: 40%;\n}\n\n.tl_search .tl_select {\n\twidth: 38%;\n\tmargin-left: 3px;\n\tmargin-right: 1%;\n}\n\n.tl_search .tl_text {\n\twidth: 30%;\n\tmargin-left: 1%;\n\t-webkit-appearance: textfield;\n\tbox-sizing: content-box;\n}\n\n.tl_sorting {\n\twidth: 26%;\n}\n\n.tl_sorting .tl_select {\n\twidth: 60%;\n\tmargin-left: 1%;\n}\n\n/* Jump targets */\n.jump-targets {\n\tmin-height: 30px;\n\tpadding-top: 1px;\n\tbackground: var(--panel-bg);\n\tborder-bottom: 1px solid var(--content-border);\n\tposition: sticky;\n\ttop: 0;\n\tz-index: 3; /* Above TinyMCE */\n}\n\n.jump-targets .inner {\n\toverflow-x: scroll;\n\tscrollbar-width: none;\n}\n\n.jump-targets .inner::-webkit-scrollbar {\n\tdisplay: none;\n}\n\n.jump-targets ul {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n\twhite-space: nowrap;\n}\n\n.jump-targets li {\n\tdisplay: inline-block;\n\tpadding: 9px 10px;\n\twhite-space: nowrap;\n\tfont-size: .75rem;\n}\n\n.jump-targets button {\n\tpadding: 0;\n\tbackground: none;\n\tborder: none;\n}\n\n.jump-targets:before, .jump-targets:after {\n\tcontent: \"\";\n\tdisplay: block;\n\twidth: 10px;\n\theight: 100%;\n\tposition: absolute;\n\ttop: 0;\n}\n\n.jump-targets:before {\n\tbackground: linear-gradient(-90deg, transparent 0, var(--panel-bg) 50%);\n}\n\n.jump-targets:after {\n\tright: 0;\n\tbackground: linear-gradient(90deg, transparent 0, var(--panel-bg) 50%);\n}\n\n/* Boxes */\n.tl_xpl {\n\tpadding: 0 18px;\n}\n\n.tl_tbox, .tl_box {\n\tpadding: 12px 0 25px;\n\tborder-bottom: 1px solid var(--border);\n}\n\n.tl_tbox:last-child, .tl_box:last-child {\n\tborder-bottom: 0;\n}\n\n.tl_box h3, .tl_tbox h3, .tl_xpl h3 {\n\tmargin: 0;\n\tpadding-top: 13px;\n\theight: 16px;\n\tfont-size: .875rem;\n}\n\n.tl_box h4, .tl_tbox h4 {\n\tmargin: 6px 0 0;\n\tpadding: 0;\n\tfont-size: .875rem;\n}\n\n.tl_tbox.theme_import {\n\tpadding-left: 15px;\n\tpadding-right: 15px;\n}\n\n.tl_tbox.theme_import h3, .tl_tbox.theme_import h4, .tl_tbox.theme_import p {\n\tline-height: 1.3;\n}\n\n.tl_help, .tl_help * {\n\tfont-size: .75rem;\n}\n\n.tl_help, .tl_help a {\n\tmargin-bottom: 0;\n\tline-height: 1.2;\n\tcolor: var(--info);\n}\n\n.tl_help a:hover, .tl_help a:focus, .tl_help a:active {\n\ttext-decoration: underline;\n}\n\n#tl_buttons + .tl_edit_form .tl_formbody_edit {\n\tborder-top: 1px solid var(--border);\n}\n\n.tl_formbody_submit {\n\tborder-top: 1px solid var(--content-border);\n\tposition: sticky;\n\tbottom: 0;\n\tz-index: 3; /* Above TinyMCE */\n}\n\n.tl_submit_container {\n\tpadding: 8px 12px;\n\tbackground: var(--panel-bg);\n}\n\n.tl_submit_container .tl_submit {\n\tmargin: 2px 0;\n}\n\n/* Maintenance */\n.maintenance_active {\n\tpadding-top: 12px;\n}\n\n.maintenance_active, .maintenance_inactive {\n\tborder-top: 1px solid var(--border);\n}\n\n.maintenance_inactive .tl_tbox {\n\tborder: 0 !important;\n\tpadding: 6px 15px 14px;\n}\n\n.maintenance_inactive .tl_message {\n\tmargin: 0 15px 3px;\n}\n\n.maintenance_inactive h2.sub_headline {\n\tmargin: 16px 15px 3px;\n}\n\n.maintenance_inactive .tl_submit_container {\n\tbackground: none;\n\tpadding: 0 15px 24px;\n\tborder: 0;\n}\n\n/* Crawler */\n@keyframes crawl-progress-bar-stripes {\n\t0% {\n\t\tbackground-position-x: 1rem;\n\t}\n}\n\n#tl_crawl .tl_message {\n\tmargin-bottom: 24px;\n}\n\n#tl_crawl .tl_message > p {\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n\tbackground-color: transparent;\n\tbackground-position-y: center;\n}\n\n#tl_crawl .tl_tbox {\n\tmargin-top: 0;\n\tpadding-top: 0;\n\tpadding-right: 0;\n\tpadding-left: 0;\n}\n\n#tl_crawl .tl_checkbox_container {\n\tmargin-top: 6px;\n}\n\n#tl_crawl .inner {\n\tposition: relative;\n\tmargin: 0 18px 18px;\n}\n\n#tl_crawl .progress {\n\tdisplay: flex;\n\theight: 20px;\n\tbackground-color: var(--tree-header);\n\tborder-radius: 2px;\n}\n\n#tl_crawl .progress-bar {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: center;\n\tcolor: white;\n\ttext-align: center;\n\twhite-space: nowrap;\n\tbackground-size: 10px 10px;\n}\n\n#tl_crawl .progress-bar.running {\n\tbackground-color: var(--progress-running);\n\tbackground-image: linear-gradient(45deg, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);\n\tanimation: crawl-progress-bar-stripes 1s linear infinite;\n}\n\n#tl_crawl .progress-bar.finished {\n\tbackground-color: var(--progress-finished);\n}\n\n#tl_crawl .progress-count {\n\tmargin: 6px 0 24px;\n}\n\n#tl_crawl .results h3 {\n\tfont-size: .9rem;\n\tmargin: 18px 0 9px;\n}\n\n#tl_crawl .results p {\n\tmargin-bottom: 6px;\n}\n\n#tl_crawl .crawl-hint {\n\tmargin-top: -2px;\n\tline-height: 1.3;\n}\n\n#tl_crawl .crawl-hint a {\n\ttext-decoration: underline;\n}\n\n#tl_crawl .subscriber-log {\n\tdisplay: none;\n\tpadding: 5px 0;\n\tmargin-bottom: 0;\n}\n\n#tl_crawl .wait {\n\tmargin-top: 9px;\n\tcolor: var(--gray);\n}\n\n#tl_crawl .debug-log {\n\tdisplay: none;\n\tmargin-top: 11px;\n}\n\n#tl_crawl .results.running .show-when-finished, #tl_crawl .results.finished .show-when-running {\n\tdisplay: none;\n}\n\n#tl_crawl .results.running .show-when-running, #tl_crawl .results.finished .show-when-finished {\n\tdisplay: block;\n}\n\n#tl_crawl .result .summary.success {\n\tcolor: var(--green);\n}\n\n#tl_crawl .result .summary.failure {\n\tcolor: var(--red);\n}\n\n#tl_crawl .result .warning {\n\tdisplay: none;\n\tcolor: var(--blue);\n}\n\n/* Two-factor */\n.two-factor {\n\tborder-top: 1px solid var(--border);\n\tpadding-bottom: 9px;\n}\n\n.two-factor h2.sub_headline {\n\tmargin: 18px 15px 3px;\n}\n\n.two-factor > p {\n\tmargin: 0 15px 12px;\n\tline-height: 1.3;\n}\n\n.two-factor li {\n\tmargin-left: 2em;\n\tlist-style: initial;\n}\n\n.two-factor .qr-code {\n\tmargin: 0 15px;\n}\n\n.two-factor .qr-code img {\n\tborder: 3px solid #fff;\n}\n\n.two-factor .tl_listing_container {\n\tmargin-top: 6px;\n}\n\n.two-factor .widget {\n\theight: auto;\n\tmargin: 15px 15px 12px;\n}\n\n.two-factor .widget .tl_error {\n\tmargin: 0;\n\tpadding: 1px 0;\n\tbackground: none;\n\tfont-size: .75rem;\n\tline-height: 1.25;\n}\n\n.two-factor .tl_submit_container {\n\tbackground: none;\n\tpadding: 0 15px 10px;\n\tborder: 0;\n}\n\n.two-factor .submit_container {\n\tclear: both;\n\tmargin: 0 15px 12px;\n}\n\n.two-factor .tl_message {\n\tmargin: 0 15px 12px;\n}\n\n.two-factor .tl_message > p {\n\tpadding: 0 3px 0 27px;\n\tbackground-color: transparent;\n\tbackground-position: 3px center;\n}\n\n.two-factor .tl_backup_codes > p, .two-factor .tl_trusted_devices > p {\n\tmargin: 0 15px 12px;\n\tline-height: 1.3;\n}\n\n.two-factor .backup-codes {\n\tmax-width: 224px;\n\tmargin: 15px 15px 24px;\n\tpadding: 0;\n\tdisplay: grid;\n\tgrid-template-columns:repeat(2, 1fr);\n}\n\n.two-factor .backup-codes li {\n\tmargin: 0;\n\tlist-style: none;\n}\n\n.two-factor .tl_trusted_devices th, .two-factor .tl_trusted_devices td {\n\tline-height: 16px;\n}\n\n/* Picker search */\n#search {\n\tmargin: 18px 18px -9px;\n\ttext-align: right;\n}\n\n#search .tl_text {\n\tmax-width: 160px;\n\t-webkit-appearance: textfield;\n\tbox-sizing: content-box;\n}\n\n/* Preview image */\n.tl_edit_preview {\n\tmargin-top: 18px;\n}\n\n.tl_edit_preview img {\n\tmax-width: 100%;\n\theight: auto;\n\tpadding: 2px;\n\tborder: 1px solid var(--content-border);\n\tbackground: var(--white);\n}\n\n.tl_edit_preview_enabled {\n\tposition: relative;\n\tcursor: crosshair;\n\tdisplay: inline-block;\n}\n\n.tl_edit_preview_important_part {\n\tposition: absolute;\n\tmargin: -1px;\n\tborder: 1px solid var(--black);\n\tbox-shadow: 0 0 0 1px var(--white), inset 0 0 0 1px var(--white);\n\topacity: 0.5;\n}\n\n/* Listing */\ntable.tl_listing {\n\twidth: 100%;\n}\n\n.tl_listing_container {\n\tmargin: 18px 0;\n\tpadding: 0 15px;\n}\n\n#tl_buttons + .tl_listing_container, #tl_buttons + .tl_form .tl_listing_container {\n\tmargin-top: 12px;\n}\n\n#paste_hint + .tl_listing_container {\n\tmargin-top: 36px;\n}\n\n.tl_folder_list, .tl_folder_tlist {\n\tpadding: 6px;\n\tborder-bottom: 1px solid var(--border);\n\tbackground: var(--table-header);\n\tfont-weight: 600;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.tl_folder_list, .tl_folder_tlist {\n\t\tfont-weight: 500;\n\t}\n}\n\n.tl_folder_tlist {\n\tline-height: 16px;\n\tborder-top: 1px solid var(--border);\n}\n\n.tl_file, .tl_file_list {\n\tposition: relative;\n\tpadding: 5px 6px;\n\tborder-bottom: 1px solid var(--border);\n\tbackground: var(--content-bg);\n}\n\n.tl_file_list .ellipsis {\n\theight: 16px;\n\ttext-overflow: ellipsis;\n\toverflow: hidden;\n\tpadding-right: 18px;\n\tword-break: break-all;\n}\n\n.tl_right_nowrap {\n\tpadding: 6px;\n\tvertical-align: top;\n\ttext-align: right;\n\twhite-space: nowrap;\n}\n\n.tl_listing.picker .tl_file, .tl_listing.picker .tl_folder, .tl_listing.picker .tl_right_nowrap, .tl_listing_container.picker .tl_content_header, .tl_listing_container.picker .tl_content {\n\tbackground-image: linear-gradient(90deg, transparent calc(100% - 26px), var(--tree-header) 26px);\n}\n\n.tl_listing.picker .tl_tree_checkbox, .tl_listing.picker .tl_tree_radio, .tl_listing_container.picker .tl_tree_checkbox, .tl_listing_container.picker .tl_tree_radio {\n\tmargin-top: 2px;\n\tmargin-left: 8px;\n}\n\n.tl_listing.picker .tl_tree_checkbox:disabled, .tl_listing.picker .tl_tree_radio:disabled, .tl_listing_container.picker .tl_tree_checkbox:disabled, .tl_listing_container.picker .tl_tree_radio:disabled {\n\tvisibility: hidden;\n}\n\n.tl_listing_container.picker div[class^=\"ce_\"] {\n\tpadding-right: 24px;\n}\n\n.tl_listing_container.picker .limit_toggler {\n\twidth: calc(100% - 26px);\n}\n\n/* List view */\n.list_view .tl_listing img.theme_preview {\n\tmargin-right: 9px;\n}\n\n.tl_show {\n\twidth: 96%;\n\tmargin: 18px 2%;\n\tpadding: 9px 0 18px;\n}\n\n.tl_show + .tl_show {\n\tmargin-top: 36px;\n}\n\n.tl_show th, .tl_show td {\n\tline-height: 16px;\n\twhite-space: pre-line;\n}\n\n.tl_show td:first-child {\n\twidth: 34%;\n\twhite-space: normal;\n}\n\n.tl_show td p:last-of-type {\n\tmargin-bottom: 0;\n}\n\n.tl_show small {\n\tdisplay: block;\n\tcolor: var(--info);\n}\n\n.tl_label {\n\tmargin-right: 12px;\n\tfont-weight: 600;\n\twhite-space: nowrap;\n}\n\n.tl_label small {\n\tfont-weight: 400;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.tl_label {\n\t\tfont-weight: 500;\n\t}\n\n\t.tl_label small {\n\t\tfont-weight: 300;\n\t}\n}\n\n.tl_empty {\n\tmargin: 0;\n\tpadding: 18px;\n}\n\n.tl_empty_parent_view {\n\tmargin: 0;\n\tpadding: 18px 0 0;\n}\n\n.tl_listing_container + .tl_empty {\n\tmargin-top: -18px;\n}\n\n.tl_noopt {\n\tmargin: 1px 0;\n}\n\n.tl_select_trigger {\n\tmargin-top: -9px;\n\tpadding: 0 6px 3px 0;\n\ttext-align: right;\n}\n\n.tl_radio_reset {\n\tmargin-top: 6px;\n\tpadding: 0 6px 3px 0;\n\ttext-align: right;\n}\n\n.tl_select_label, .tl_radio_label {\n\tmargin-right: 2px;\n\tcolor: var(--gray);\n\tfont-size: .75rem;\n}\n\n/* Parent view */\n.tl_header {\n\tmargin-bottom: 18px;\n\tpadding: 10px;\n\tbackground: var(--table-header);\n}\n\n.tl_header_table {\n\tline-height: 1.3;\n}\n\n.tl_content_header {\n\tpadding: 7px 6px;\n\tborder-bottom: 1px solid var(--border);\n\tbackground: var(--table-header);\n\tfont-weight: 600;\n}\n\n.tl_header + .tl_content_header {\n\tborder-top: 1px solid var(--border);\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.tl_content_header {\n\t\tfont-weight: 500;\n\t}\n}\n\n.as-grid .tl_content_header {\n\tmargin-top: 24px;\n\tpadding: 0 1px;\n\tborder: 0;\n\tbackground-color: transparent;\n\tfont-size: 1rem;\n}\n\n.tl_content {\n\tborder-bottom: 1px solid var(--border);\n\tposition: relative;\n}\n\n.tl_content .inside {\n\tpadding: 6px;\n\tbackground-color: var(--content-bg);\n}\n\n.tl_content.draft .inside {\n\tmin-height: 16px;\n}\n\n.tl_content.draft > *, .tl_folder.draft > *, .tl_file.draft > *, .hover-row.draft > td {\n\topacity: 0.5;\n}\n\n.as-grid .tl_content {\n\tmargin-top: 18px;\n\tpadding: 0;\n\tborder: 1px solid var(--border);\n\tbackground-color: var(--content-bg);\n}\n\n.as-grid .tl_content .inside {\n\tdisplay: grid;\n\tgrid-template-columns: 1fr auto;\n}\n\n.as-grid .tl_content_header + .tl_content {\n\tmargin-top: 12px;\n}\n\n.parent_view > ul {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n.parent_view:not(.as-grid) > ul {\n\tbackground-color: var(--table-header);\n}\n\n.tl_content.indent_1 {\n\tmargin-left: 20px;\n}\n\n.tl_content.indent_2 {\n\tmargin-left: 40px;\n}\n\n.tl_content.indent_3 {\n\tmargin-left: 60px;\n}\n\n.tl_content.indent_4 {\n\tmargin-left: 80px;\n}\n\n.tl_content.indent_5 {\n\tmargin-left: 100px;\n}\n\n.as-grid .tl_content .inside {\n\tpadding: 0;\n}\n\n.as-grid .tl_content.indent {\n\tmargin: 0;\n\tpadding: 15px 15px 0;\n\tborder-width: 0 1px;\n\tbackground: var(--nested-bg);\n}\n\n.as-grid .tl_content.indent_2 {\n\tpadding-left: 30px;\n\tpadding-right: 30px;\n}\n\n.as-grid .tl_content.indent_3 {\n\tpadding-left: 45px;\n\tpadding-right: 45px;\n}\n\n.as-grid .tl_content.indent_4 {\n\tpadding-left: 60px;\n\tpadding-right: 60px;\n}\n\n.as-grid .tl_content.indent_5 {\n\tpadding-left: 75px;\n\tpadding-right: 75px;\n}\n\n.as-grid .tl_content.indent_last {\n\tpadding-bottom: 15px;\n}\n\n.as-grid .tl_content.indent .inside {\n\tborder: 1px solid var(--border);\n}\n\n.as-grid .tl_content.wrapper_stop {\n\tmargin-top: 0;\n}\n\n.as-grid .tl_content.indent.wrapper_stop {\n\tpadding-top: 0;\n}\n\n.tl_content_left {\n\tline-height: 16px;\n}\n\n.as-grid .tl_content_left {\n\tpadding: 8px 10px;\n}\n\n.tl_content_right {\n\tposition: relative;\n\tz-index: 1;\n\tfloat: right;\n\ttext-align: right;\n\tmargin-left: 12px;\n\tmargin-bottom: -1px;\n}\n\n.as-grid .tl_content .tl_content_right {\n\torder: 2;\n\tfloat: none;\n\tmargin-left: 0;\n\tmargin-bottom: 0;\n\tpadding: 8px 10px;\n\tborder-left: 1px solid var(--border);\n\tbackground: var(--table-header);\n}\n\n.tl_right button, .tl_content_right button {\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\theight: 16px;\n\tbackground: none;\n}\n\n.tl_right img, .tl_content_right img, .tl_right_nowrap img,\n.tl_right button, .tl_content_right button, .tl_right_nowrap button {\n\tmargin-left: 1px;\n}\n\n.cte_type {\n\tmargin: 0 0 4px;\n\tfont-size: .75rem;\n\tcolor: var(--info);\n\tline-height: 16px;\n}\n\n.as-grid .cte_type {\n\torder: 1;\n\tmargin-bottom: 0;\n\tpadding: 8px 10px;\n\tbackground-color: var(--table-header);\n\tfont-size: .8rem;\n}\n\n.cte_type.published, .cte_type.published a {\n\tcolor: var(--green);\n}\n\n.cte_type.unpublished, .cte_type.unpublished a {\n\tcolor: var(--red);\n}\n\n.cte_type.icon-protected {\n\tpadding-left: 27px;\n\tbackground: var(--table-header) url(\"icons/protected.svg\") 8px 8px no-repeat;\n}\n\n.cte_type .visibility {\n\tcolor: var(--gray);\n}\n\n.cte_preview {\n\tline-height: 1.25;\n\tposition: relative;\n}\n\n.cte_preview h1 {\n\tfont-size: 1.25rem;\n\tmargin-bottom: 6px;\n}\n\n.cte_preview h2 {\n\tfont-size: 1rem;\n\tmargin-bottom: 6px;\n}\n\n.cte_preview h3 {\n\tfont-size: .9rem;\n\tmargin-bottom: 6px;\n}\n\n.cte_preview h4, .cte_preview h5, .cte_preview h6 {\n\tfont-size: .875rem;\n\tmargin-bottom: 6px;\n}\n\n.cte_preview p, .cte_preview figure, .cte_preview ol, .cte_preview ul, .cte_preview table, .cte_preview div.tl_gray, .content-hyperlink, .content-toplink, .cte_preview table caption {\n\tmargin-bottom: 6px;\n}\n\n.cte_preview img {\n\tmax-width: 320px;\n\theight: auto;\n\tpadding: 6px 0;\n}\n\n.cte_preview th, .cte_preview td {\n\tpadding: 3px 6px;\n\tborder-bottom: 1px solid var(--border);\n}\n\n.cte_preview th {\n\tpadding: 6px;\n\tbackground: var(--table-header);\n}\n\n.cte_preview td {\n\tbackground: var(--content-bg);\n}\n\n.cte_preview table caption {\n\ttext-align: left;\n\tfont-size: .75rem;\n}\n\n.cte_preview pre {\n\tmargin-top: 0;\n\tmargin-bottom: 6px;\n\tword-break: break-all;\n\twhite-space: pre-wrap;\n}\n\n.cte_preview pre.disabled {\n\tcolor: var(--pre-disabled);\n}\n\n.cte_preview .content-gallery ul {\n\tmargin: 0;\n\tpadding: 0;\n\tdisplay: grid;\n\tgrid-template-columns: 1fr 1fr 1fr;\n\tlist-style: none;\n}\n\n.cte_preview a {\n\tcolor: var(--green);\n}\n\n.cte_preview div.tl_gray a {\n\tcolor: var(--gray);\n}\n\n.cte_preview span.comment {\n\tcolor: var(--blue);\n\tdisplay: inline-block;\n\tmargin-bottom: 3px;\n}\n\n.cte_preview input, .cte_preview select, .cte_preview textarea, .cte_preview button {\n\tbackground: var(--form-bg);\n\tborder: 1px solid var(--form-border);\n}\n\n.cte_preview input[type=\"file\"] {\n\tposition: relative;\n}\n\n.cte_preview select {\n\t-moz-appearance: menulist;\n\t-webkit-appearance: menulist;\n}\n\n.cte_preview label, .cte_preview .checkbox_container legend, .cte_preview .radio_container legend {\n\tdisplay: block;\n\tmargin-bottom: 6px;\n}\n\n.cte_preview .widget {\n\tmargin: 0 0 6px;\n}\n\n.cte_preview .checkbox_container label, .cte_preview .radio_container label {\n\tdisplay: initial;\n}\n\n.cte_preview .widget-captcha {\n\tdisplay: block !important;\n}\n\n.cte_preview .widget-captcha .captcha_text {\n\tpadding-left: 3px;\n\tvertical-align: middle;\n}\n\n.cte_preview.empty {\n\tdisplay: none;\n}\n\n.as-grid .cte_preview {\n\torder: 3;\n\tgrid-column: 1 / span 2;\n\tpadding: 10px 10px 6px;\n\tborder-top: 1px solid var(--border);\n}\n\n/* Backwards compatibility */\n.limit_height {\n\toverflow: hidden;\n}\n\n.limit_toggler {\n\twidth: 100%;\n\tposition: absolute;\n\tbottom: 0;\n\tleft: 0;\n\tbackground: var(--content-bg);\n\tline-height: 11px;\n\ttext-align: center;\n}\n\n.limit_toggler button {\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tbackground: var(--content-bg);\n\twidth: 24px;\n\tline-height: 8px;\n\tcolor: var(--gray);\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n}\n\n.limit_toggler button span {\n\tposition: relative;\n\ttop: -4px;\n\tz-index: 1;\n}\n\n/* Tree view */\n.tl_folder_top {\n\tmin-height: 18px;\n\tpadding: 5px 6px;\n\tborder: solid var(--tree-header-border);\n\tborder-width: 1px 0;\n\tbackground: var(--tree-header);\n}\n\n.tl_folder {\n\tpadding: 5px 6px;\n\tborder-bottom: 1px solid var(--border);\n\tbackground: var(--table-header);\n}\n\n.tl_folder.tl_folder_dropping, .tl_folder_top.tl_folder_dropping {\n\tbackground-color: var(--drag-bg) !important;\n\tcolor: var(--text) !important;\n}\n\n.tl_folder.tl_folder_dropping a, .tl_folder_top.tl_folder_dropping a {\n\tcolor: inherit;\n}\n\n.tl_listing .tl_left {\n\tflex-grow: 1;\n\tbox-sizing: border-box;\n\twhite-space: nowrap;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\tline-height: 18px;\n}\n\n.tl_listing .tl_left.tl_left_dragging {\n\tposition: absolute;\n\tbackground: var(--drag-bg);\n\tborder-radius: 10px;\n\tcolor: var(--text);\n\tpadding: 5px 10px !important;\n\tmargin-left: 0;\n\ttext-indent: 0;\n\twhite-space: nowrap;\n}\n\n.tl_listing .tl_left.tl_left_dragging .preview-image, .tl_listing .tl_left.tl_left_dragging a img {\n\tdisplay: none;\n}\n\n.tl_listing .tl_left.tl_left_dragging a, .tl_listing .tl_left.tl_left_dragging .tl_gray {\n\tcolor: inherit;\n}\n\n.tl_listing_dragging .hover-div:not(.tl_folder):hover {\n\tbackground-color: transparent !important;\n}\n\n.tl_listing .tl_left a:hover {\n\tcolor: var(--text);\n}\n\n.tl_listing .tl_left img:not(.preview-image, .preview-important) {\n\tmargin-top: -3px;\n}\n\n.tl_file_manager .preview-image {\n\tmax-width: 100px;\n\tmax-height: 75px;\n\twidth: auto;\n\theight: auto;\n\tmargin: 3px 0 2px 22px;\n}\n\n.tl_file_manager .preview-important {\n\tmax-width: 80px;\n\tmax-height: 60px;\n\twidth: auto;\n\theight: auto;\n\tmargin: 3px 0 2px 0;\n\tvertical-align: bottom;\n}\n\n.tl_listing .tl_right {\n\tpadding: 1px 0 0 9px;\n\twhite-space: nowrap;\n}\n\n@-moz-document url-prefix() {\n\t.tl_listing .tl_right {\n\t\tpadding-top: 0;\n\t}\n}\n\n.tl_listing, .tl_listing ul {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.tl_listing li {\n\tdisplay: flex;\n\tmargin: 0;\n\tlist-style-type: none;\n}\n\n.tl_listing li.parent {\n\tdisplay: inline;\n\tpadding-left: 0;\n\tpadding-right: 0;\n}\n\nlabel.tl_change_selected {\n\tmargin-right: 2px;\n\tcolor: var(--gray);\n\tfont-size: .75rem;\n}\n\n/* Breadcrumb */\n#tl_breadcrumb {\n\tmargin: 0 0 12px;\n\tpadding: 4px 6px;\n\tdisplay: flow-root;\n\tbackground: var(--active-bg);\n\tborder: 1px solid var(--active-border);\n\tborder-radius: 2px;\n\tline-height: 24px;\n}\n\n#tl_breadcrumb li {\n\tmargin: 0;\n\tpadding: 0 3px;\n\tlist-style-type: none;\n\tfloat: left;\n}\n\n#tl_breadcrumb li a {\n\tdisplay: inline-block;\n}\n\n#tl_breadcrumb li img {\n\twidth: 16px;\n\theight: 16px;\n\tvertical-align: -3px;\n}\n\n/* Picker */\n.selector_container {\n\tmargin-top: 1px;\n\tposition: relative;\n}\n\n.selector_container > ul {\n\tmargin: 0 0 1px;\n\tpadding: 0;\n\tlist-style-type: none;\n}\n\n.selector_container > ul > li {\n\tmargin: 0 9px 0 0;\n\tpadding: 2px 0;\n}\n\n.selector_container p {\n\tmargin-bottom: 1px;\n}\n\n.selector_container ul:not(.sgallery) img {\n\tmargin-right: 1px;\n\tvertical-align: text-top;\n}\n\n.selector_container img {\n\tmax-width: 320px;\n\theight: auto;\n}\n\n.selector_container .limit_height {\n\theight: auto !important;\n\tmax-height: 190px;\n}\n\n.selector_container .limit_toggler {\n\tdisplay: none;\n}\n\n.selector_container h1, .selector_container h2, .selector_container h3, .selector_container h4 {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.selector_container pre {\n\twhite-space: pre-wrap;\n}\n\n.selector_container table.showColumns {\n\tmargin: 2px 0 3px;\n}\n\n.selector_container table.sortable td {\n\tcursor: move;\n}\n\nul.sgallery {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fill, 100px);\n\tgrid-auto-rows: 75px;\n\tgap: 4px;\n\tpadding: 2px 0;\n}\n\nul.sgallery li {\n\tmin-width: 100px;\n\tmin-height: 75px;\n\tmargin: 0;\n\tpadding: 0;\n\tbackground: var(--form-button);\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n\t-webkit-align-items: center;\n\talign-items: center;\n\t-webkit-justify-content: center;\n\tjustify-content: center;\n}\n\n/* Welcome screen */\n.popup #tl_soverview {\n\tmargin-top: 15px;\n}\n\n#tl_soverview > div {\n\tpadding: 5px 15px;\n\tborder-bottom: 1px solid var(--border);\n}\n\n#tl_soverview > div:last-child {\n\tborder-bottom: 0;\n}\n\n#tl_messages h2, #tl_shortcuts h2 {\n\tmargin: 14px 0 10px;\n}\n\n#tl_versions h2 {\n\tmargin: 14px 0 12px;\n}\n\n#tl_messages p {\n\tmargin-bottom: .5em;\n}\n\n#tl_messages p:last-child {\n\tmargin-bottom: 1em;\n}\n\n#tl_messages .tl_error, #tl_messages .tl_confirm, #tl_messages .tl_info, #tl_messages .tl_new {\n\tpadding: 0 0 0 21px;\n\tbackground-position: left 1px;\n\tbackground-color: transparent;\n}\n\n#tl_shortcuts p a {\n\ttext-decoration: underline;\n}\n\n#tl_versions {\n\tmargin-bottom: 0;\n}\n\n#tl_versions table {\n\twidth: 100%;\n\tmargin-bottom: 18px;\n}\n\n#tl_versions th, #tl_versions td {\n\tpadding: 6px;\n}\n\n#tl_versions th {\n\tline-height: 16px;\n}\n\n#tl_versions td:first-child {\n\twhite-space: nowrap;\n}\n\n#tl_versions td:last-child {\n\twidth: 32px;\n\twhite-space: nowrap;\n\ttext-align: right;\n}\n\n#tl_versions .pagination {\n\tmargin-top: 18px;\n\tmargin-bottom: 14px;\n\tpadding: 12px 6px;\n\tbackground: var(--table-header);\n}\n\n/* CHMOD table */\n.tl_chmod {\n\twidth: 100%;\n}\n\n.tl_chmod th {\n\theight: 18px;\n\ttext-align: center;\n\tfont-weight: 400;\n\tbackground: var(--tree-header);\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.tl_chmod th {\n\t\tfont-weight: 300;\n\t}\n}\n\n.tl_chmod td {\n\ttext-align: center;\n\tbackground: var(--table-header);\n}\n\n.tl_chmod th, .tl_chmod td {\n\twidth: 14.2857%;\n\tpadding: 6px;\n\tborder: 1px solid var(--content-bg);\n}\n\n/* Wizards */\n.tl_modulewizard button, .tl_optionwizard button, .tl_key_value_wizard button, .tl_tablewizard button, .tl_listwizard button, .tl_checkbox_wizard button, .tl_metawizard button, .tl_sectionwizard button, .tl_image_size + button {\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tbackground: none;\n\tvertical-align: middle;\n}\n\n/* Module wizard */\n.tl_modulewizard {\n\twidth: 100%;\n\tmax-width: 800px;\n\tmargin-top: 2px;\n}\n\n.tl_modulewizard td {\n\tposition: relative;\n\tpadding: 0 3px 0 0;\n}\n\n.tl_modulewizard th {\n\tfont-size: .75rem;\n\tfont-weight: 400;\n\tpadding: 0 6px 1px 0;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.tl_modulewizard th {\n\t\tfont-weight: 300;\n\t}\n}\n\n.tl_modulewizard td:last-child {\n\twidth: 1%;\n\twhite-space: nowrap;\n}\n\n.tl_modulewizard .tl_select, .tl_modulewizard .tl_select_column {\n\tmargin: 2px 0;\n}\n\n.tl_modulewizard input.mw_enable + button, .js .tl_modulewizard input.mw_enable {\n\tdisplay: none;\n}\n\n.js .tl_modulewizard input.mw_enable + button {\n\tdisplay: inline;\n\twidth: 16px;\n\theight: 16px;\n\tbackground: var(--icon-invisible) 0 0 no-repeat;\n}\n\n.js .tl_modulewizard input.mw_enable:checked + button {\n\tbackground-image: var(--icon-visible);\n}\n\n.tl_modulewizard img.mw_enable {\n\tdisplay: none;\n}\n\n.js .tl_modulewizard img.mw_enable {\n\tdisplay: inline;\n\tmargin-right: 1px;\n}\n\n/* Options and key/value wizard */\n.tl_optionwizard {\n\twidth: 100%;\n\tmax-width: 600px;\n}\n\n.tl_key_value_wizard {\n\twidth: 100%;\n\tmax-width: 450px;\n}\n\n.tl_optionwizard, .tl_key_value_wizard {\n\tmargin-top: 2px;\n}\n\n.tl_optionwizard label, .tl_key_value_wizard label {\n\tmargin-right: 3px;\n}\n\n.tl_optionwizard td, .tl_key_value_wizard td {\n\tpadding: 0 3px 0 0;\n}\n\n.tl_optionwizard th, .tl_key_value_wizard th {\n\tfont-size: .75rem;\n\tfont-weight: 400;\n\tpadding: 0 6px 1px 0;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.tl_optionwizard th, .tl_key_value_wizard th {\n\t\tfont-weight: 300;\n\t}\n}\n\n.tl_optionwizard td:nth-child(n+3), .tl_key_value_wizard td:nth-child(n+3) {\n\twidth: 1%;\n\twhite-space: nowrap;\n}\n\n.tl_optionwizard .tl_text {\n\tmargin: 2px 0;\n}\n\n.tl_optionwizard img, .tl_key_value_wizard img {\n\tposition: relative;\n\ttop: 1px;\n}\n\n.tl_optionwizard .fw_checkbox, .tl_key_value_wizard .fw_checkbox {\n\tmargin: 0 1px;\n}\n\n#ctrl_allowedAttributes {\n\tmax-width: none;\n}\n\n#ctrl_allowedAttributes td:first-child {\n\twidth: 100px;\n}\n\n/* Table wizard */\n#tl_tablewizard {\n\tmargin-top: 2px;\n\tpadding-bottom: 2px;\n\toverflow: auto;\n}\n\n.tl_tablewizard td {\n\tpadding: 0 3px 0 0;\n}\n\n.tl_tablewizard thead td {\n\tpadding-bottom: 3px;\n\ttext-align: center;\n\twhite-space: nowrap;\n}\n\n.tl_tablewizard tbody td:last-child {\n\twhite-space: nowrap;\n}\n\n.tl_tablewizard td.tcontainer {\n\tvertical-align: top;\n}\n\n.tl_tablewizard .tl_textarea {\n\tmargin: 2px 0;\n}\n\n/* List wizard */\n.tl_listwizard {\n\tmargin: 1px 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n.tl_listwizard .tl_text {\n\twidth: 78%;\n\tmargin: 2px 0;\n}\n\n.tl_listwizard button {\n\tmargin-left: 1px;\n}\n\n/* Checkbox wizard */\n.tl_checkbox_wizard .sortable img {\n\tvertical-align: bottom;\n}\n\n/* Meta wizard */\n.tl_metawizard {\n\tmargin: 3px 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n.tl_metawizard li {\n\tmargin-bottom: 2px;\n\tpadding: 9px;\n}\n\n.tl_metawizard li:nth-child(odd) {\n\tbackground: var(--table-header);\n}\n\n.tl_metawizard li:nth-child(even) {\n\tbackground: var(--table-even);\n}\n\n.tl_metawizard label {\n\tfloat: left;\n\twidth: 18%;\n\tmargin-top: 9px;\n}\n\n.tl_metawizard .tl_text, .tl_metawizard .tl_textarea {\n\tfloat: left;\n\twidth: calc(82% - 20px);\n\tmargin: 1px 0;\n}\n\n.tl_metawizard .tl_textarea {\n\tresize: vertical;\n}\n\n.tl_metawizard .tl_text + a {\n\tposition: relative;\n\ttop: 7px;\n\tmargin-left: 4px;\n}\n\n.tl_metawizard br {\n\tclear: left;\n}\n\n.tl_metawizard .lang {\n\tdisplay: block;\n\tmargin: 3px 0 9px;\n\tfont-weight: 600;\n\tposition: relative;\n}\n\n.tl_metawizard .lang button {\n\tposition: absolute;\n\tright: 0;\n\ttop: -1px;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.tl_metawizard .lang {\n\t\tfont-weight: 500;\n\t}\n}\n\n/* Section wizard */\n.tl_sectionwizard {\n\tmargin-top: 2px;\n\twidth: 100%;\n\tmax-width: 680px;\n}\n\n.tl_sectionwizard td {\n\twidth: 25%;\n\tposition: relative;\n\tpadding: 0 3px 0 0;\n}\n\n.tl_sectionwizard th {\n\tfont-size: .75rem;\n\tfont-weight: 400;\n\tpadding: 0 4px 1px 0;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.tl_sectionwizard th {\n\t\tfont-weight: 300;\n\t}\n}\n\n.tl_sectionwizard td:last-child {\n\twhite-space: nowrap;\n}\n\n/* Paste/sort hint */\n#paste_hint {\n\tposition: relative;\n\tz-index: 1;\n}\n\n.tl_message + #paste_hint {\n\tmargin-top: -12px;\n}\n\n#paste_hint p {\n\tposition: absolute;\n\tfont-family: \"Architects Daughter\", cursive;\n\tfont-size: 1rem;\n\tcolor: var(--paste-hint);\n\ttop: 0;\n\tright: 30px;\n\tpadding: 0 36px 24px 0;\n\tbackground: var(--icon-arrow-right) bottom right no-repeat;\n\ttransform: rotate(-1deg);\n}\n\n.sort_hint {\n\tposition: absolute;\n\tfont-family: \"Architects Daughter\", cursive;\n\tfont-size: 1rem;\n\tcolor: var(--paste-hint);\n\ttop: -50px;\n\tleft: 160px;\n\tpadding: 0 6px 24px 42px;\n\tbackground: var(--icon-arrow-left) 6px bottom no-repeat;\n\ttransform: rotate(-2deg);\n}\n\n.widget + .subpal .sort_hint {\n\tleft: 260px;\n}\n\n.widget + .widget .sort_hint {\n\tleft: 320px;\n}\n\n/* SERP preview */\n.serp-preview {\n\tmax-width: 600px;\n\tmargin: 2px 0;\n\tpadding: 5px 7px;\n\tfont-family: Arial, sans-serif;\n\tfont-weight: 400;\n\tcolor: var(--serp-preview);\n\tbackground: var(--panel-bg);\n\tborder-radius: 3px;\n}\n\n.serp-preview p {\n\tmargin: 0;\n}\n\n.serp-preview .url, .serp-preview .description {\n\tline-height: 18px;\n}\n\n.serp-preview .url:not(:empty) {\n\tmargin-top: 3px;\n}\n\n.serp-preview .description:not(:empty) {\n\tmargin-bottom: 3px;\n}\n\n.serp-preview .title {\n\tmargin: 5px 0 4px;\n\tfont-size: 18px;\n\tcolor: var(--serp-preview-title);\n}\n\n.serp-preview .tl_info {\n\tbackground-color: transparent;\n}\n\n/* Ajax box */\n#tl_ajaxBox {\n\twidth: 300px;\n\tpadding: 2em;\n\tbox-sizing: border-box;\n\tposition: absolute;\n\tleft: 50%;\n\tmargin-left: -150px;\n\tbackground: var(--white) var(--icon-loading) no-repeat right 2em center;\n\tborder: 2px solid var(--black);\n\tborder-radius: 2px;\n\tfont-size: 1rem;\n\ttext-align: left;\n}\n\n#tl_ajaxOverlay {\n\twidth: 100%;\n\theight: 100%;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tbackground: var(--white);\n\topacity: 0.5;\n}\n\n/* Misc */\n.ce_gallery ul {\n\tdisplay: flow-root;\n}\n\n.ce_gallery li {\n\tfloat: left;\n\tmargin: 0 6px 6px 0;\n}\n\n.drag-handle {\n\tcursor: move;\n}\n\nul.sortable li {\n\tcursor: move;\n\tposition: relative;\n}\n\nul.sortable li .dirname {\n\tdisplay: none;\n}\n\nul.sortable li:hover .dirname {\n\tdisplay: inline;\n}\n\nul.sortable button {\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tborder: 0;\n\tborder-radius: 2px;\n\tbackground: var(--form-button);\n\tmargin: 0;\n\tpadding: 0 0 3px;\n\tfont-size: 22px;\n\tline-height: 9px;\n\tcursor: pointer;\n\ttransition: all .1s linear;\n}\n\nul.sortable button:hover {\n\tbackground: var(--form-button-hover);\n}\n\nul.sortable button[disabled] {\n\tcolor: var(--gray);\n\tcursor: not-allowed;\n}\n\nul.sortable button[disabled]:hover {\n\tbackground: rgba(255,255,255,.7);\n}\n\n#picker-menu {\n\tpadding: 9px 6px 0;\n\tborder-bottom: 1px solid var(--content-border);\n}\n\n#picker-menu > ul {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n#picker-menu li {\n\tdisplay: inline-block;\n\tpadding: 8px 0;\n\tbackground-color: var(--table-even);\n\tborder: 1px solid var(--content-border);\n\tborder-radius: 2px 2px 0 0;\n\tposition: relative;\n\ttop: 1px;\n}\n\n#picker-menu li:hover {\n\tbackground-color: var(--panel-bg);\n}\n\n#picker-menu li.current {\n\tbackground-color: var(--panel-bg);\n\tborder-bottom-color: var(--panel-bg);\n}\n\n#picker-menu a {\n\tpadding: 3px 12px 3px 32px;\n\tbackground: url(\"icons/mover.svg\") 12px center no-repeat;\n}\n\n#picker-menu a:hover {\n\tcolor: var(--text);\n}\n\n#picker-menu a.pagePicker {\n\tbackground-image: url(\"icons/pagemounts.svg\");\n\tbackground-size: 16px;\n}\n\n#picker-menu a.filePicker {\n\tbackground-image: url(\"icons/filemounts.svg\");\n\tbackground-size: 14px;\n}\n\n#picker-menu a.articlePicker {\n\tbackground-image: url(\"icons/articles.svg\");\n\tbackground-size: 16px;\n}\n\n#picker-menu a.close {\n\tbackground-image: url(\"icons/back.svg\");\n}\n\n.ace_editor {\n\tpadding: 3px;\n\tz-index: 0;\n}\n\n.ace_editor, .ace_editor * {\n\tfont-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n\tfont-size: .75rem !important;\n\tcolor: var(--text);\n}\n\n.ace-fullsize {\n\toverflow: hidden !important;\n}\n\n.ace-fullsize .ace_editor {\n\tposition: fixed !important;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\twidth: auto !important;\n\theight: auto !important;\n\tmargin: 0;\n\tborder: 0;\n\tz-index: 10000;\n}\n\ndiv.mce-edit-area {\n\twidth: 99.9%;\n}\n\ntime[title] {\n\tcursor: help;\n}\n\n.float_left {\n\tfloat: left;\n}\n\n.float_right {\n\tfloat: right;\n}\n\n.foldable img {\n\ttransition: transform .2s ease;\n\ttransform: none;\n\twill-change: transform;\n}\n\n.foldable--open img {\n\ttransform: rotateZ(90deg);\n}\n\n.foldable--loading {\n\tposition: relative;\n\tpointer-events: none;\n}\n\n.foldable--loading img {\n\tvisibility: hidden;\n}\n\n.foldable--loading::after {\n\tcontent: \"\";\n\tposition: absolute;\n\tinset: 2px auto auto 2px;\n\twidth: 14px;\n\theight: 14px;\n\tbackground: var(--icon-loading) 0 0/contain no-repeat\n}\n\n/* Default icon classes */\n.header_icon, .header_clipboard, .header_back, .header_new, .header_rss, .header_edit_all, .header_delete_all,\n.header_new_folder, .header_css_import, .header_theme_import, .header_store, .header_toggle, .header_sync {\n\tdisplay: inline-block;\n\tpadding: 3px 0 3px 22px;\n\tbackground-color: transparent;\n\tbackground-position: left center;\n\tbackground-repeat: no-repeat;\n\tborder: none;\n\tmargin-left: 15px;\n}\n\n.list_icon {\n\tmargin-left: -3px;\n\tpadding-left: 24px;\n\tbackground-position: left center;\n\tbackground-repeat: no-repeat;\n}\n\n.list_icon_new {\n\twidth: 16px;\n\tbackground-position: 1px center;\n\tbackground-repeat: no-repeat;\n}\n\n/* Header icons */\n.header_clipboard {\n\tbackground-image: url(\"icons/clipboard.svg\");\n}\n\n.header_back {\n\tbackground-image: url(\"icons/back.svg\");\n}\n\n.header_new {\n\tbackground-image: url(\"icons/new.svg\");\n}\n\n.header_rss {\n\tbackground-image: url(\"icons/rss.svg\");\n}\n\n.header_edit_all {\n\tbackground-image: url(\"icons/all.svg\");\n}\n\n.header_new_folder {\n\tbackground-image: url(\"icons/newfolder.svg\");\n}\n\n.header_css_import {\n\tbackground-image: url(\"icons/cssimport.svg\");\n}\n\n.header_theme_import {\n\tbackground-image: url(\"icons/theme_import.svg\");\n}\n\n.header_store {\n\tbackground-image: url(\"icons/store.svg\");\n}\n\n.header_toggle {\n\tpadding-left: 18px;\n\tbackground-image: var(--icon-toggle-all);\n}\n\n.header_sync {\n\tbackground-image: url(\"icons/sync.svg\");\n}\n\n/* Visual hint for TRBL fields - thanks to Eugene Rybyakov */\n.tl_text_trbl, .tl_imageSize_0, .tl_imageSize_1, #ctrl_playerSize input {\n\tbackground: var(--form-bg) url(\"icons/hints.svg\") no-repeat right 1px top 2px;\n}\n\n#ctrl_playerSize_1, .tl_imageSize_1 {\n\tbackground-position: right 1px top -28px !important;\n}\n\n.trbl_top {\n\tbackground-position: right 1px top -59px !important;\n}\n\n.trbl_right {\n\tbackground-position: right 1px top -89px !important;\n}\n\n.trbl_bottom {\n\tbackground-position: right 1px top -119px !important;\n}\n\n.trbl_left {\n\tbackground-position: right 1px top -149px !important;\n}\n\n#ctrl_shadowsize_top {\n\tbackground-position: right 1px top -179px !important;\n}\n\n#ctrl_shadowsize_right {\n\tbackground-position: right 1px top -209px !important;\n}\n\n#ctrl_shadowsize_bottom {\n\tbackground-position: right 1px top -238px !important;\n}\n\n#ctrl_shadowsize_left {\n\tbackground-position: right 1px top -269px !important;\n}\n\n#ctrl_borderradius_top {\n\tbackground-position: left -299px !important;\n}\n\n#ctrl_borderradius_right {\n\tbackground-position: right 1px top -329px !important;\n}\n\n#ctrl_borderradius_bottom {\n\tbackground-position: right 1px top -352px !important;\n}\n\n#ctrl_borderradius_left {\n\tbackground-position: left -382px !important;\n}\n\n/* Error messages */\nlabel.error, legend.error, .tl_checkbox_container.error legend {\n\tcolor: var(--red);\n}\n\n.tl_tbox .tl_error, .tl_box .tl_error {\n\tbackground: none;\n\tpadding: 0;\n\tmargin-bottom: 0;\n\tfont-size: .75rem;\n}\n\n.tl_formbody_edit > .tl_error {\n\tmargin-top: 9px;\n}\n\n.broken-image {\n\tdisplay: inline-block;\n\tpadding: 12px 12px 12px 30px;\n\tbackground: var(--error-bg) url(\"icons/error.svg\") no-repeat 9px center;\n\tcolor: var(--red);\n\ttext-indent: 0;\n}\n\n/* Fieldsets */\nfieldset.tl_tbox, fieldset.tl_box {\n\tmargin-top: 5px;\n\tpadding-top: 0;\n\tborder-top: none;\n\tborder-left: 0;\n\tborder-right: 0;\n\tmargin-inline: 0;\n}\n\nfieldset.tl_tbox.nolegend, fieldset.tl_box.nolegend {\n\tborder-top: 0;\n}\n\nfieldset.tl_tbox > legend, fieldset.tl_box > legend {\n\tbox-sizing: border-box;\n\tcolor: var(--legend);\n\tpadding: 9px 12px 9px 28px;\n\tbackground: url(\"icons/navcol.svg\") 13px 10px no-repeat;\n\tcursor: pointer;\n}\n\nfieldset.collapsed {\n\tmargin-bottom: 0;\n\tpadding-bottom: 5px;\n}\n\nfieldset.collapsed div {\n\tdisplay: none !important;\n}\n\nfieldset.collapsed > legend {\n\tbackground: url(\"icons/navexp.svg\") 13px 10px no-repeat;\n}\n\n/* Maintenance */\n#tl_maintenance_cache table {\n\twidth: 100%;\n}\n\n#tl_maintenance_cache td {\n\tline-height: 1.2;\n\tpadding: 9px 6px;\n}\n\n#tl_maintenance_cache td span {\n\tcolor: var(--gray);\n}\n\n#tl_maintenance_cache td:first-child {\n\twidth: 16px;\n}\n\n#tl_maintenance_cache .nw {\n\twhite-space: nowrap;\n}\n\n#tl_maintenance_cache .tl_checkbox_container {\n\tmargin-top: 3px;\n}\n\n#tl_maintenance_cache .tl_checkbox_container label {\n\tvertical-align: initial;\n\tfont-weight: 600;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t#tl_maintenance_cache .tl_checkbox_container label {\n\t\tfont-weight: 500;\n\t}\n}\n\n/* Pagination */\n.pagination {\n\tdisplay: flow-root;\n\tbackground: var(--panel-bg);\n\tmargin-bottom: 18px;\n\tborder: solid var(--border);\n\tborder-width: 1px 0;\n\tpadding: 12px 15px;\n}\n\n.pagination ul {\n\twidth: 60%;\n\tfloat: right;\n\ttext-align: right;\n}\n\n.pagination p {\n\twidth: 30%;\n\tfloat: left;\n\tmargin-bottom: 0;\n}\n\n.pagination li {\n\tdisplay: inline;\n\tpadding-left: 3px;\n}\n\n.pagination .active {\n\tcolor: var(--gray);\n}\n\n.pagination-lp {\n\tmargin-bottom: 0;\n\tborder-bottom: 0;\n\tpadding: 15px 12px;\n}\n\n/* File synchronization */\n#result-list {\n\tmargin: 15px;\n}\n\n#result-list .tl_error, #result-list .tl_confirm, #result-list .tl_info, #result-list .tl_new {\n\tpadding: 3px 0;\n\tbackground: none;\n}\n\n/* DropZone */\n.dropzone {\n\tmargin: 2px 0;\n\tmin-height: auto !important;\n\tborder: 3px dashed var(--border) !important;\n\tborder-radius: 2px;\n\tbackground: var(--form-bg) !important;\n}\n\n.dropzone-filetree {\n\tdisplay: none;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\topacity: .8;\n\tz-index: 1;\n}\n\n.dropzone-filetree-enabled {\n\tdisplay: block;\n}\n\n.dz-message span {\n\tfont-size: 1.3125rem;\n\tcolor: var(--gray);\n}\n\n/* TinyMCE */\n.tox-tinymce {\n\tmargin: 3px 0;\n\tborder-radius: 2px !important;\n}\n\n/* Undo */\n.tl_undo_header {\n\tmax-width: 880px;\n\tmargin-top: 2px;\n\tdisplay: grid;\n\tgrid-template-columns:2fr 2fr 3fr 3fr;\n\tgrid-column-gap: 24px;\n}\n\n.hover-row:hover .tl_undo_header {\n\tbackground-color: var(--hover-row) !important;\n}\n\n.tl_undo_preview {\n\tmargin-top: 5px;\n\tpadding: 6px 0 3px;\n\tfont-size: .75rem;\n\tposition: relative;\n}\n\n.tl_undo_preview td {\n\tpadding-left: 0 !important;\n\tpadding-right: 32px !important;\n}\n\n.tl_undo_preview td:empty {\n\tdisplay: none;\n}\n\n.tl_undo_preview img {\n\tmax-width: 320px;\n\theight: auto;\n}\n\n.tl_undo_preview a img {\n\tmargin-top: -3px;\n}\n\n.tl_undo_preview .cte_preview h1 {\n\tfont-size: 1.15rem;\n}\n\n.tl_undo_preview .cte_preview h2 {\n\tfont-size: .9rem;\n}\n\n.tl_undo_preview .cte_preview h3 {\n\tfont-size: .8rem;\n}\n\n.tl_undo_preview .cte_preview h4, .tl_undo_preview .cte_preview h5, .tl_undo_preview .cte_preview h6 {\n\tfont-size: .775rem;\n}\n\n\n/* Tablet */\n@media (max-width: 991px) {\n\t#container {\n\t\tdisplay: block;\n\t}\n\n\t#main, #left {\n\t\tfloat: none;\n\t}\n\n\t#main {\n\t\twidth: 100% !important;\n\t\tposition: relative;\n\t\ttransition: transform .2s ease;\n\t\t-webkit-transform: none;\n\t\ttransform: none;\n\t\twill-change: transform;\n\t}\n\n\t.show-navigation #main {\n\t\t-webkit-transform: translateX(240px);\n\t\ttransform: translateX(240px);\n\t}\n\n\t#left {\n\t\tvisibility: hidden;\n\t\tposition: absolute;\n\t\ttop: 40px;\n\t\twidth: 240px;\n\t\ttransition: transform .2s ease, visibility .2s ease;\n\t\t-webkit-transform: translateX(-240px);\n\t\ttransform: translateX(-240px);\n\t\twill-change: transform, visibility;\n\t}\n\n\t.show-navigation #left {\n\t\tvisibility: visible;\n\t\t-webkit-transform: none;\n\t\ttransform: none;\n\t}\n\n\t#tmenu .burger {\n\t\tdisplay: inline;\n\t}\n}\n\n/* Handheld */\n@media (max-width: 767px) {\n\t#header h1 a {\n\t\tmin-width: 22px;\n\t\tpadding: 12px;\n\t}\n\n\t#header h1 a .app-title {\n\t\tdisplay: none;\n\t}\n\n\t#header h1 a .badge-title {\n\t\tmargin-left: 32px;\n\t}\n\n\t#tmenu > li > a {\n\t\twidth: 16px;\n\t\tmargin-bottom: -2px;\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-indent: 28px; /* 16px width + 12px padding */\n\t\tbackground-size: 18px !important;\n\t}\n\n\t#tmenu sup {\n\t\ttop: 6px;\n\t\tfont-size: .5rem;\n\t}\n\n\t#tmenu .icon-debug {\n\t\tbackground: url(\"icons/debug.svg\") center center no-repeat;\n\t}\n\n\t#tmenu .icon-preview {\n\t\tbackground: url(\"icons/preview.svg\") center center no-repeat;\n\t}\n\n\t#tmenu .profile button {\n\t\twidth: 40px;\n\t\tmargin: 0 0 -2px;\n\t\tpadding-right: 12px;\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-indent: 28px; /* 16px width + 12px padding */\n\t\tbackground: url(\"icons/profile.svg\") center center no-repeat;\n\t\tbackground-size: 18px;\n\t}\n\n\t#main .content {\n\t\tmargin: 15px 10px;\n\t}\n\n\t#main_headline {\n\t\tmargin: 13px 0;\n\t\tpadding: 0 11px;\n\t}\n\n\tdiv.tl_tbox, div.tl_box {\n\t\tposition: relative;\n\t}\n\n\t.tl_content_left {\n\t\twidth: 100%;\n\t\tfloat: none;\n\t}\n\n\t.showColumns th, .showColumns td {\n\t\tdisplay: block;\n\t}\n\n\t.showColumns th:empty {\n\t\tdisplay: none;\n\t}\n\n\t.tl_label {\n\t\twhite-space: normal;\n\t}\n\n\t.list_view .tl_listing img.theme_preview {\n\t\tdisplay: none;\n\t}\n\n\t.tl_filter {\n\t\tbox-sizing: border-box;\n\t\tpadding: 0 3px 0 7px;\n\t}\n\n\t.tl_filter strong {\n\t\tdisplay: none;\n\t}\n\n\t.tl_filter .tl_select {\n\t\tdisplay: block;\n\t\tmax-width: 100%;\n\t}\n\n\t.tl_search {\n\t\twidth: 76%;\n\t\tmax-width: 283px;\n\t}\n\n\t.tl_search .tl_select {\n\t\twidth: 36%;\n\t}\n\n\t.tl_search .tl_text {\n\t\twidth: 26%;\n\t}\n\n\t.tl_sorting {\n\t\twidth: 60%;\n\t\tmax-width: 212px;\n\t}\n\n\t.tl_limit {\n\t\twidth: 50%;\n\t\tmax-width: 177px;\n\t}\n\n\t.tl_submit_panel {\n\t\tfloat: right;\n\t\tz-index: 1;\n\t}\n\n\tinput.tl_submit {\n\t\tmargin-top: 3px;\n\t\tmargin-bottom: 3px;\n\t\tpadding-left: 6px !important;\n\t\tpadding-right: 7px !important;\n\t}\n\n\t.tl_listing .tl_left, .tl_show td {\n\t\tword-break: break-word;\n\t}\n\n\t#tl_breadcrumb li {\n\t\tpadding: 3px;\n\t}\n\n\t#tl_versions {\n\t\tdisplay: none;\n\t}\n\n\t.tl_version_panel .tl_select {\n\t\twidth: 44%;\n\t}\n\n\t.tl_modulewizard td:first-child {\n\t\twidth: 1%;\n\t}\n\n\t.tl_modulewizard td:first-child .tl_select {\n\t\tmax-width: 52vw;\n\t}\n\n\t#paste_hint, .sort_hint {\n\t\tdisplay: none;\n\t}\n\n\t#tl_maintenance_cache table {\n\t\twidth: 100%;\n\t}\n\n\t#tl_maintenance_cache tr th:last-child, #tl_maintenance_cache tr td:last-child {\n\t\tdisplay: none;\n\t}\n\n\t.tl_file_list .ellipsis {\n\t\tpadding-right: 10px;\n\t}\n\n\t.tl_undo_header {\n\t\tgrid-template-columns:2fr 3fr;\n\t}\n\n\t.tl_undo_header div:not(.tstamp, .source) {\n\t\tdisplay: none;\n\t}\n}\n\n/* Phones */\n@media (max-width: 599px) {\n\t.tl_metawizard label {\n\t\twidth: auto;\n\t\tfloat: none;\n\t\tfont-size: .9em;\n\t\tdisplay: block;\n\t\tmargin-top: 3px;\n\t}\n\n\t.tl_metawizard .tl_text {\n\t\twidth: 100%;\n\t}\n}\n\n@media (max-width: 479px) {\n\t.tl_modulewizard td:first-child .tl_select {\n\t\tmax-width: 48vw;\n\t}\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/contao/themes/flexible/backend.0e6e4e98.css b/contao/themes/flexible/backend.ec1d4638.css similarity index 56% rename from contao/themes/flexible/backend.0e6e4e98.css rename to contao/themes/flexible/backend.ec1d4638.css index c86a9aa56b..c4936c3e51 100644 --- a/contao/themes/flexible/backend.0e6e4e98.css +++ b/contao/themes/flexible/backend.ec1d4638.css @@ -1,2 +1,2 @@ -@font-face{font-family:Architects Daughter;font-style:normal;font-weight:400;src:local("Architects Daughter"),url(fonts/architects-daughter-v6-latin-regular.woff2) format("woff2"),url(fonts/architects-daughter-v6-latin-regular.woff) format("woff")}:root{--text:#222;--body-bg:#eaeaec;--content-bg:#fff;--content-border:#cacacc;--black:#000;--white:#fff;--gray:#999;--green:#589b0e;--red:#c33;--blue:#006494;--orange:#f90;--contao:#f47c00;--border:#eaeaec;--nav:#d3d6da;--nav-hover:#eaedf1;--nav-bg:#0f1c26;--nav-hover-bg:#eaedf1;--nav-current:#172b3b;--nav-group:#9fa4a8;--nav-separator:#3a454d;--hover-row:#fffce1;--header-bg:#f47c00;--header-bg-hover:#e67300;--header-text:#fff;--invert-bg:#333;--invert-text:#fff;--table-header:#f7f7f8;--table-odd:#fff;--table-even:#fbfbfc;--table-nb-header:#f2f2f3;--table-nb-odd:#fff;--table-nb-even:#f7f7f8;--panel-bg:#f3f3f5;--tree-header:#f3f3f5;--tree-header-border:#dddddf;--form-text-disabled:#bbb;--form-border:#aaa;--form-border-disabled:#c8c8c8;--form-bg:#fff;--form-bg-hover:#f6f6f6;--form-bg-disabled:#f9f9f9;--form-button:#eee;--form-button-hover:#f6f6f6;--form-button-active:#aaa;--form-button-disabled:#e9e9e9;--diff-left:#ffe8e5;--diff-del:#ffc1bf;--diff-right:#e0ffe8;--diff-ins:#abf2bc;--code-bg:#f0f0f0;--checkerbox-bg:#ddd;--info:grey;--active-bg:#fffce1;--active-border:#e7b36a;--pre-disabled:#a6a6a6;--error-bg:rgba(204,51,51,.15);--confirm-bg:rgba(88,155,14,.15);--info-bg:rgba(0,100,148,.15);--new-bg:rgba(224,149,21,.15);--progress-running:#f47c00;--progress-finished:#589b0e;--drag-bg:#a3c2db;--legend:#6a6a6c;--paste-hint:#838990;--serp-preview:#3c4043;--serp-preview-title:#1a0dab;--nested-bg:#fbfbfd}html[data-color-scheme=dark]{--text:#ddd;--body-bg:#121416;--content-bg:#1b1d21;--content-border:#414448;--black:#fff;--white:#000;--blue:#0073a8;--orange:#d68c23;--contao:#f47c00;--border:#303236;--nav-bg:#1b1d21;--nav-hover-bg:#1b325f;--nav-current:#272a30;--nav-separator:#3f3f3f;--hover-row:#1b325f;--header-bg:#292c32;--header-bg-hover:#202327;--header-text:#ddd;--invert-bg:#8f96a3;--invert-text:#222;--table-header:#232529;--table-odd:#1b1d21;--table-even:#1e2024;--table-nb-header:#292c32;--table-nb-odd:#1b1d21;--table-nb-even:#23252a;--panel-bg:#272a30;--tree-header:#272a30;--tree-header-border:#3f4146;--form-text-disabled:#666;--form-border:#44464b;--form-border-disabled:#3a3c40;--form-bg:#151619;--form-bg-hover:#1e2024;--form-bg-disabled:#1e2024;--form-button:#31333a;--form-button-hover:#383a42;--form-button-active:#777;--form-button-disabled:#26272c;--diff-left:rgba(248,81,73,.17);--diff-del:rgba(248,81,73,.4);--diff-right:rgba(46,160,67,.17);--diff-ins:rgba(46,160,67,.4);--code-bg:#30343b;--checkerbox-bg:#30343b;--info:#9095a2;--active-bg:#1b325f;--active-border:#264787;--drag-bg:#1b325f;--legend:#747b8b;--serp-preview:#bdc1c6;--serp-preview-title:#8ab4f8;--nested-bg:#1e2024;color-scheme:dark}.color-scheme--dark,html[data-color-scheme=dark] .color-scheme--light{display:none}.color-scheme--light,html[data-color-scheme=dark] .color-scheme--dark{display:initial}html{-webkit-text-size-adjust:100%;font-size:100%}article,aside,figcaption,figure,footer,header,main,nav,section{display:block}blockquote,body,dl,figure,h1,h2,h3,h4,p{margin:0}img{border:0}table{border-collapse:collapse;border-spacing:0;empty-cells:show}td,th{text-align:left}.tl_select,a.tl_submit,img,input,label,select{vertical-align:middle}button{cursor:pointer}button[disabled]{cursor:default}nav li,nav ul{list-style:none;margin:0;padding:0}body{color:var(--text);font-family:-apple-system,system-ui,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:.875rem;font-weight:400;line-height:1}b,h1,h2,h3,h4,h5,h6,strong,th{font-weight:600}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body{font-weight:300}b,h1,h2,h3,h4,h5,h6,strong,th{font-weight:500}}.tl_textarea.monospace,code,pre{font:300 .75rem/1.25 SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}h1,h2,h3,h4,h5,h6{font-size:1rem}button,input,select,textarea{color:inherit;font:inherit;line-height:inherit}input,select{line-height:17px}@supports (display:-ms-grid){input,select{line-height:1.1}}.tl_gray{color:var(--gray)}.tl_green{color:var(--green)}.tl_red{color:var(--red)}.tl_blue{color:var(--blue)}.tl_orange{color:var(--orange)}span.mandatory{color:var(--red)}.upper{text-transform:uppercase}a{color:var(--text);text-decoration:none}a:active,a:hover{color:var(--contao)}hr{background:var(--border);border:0;color:var(--border);height:1px;margin:18px 0}p{margin-bottom:1em;padding:0}.hidden{display:none!important}.unselectable{-webkit-touch-callout:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}table.with-border td,table.with-border th{border:solid var(--border);border-width:1px 0}table.with-border th{background-color:var(--table-header)}table.with-padding td,table.with-padding th{padding:6px}table.with-zebra th{background-color:var(--table-nb-header)}table.with-zebra tbody tr:nth-child(odd) td{background-color:var(--table-nb-odd)}table.with-zebra tbody tr:nth-child(2n) td{background-color:var(--table-nb-even)}.clear{clear:both;font-size:.1px;height:.1px;line-height:.1px}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.invisible{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}fieldset>.widget-group{padding:0 15px}.widget-group{--widget-col-amount:12;--widget-gap-rows:0;--widget-gap-cols:0;align-items:center;display:grid;gap:var(--widget-gap-rows) var(--widget-gap-cols);grid-template-columns:repeat(var(--widget-col-amount),minmax(0,1fr))}.widget-group>*{--widget-cols:var(--widget-col-amount);grid-column-end:span var(--widget-cols)}.widget-group>.clr,.widget-group>.subpal{grid-column-start:1}:not(.widget-group)>.widget{margin-left:15px;margin-right:15px;position:relative}:not(.widget-group)>.w50{float:none;width:calc(100% - 30px)}:not(.widget-group)>.clr{clear:both;width:calc(100% - 30px)}:not(.widget-group)>.long{width:calc(100% - 30px)}:not(.widget-group)>.clr:not(.widget){width:100%}:not(.widget-group)>.clr:before{content:"";display:table}:not(.widget-group)>.m12{margin:0 15px}.widget{font-size:0}.widget *{font-size:.875rem}.widget>div{font-size:0}.widget>div>*{font-size:.875rem}.widget code,.widget pre{font-size:.7rem}.widget h3{min-height:16px}.widget h3 img{margin-right:3px}.widget legend{padding:0}.widget legend img{vertical-align:-1px}.widget-captcha{display:initial!important}.widget p.info{background:var(--panel-bg);border-radius:3px;line-height:1.3;margin:2px 0;padding:7px}.widget picture{display:contents}optgroup{background:var(--form-bg);font-style:normal;padding-bottom:3px;padding-top:3px}fieldset.tl_checkbox_container,fieldset.tl_radio_container{border:0;margin:15px 0 0;padding:0}.tl_checkbox_single_container>span,fieldset.tl_checkbox_container>span,fieldset.tl_radio_container>span{align-items:center;column-gap:3px;display:flex;margin:2px 0}fieldset.tl_checkbox_wizard .sortable>span,fieldset.tl_radio_container .sortable>span{align-items:center;column-gap:3px;display:flex;margin:0}fieldset.tl_checkbox_container legend,fieldset.tl_radio_container legend{font-weight:600;margin-bottom:1px}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){fieldset.tl_checkbox_container legend,fieldset.tl_radio_container legend{font-weight:500}}fieldset.tl_checkbox_container .check-all{color:var(--gray)}fieldset.tl_checkbox_container button{vertical-align:middle}fieldset.checkbox_container,fieldset.radio_container{border:0;margin:0;padding:0}.tl_text{width:100%}.tl_text_2,.tl_text_interval{width:49%}.tl_text_3{width:32.333%}.tl_text_4{width:24%}.tl_textarea{width:100%}.tl_text_unit{width:79%}.tl_text_trbl{width:19%}.tl_text,.tl_text_2,.tl_text_3,.tl_text_4,.tl_text_interval,.tl_text_trbl,.tl_text_unit,.tl_textarea{-moz-appearance:none;-webkit-appearance:none;background-color:var(--form-bg);border:1px solid var(--form-border);border-radius:2px;box-sizing:border-box;height:30px;margin:3px 0;padding:5px 6px 6px}.tl_text[disabled],.tl_text_2[disabled],.tl_text_3[disabled],.tl_text_4[disabled],.tl_text_interval[disabled],.tl_text_trbl[disabled],.tl_text_unit[disabled],.tl_textarea[disabled]{background-color:var(--form-bg-disabled);border:1px solid var(--form-border-disabled);color:var(--form-text-disabled);cursor:not-allowed}.tl_text[readonly],.tl_text_2[readonly],.tl_text_3[readonly],.tl_text_4[readonly],.tl_text_interval[readonly],.tl_text_trbl[readonly],.tl_text_unit[readonly],.tl_textarea[readonly]{background-color:var(--form-bg-disabled);border:1px solid var(--form-border-disabled)}.tl_textarea{height:240px;line-height:1.45;padding:4px 6px}.tl_text_2,.tl_text_3,.tl_text_4,.tl_text_interval,.tl_text_trbl,.tl_text_unit{margin-right:1%}.tl_text_2:last-child,.tl_text_3:last-child,.tl_text_4:last-child,.tl_text_trbl:last-child{margin-right:0}.tl_text_field .tl_text_2{width:49.5%}.tl_imageSize_0{margin-left:1%}input[type=search]{height:27px;padding-bottom:1px;padding-top:0}input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9IiM3NzciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTE5IDYuNDEgMTcuNTkgNSAxMiAxMC41OSA2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMiAxMy40MSAxNy41OSAxOSAxOSAxNy41OSAxMy40MSAxMnoiLz48L3N2Zz4=");height:14px;margin-right:0;width:14px}@-moz-document url-prefix(){.tl_text::placeholder,.tl_text_2::placeholder,.tl_text_3::placeholder,.tl_text_4::placeholder,.tl_text_interval::placeholder,.tl_text_trbl::placeholder,.tl_text_unit::placeholder,.tl_textarea::placeholder{line-height:18px}}@media not all and (min-resolution:.001dpcm){@supports (-webkit-appearance:none){.tl_text::placeholder,.tl_text_2::placeholder,.tl_text_3::placeholder,.tl_text_4::placeholder,.tl_text_interval::placeholder,.tl_text_trbl::placeholder,.tl_text_unit::placeholder,.tl_textarea::placeholder{line-height:16px}input[type=search]{padding-right:0}input[type=search]::-webkit-search-cancel-button{margin:7px 4px 0 0}}}@supports (display:-ms-grid){.tl_text,.tl_text_2,.tl_text_3,.tl_text_4,.tl_text_interval,.tl_text_trbl,.tl_text_unit,.tl_textarea{padding:4px 6px 5px}}select{-moz-appearance:none;-webkit-appearance:none;text-transform:none}select::-ms-expand{display:none}select[multiple]{height:auto}.tl_mselect,.tl_select,.tl_select_column{width:100%}.tl_select_unit{width:20%}.tl_select_interval{width:50%}.tl_mselect,.tl_select,.tl_select_column,.tl_select_interval,.tl_select_unit{background:var(--form-bg) url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDUwMCA1MDAiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9IjEzMS41MjMiIHgyPSIzNjguNDc4IiB5MT0iNDIuNjMiIHkyPSIyNzkuNTg0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjYjNiM2IzIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjOTk5Ii8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI2EpIiBkPSJNMjUwIDM5Ni42NjZjLTEuMTU1IDAtNC4xMS0xLjgzMi03LjExMy02Ljc1bC0xNjkuNi0yNzcuNDU1Yy0yLjUxNy00LjExNC0zLjE5LTYuOTgtMy4yOC04LjMxNC44MjctLjMzIDIuNTY1LS44MTIgNS42MjctLjgxMmgzNDguNzMzYzMuMDYzIDAgNC43OTguNDgyIDUuNjI3LjgxMi0uMDkgMS4zMzQtLjc2NiA0LjItMy4yOCA4LjMxNWwtMTY5LjYgMjc3LjQ1N2MtMy4wMDUgNC45MTctNS45NiA2Ljc1LTcuMTE0IDYuNzV6Ii8+PC9zdmc+") right -16px top 3px no-repeat;background-origin:content-box;border:1px solid var(--form-border);border-radius:2px;box-sizing:border-box;cursor:pointer;height:30px;margin:3px 0;padding:5px 22px 6px 6px}.tl_mselect[disabled],.tl_mselect[readonly],.tl_select[disabled],.tl_select[readonly],.tl_select_column[disabled],.tl_select_column[readonly],.tl_select_interval[disabled],.tl_select_interval[readonly],.tl_select_unit[disabled],.tl_select_unit[readonly]{background-color:var(--form-bg-disabled);border:1px solid var(--form-border-disabled);color:var(--form-text-disabled);cursor:not-allowed}.tl_mselect[multiple],.tl_select[multiple],.tl_select_column[multiple],.tl_select_interval[multiple],.tl_select_unit[multiple]{background-image:none}@supports (display:-ms-grid){.tl_mselect,.tl_select,.tl_select_column,.tl_select_interval,.tl_select_unit{padding:5px 18px 5px 2px}}.tl_checkbox{margin:0 1px 0 0}.tl_tree_checkbox{margin:1px 1px 1px 0}.tl_checkbox_single_container{margin:16px 0 0}.tl_checkbox_single_container label{font-weight:600}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.tl_checkbox_single_container label{font-weight:500}}.checkbox_toggler_first{margin-top:2px}.checkbox_toggler,.checkbox_toggler_first{font-weight:600}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.checkbox_toggler,.checkbox_toggler_first{font-weight:500}}.checkbox_toggler img,.checkbox_toggler_first img{margin-right:2px;position:relative;top:-1px}.checkbox_options{margin:0 0 3px 21px!important}.tl_checkbox_container .checkbox_options:last-of-type{margin-bottom:0!important}.tl_radio{margin:0 1px 0 0}.tl_tree_radio{margin:1px 1px 1px 0}.tl_radio_table{margin-top:3px}.tl_radio_table td{align-items:center;column-gap:3px;display:inline-flex;padding:0 24px 0 0}.tl_upload_field{margin:1px 0}.tl_submit{background:var(--form-button);border:1px solid var(--form-border);border-radius:2px;box-sizing:border-box;cursor:pointer;height:30px;padding:7px 12px;transition:background .2s ease}.tl_submit:hover{background-color:var(--form-button-hover);color:inherit}.tl_submit:active{color:var(--form-button-active)}.tl_submit:disabled{background:var(--form-button-disabled)!important;color:var(--gray);cursor:not-allowed}.tl_formbody_submit .tl_submit,.tl_panel .tl_submit,.tl_version_panel .tl_submit{background:var(--form-bg)}.tl_formbody_submit .tl_submit:hover,.tl_panel .tl_submit:hover,.tl_version_panel .tl_submit:hover{background:var(--form-bg-hover)}.split-button,a.tl_submit{display:inline-block}.split-button{position:relative;z-index:1}.split-button li,.split-button ul{list-style:none;margin:0;padding:0}::-moz-placeholder{padding-top:1px}::-webkit-input-placeholder{padding-top:1px}.wizard>a{position:relative;top:-2px;vertical-align:middle}.wizard>.image-button{background:none;border:0;padding:0;vertical-align:middle}.wizard .tl_image_size,.wizard .tl_select,.wizard .tl_text{width:calc(100% - 24px)}.wizard .tl_text_2{width:45%}.wizard .tl_image_size{display:inline-block}.wizard img{margin-left:4px}.wizard h3 img{margin-left:0}.long .tl_select,.long .tl_text{width:100%}.subpal{clear:both}.inline div{display:inline}.autoheight{height:auto}.tl_tip{cursor:help;height:15px;overflow:hidden}.tip{background:var(--invert-bg);border-radius:2px;max-width:80vw;padding:6px 9px;position:relative;z-index:99}.tip div{line-height:1.3}.tip a,.tip div,.tip span{color:var(--invert-text)}.tip:before{border-bottom:7px solid var(--invert-bg);border-left:7px solid transparent;border-right:7px solid transparent;content:"";height:6px;left:9px;position:absolute;top:-13px}.tip--rtl:before{left:auto;right:9px}.hover-div:hover,.hover-div:hover .limit_toggler,.hover-row:hover .limit_toggler,.hover-row:hover td{background-color:var(--hover-row)!important}.badge-title{background:var(--invert-bg);border-radius:8px;color:var(--invert-text);float:right;font-size:.75rem;font-weight:600;margin-left:8px;margin-top:-8px;padding:2px 5px}@media (min-width:768px){.widget-group{--widget-gap-cols:30px}.w16,.w25,.w33,.w50,.w75{--widget-cols:6}.tip{max-width:320px}:not(.widget-group)>.m12{margin:0 15px;padding:16px 0}:not(.widget-group)>.w50{float:left;min-height:80px;width:calc(50% - 30px)}.nogrid :not(.widget-group)>:is(.w25,.w33,.w50,.w66,.w75){float:none}:not(.widget-group)>.cbx{min-height:46px}:not(.widget-group)>.cbx.m12{box-sizing:border-box;min-height:80px}}@media (min-width:1280px){.w16{--widget-cols:2}.w25{--widget-cols:3}.w33{--widget-cols:4}.w50{--widget-cols:6}.w75{--widget-cols:9}#sbtog{display:none}.split-button ul{clip:auto;display:inline-flex;height:auto;margin:0 0 0 -4px;overflow:initial;position:static;width:auto}.split-button li{margin-left:4px}}@media (max-width:1279.98px){.split-button{display:inline-flex}.split-button ul{background:var(--form-bg);border:1px solid var(--form-border);border-radius:2px;bottom:20px;box-sizing:border-box;margin-bottom:1em;min-width:100%;padding:3px 0;position:absolute;right:0}.split-button ul button{border:0;text-align:left;white-space:nowrap;width:100%}.split-button ul .tl_submit{background:var(--form-bg);margin-bottom:0;margin-top:0}.split-button ul .tl_submit:hover{background:var(--form-button-hover)}.split-button ul:before{border:6px inset transparent;border-top:6px solid var(--form-bg);bottom:-12px;right:4px;z-index:89}.split-button ul:after,.split-button ul:before{content:"";display:block;height:0;position:absolute;width:0}.split-button ul:after{border:7px inset transparent;border-top:7px solid var(--form-border);bottom:-14px;right:3px;z-index:88}.split-button>button[type=submit]{border-radius:2px 0 0 2px;position:relative}.split-button>button[type=button]{background:var(--form-bg);border:1px solid var(--form-border);border-left:0;border-radius:0 2px 2px 0;box-sizing:border-box;height:30px;margin:2px 0;padding:7px 4px;transition:background .2s ease}.split-button>button[type=button].active,.split-button>button[type=button]:hover{background:var(--form-button-hover)}.split-button>button[type=button]:focus{outline:none}}:root{--icon-logo:url(icons/logo.svg);--icon-profile:url(icons/profile_small.svg);--icon-security:url(icons/shield_small.svg);--icon-favorites:url(icons/favorites_small.svg);--icon-logout:url(icons/exit.svg);--icon-toggle-all:url(icons/chevron-right.svg);--icon-alert:url(icons/alert.svg);--icon-favorite:url(icons/favorite.svg);--icon-favorite--active:url(icons/favorite_active.svg);--icon-manual:url(icons/manual.svg);--icon-color-scheme:url(icons/color_scheme.svg);--icon-arrow-left:url(icons/arrow_left.svg);--icon-arrow-right:url(icons/arrow_right.svg);--icon-visible:url(icons/visible.svg);--icon-invisible:url(icons/invisible.svg);--icon-loading:url(icons/loading.svg)}html[data-color-scheme=dark]{--icon-logo:url(icons/logo--dark.svg);--icon-profile:url(icons/profile_small--dark.svg);--icon-security:url(icons/shield_small--dark.svg);--icon-favorites:url(icons/favorites_small--dark.svg);--icon-logout:url(icons/exit--dark.svg);--icon-toggle-all:url(icons/chevron-right--dark.svg);--icon-alert:url(icons/alert--dark.svg);--icon-favorite:url(icons/favorite--dark.svg);--icon-favorite--active:url(icons/favorite_active--dark.svg);--icon-manual:url(icons/manual--dark.svg);--icon-color-scheme:url(icons/color_scheme--dark.svg);--icon-arrow-left:url(icons/arrow_left--dark.svg);--icon-arrow-right:url(icons/arrow_right--dark.svg);--icon-visible:url(icons/visible--dark.svg);--icon-invisible:url(icons/invisible--dark.svg);--icon-loading:url(icons/loading--dark.svg)}html{scroll-behavior:smooth;scroll-padding-top:36px}@media screen and (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--body-bg);overflow-y:scroll}body.popup{background:var(--content-bg)}#header{background:var(--header-bg);min-height:40px;text-align:left}#header h1{position:absolute}#header h1 a{background:var(--icon-logo) no-repeat 10px center;display:block;font-weight:400;height:16px;padding:12px 12px 12px 42px}#header h1 a .app-title{color:var(--header-text);font-size:17px}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#header h1 a{font-weight:300}}#tmenu{display:flex;justify-content:flex-end}#tmenu li{position:relative}#tmenu .profile button,#tmenu a{display:inline-block;margin:0;padding:13px 12px}#tmenu sup{background:var(--header-text);border-radius:2px;color:var(--header-bg);font-size:.6rem;font-weight:400;left:20px;padding:2px;position:absolute;text-indent:0;top:5px}#tmenu .burger{display:none}#tmenu .burger button{background:none;border:0;padding:8px 10px 9px}#tmenu .burger svg{margin-bottom:-1px;vertical-align:middle}#tmenu .profile button{background:url(icons/chevron-down.svg) right 9px top 14px no-repeat;border:none;cursor:pointer;font-size:.875rem;font-weight:400;padding-right:26px;position:relative}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#tmenu .profile button{font-weight:300}}#tmenu .burger button,#tmenu .profile button,#tmenu a{color:var(--header-text);transition:background-color .3s ease}#tmenu .active .profile button,#tmenu .burger button:hover,#tmenu a.hover,#tmenu a:hover,#tmenu li:hover .profile button{background-color:var(--header-bg-hover)}#tmenu ul.menu_level_1{background:var(--content-bg);border:1px solid var(--content-border);box-shadow:0 1px 6px rgba(0,0,0,.2);color:var(--text);margin-top:5px;min-width:150px;opacity:0;position:absolute;right:6px;text-align:left;transition:opacity .3s ease,visibility .3s ease;visibility:hidden;z-index:4}#tmenu .active ul.menu_level_1{opacity:1;visibility:visible}#tmenu ul.menu_level_1 li a{color:inherit;display:block;padding:6px 20px 6px 40px;white-space:nowrap}#tmenu ul.menu_level_1 li a:hover{background-color:var(--nav-hover-bg)}#tmenu ul.menu_level_1 .info{border-bottom:1px solid var(--border);color:var(--info);line-height:1.4;margin-bottom:9px;padding:15px 20px;white-space:nowrap}#tmenu ul.menu_level_1 strong{color:var(--text);display:block}#tmenu ul.menu_level_1:before{border:7px solid transparent;border-bottom:7px solid var(--content-bg);content:"";display:block;height:0;position:absolute;right:9px;top:-14px;width:0}#tmenu ul.menu_level_1:after{border-right:1px solid var(--content-border);border-top:1px solid var(--content-border);content:"";display:block;height:9px;position:absolute;right:11px;top:-6px;transform:rotate(-45deg);width:9px}#tmenu ul.menu_level_1 .logout{border-top:1px solid var(--border);margin-top:9px;padding:6px 0}#tmenu .icon-alert,#tmenu .icon-color-scheme,#tmenu .icon-favorite,#tmenu .icon-manual{margin-bottom:-2px;overflow:hidden;position:relative;text-indent:28px;white-space:nowrap;width:16px}#tmenu .icon-alert{background:var(--icon-alert) center center no-repeat}#tmenu .icon-favorite{background:var(--icon-favorite) center center no-repeat}#tmenu .icon-favorite--active{background:var(--icon-favorite--active) center center no-repeat}#tmenu .icon-manual{background:var(--icon-manual) center center no-repeat}#tmenu .icon-color-scheme{background:var(--icon-color-scheme) center center no-repeat}#tmenu .icon-profile{background:var(--icon-profile) 20px center no-repeat}#tmenu .icon-security{background:var(--icon-security) 20px center no-repeat}#tmenu .icon-favorites{background:var(--icon-favorites) 20px center no-repeat}#tmenu .icon-logout{background:var(--icon-logout) 20px center no-repeat}#container{display:flex;min-height:calc(100vh - 40px)}.popup #container{max-width:none;min-height:0;padding:0;width:auto}#left{background:var(--nav-bg);display:flex;flex-direction:column;width:220px}#left .version{font-size:.75rem;line-height:1.4;margin-top:4em;padding:15px 18px}#left .version,#left .version a{color:var(--nav-group)}#main{display:flex;flex-direction:column;width:calc(100% - 220px)}.popup #main{border:0;display:initial;float:none;margin:0;max-width:none;padding:0;width:auto}#main .content{background:var(--content-bg);border:1px solid var(--content-border);margin:0 15px 15px}.popup #main .content{border:0;margin:0}#tl_navigation{flex-grow:1}#tl_navigation .menu_level_0{padding-top:20px}#tl_navigation .menu_level_0>li:after{background:var(--nav-separator);content:"";display:block;height:1px;margin:15px auto;width:calc(100% - 30px)}#tl_navigation .menu_level_0>li.last:after{display:none}#tl_navigation .menu_level_0 a[class^=group-]{color:var(--nav-group);display:block;font-size:.75rem;font-weight:500;margin:0 15px;padding:3px 3px 3px 22px;text-transform:uppercase}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#tl_navigation .menu_level_0 a[class^=group-]{font-weight:400}}#tl_navigation .group-favorites{background:url(icons/favorites_group.svg) 3px 2px no-repeat}#tl_navigation .group-content{background:url(icons/content.svg) 3px 2px no-repeat}#tl_navigation .group-design{background:url(icons/monitor.svg) 3px 2px no-repeat}#tl_navigation .group-accounts{background:url(icons/person.svg) 3px 2px no-repeat}#tl_navigation .group-system{background:url(icons/wrench.svg) 3px 2px no-repeat}#tl_navigation .menu_level_1{padding-top:5px}#tl_navigation [class^=menu_level_] a{color:var(--nav);display:block;font-weight:400;padding:5px 33px 5px 37px;transition:color .2s ease}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#tl_navigation [class^=menu_level_] a{font-weight:300}}#tl_navigation [class^=menu_level_]>li.current>a{background-color:var(--nav-current);border-left:4px solid var(--contao)}#tl_navigation .menu_level_1>li.current>a{padding-left:33px}#tl_navigation .menu_level_2 a{padding-left:49px}#tl_navigation .menu_level_2>li.current>a{padding-left:45px}#tl_navigation .menu_level_3 a{padding-left:61px}#tl_navigation .menu_level_3>li.current>a{padding-left:57px}#tl_navigation .menu_level_4 a{padding-left:73px}#tl_navigation .menu_level_4>li.current>a{padding-left:69px}#tl_navigation .menu_level_5 a{padding-left:85px}#tl_navigation .menu_level_5>li.current>a{padding-left:81px}#tl_navigation .menu_level_2 a{font-size:.75rem}#tl_navigation .menu_level_1 li.has-children:not(.first){padding-top:5px}#tl_navigation .menu_level_1 li.has-children:not(.last){padding-bottom:5px}#tl_navigation .menu_level_1 a:hover,#tl_navigation .menu_level_1 li.current>a{background-color:var(--nav-current);color:var(--nav-hover)}#tl_navigation .collapsed .menu_level_1{display:none}#tl_buttons{margin:0;padding:9px 15px;text-align:right}.toggleWrap{cursor:pointer}.opacity{-moz-opacity:.8;opacity:.8}#main_headline{display:flex;font-size:1.1rem;margin:18px 16px}.popup #main_headline{display:none}#main_headline span{display:inline-block;flex:1 0 0;line-height:22px;max-width:max-content;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#main_headline span:nth-child(2n){font-weight:400}#main_headline span+span:before{content:"\A0› ";font-weight:600}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#main_headline span:nth-child(2n){font-weight:300}#main_headline span+span:before{font-weight:500}}h2.sub_headline{margin:3px 18px;padding:7px 0}.label-info{color:var(--gray);padding-left:3px}.label-date{color:var(--gray);padding-right:3px}.tl_gerror{background:url(icons/error.svg) no-repeat 0;margin:12px;padding:3px 0 3px 22px}.tl_confirm,.tl_error,.tl_info,.tl_new{line-height:1.3;margin:0 0 1px;padding:11px 18px 11px 32px}.tl_error{background:var(--error-bg) url(icons/error.svg) no-repeat 11px 12px}.tl_confirm{background:var(--confirm-bg) url(icons/ok.svg) no-repeat 11px 12px}.tl_info{background:var(--info-bg) url(icons/show.svg) no-repeat 11px 12px}.tl_new{background:var(--new-bg) url(icons/featured.svg) no-repeat 11px 12px}.tl_error,.tl_error a,.tl_gerror,.tl_gerror a{color:var(--red)}.tl_error a,.tl_gerror a{text-decoration:underline}.tl_confirm,.tl_confirm a{color:var(--green)}.tl_info,.tl_info a{color:var(--blue)}.tl_new,.tl_new a{color:var(--orange)}.widget .tl_confirm,.widget .tl_error,.widget .tl_info,.widget .tl_new{background-position:9px 9px;padding:8px 10px 8px 30px}.tl_confirm strong,.tl_error strong,.tl_info strong,.tl_new strong{color:inherit}.tl_panel,.tl_version_panel{background:var(--panel-bg);border-bottom:1px solid var(--content-border);padding:4px 12px;text-align:right}.tl_version_panel{padding:8px 12px}.tl_panel .tl_select{text-align:left}.tl_version_panel .tl_select{max-width:280px}.tl_version_panel .tl_submit{vertical-align:middle}.tl_img_submit,.tl_version_panel .tl_formbody{position:relative}.tl_img_submit{border:0;cursor:pointer;height:16px;margin:0;overflow:hidden;padding:0;text-indent:16px;top:9px;white-space:nowrap;width:16px}.filter_apply{background:url(icons/filter-apply.svg) 50% no-repeat}.filter_reset{background:url(icons/filter-reset.svg) 50% no-repeat}.tl_subpanel{float:right;letter-spacing:-.31em}.tl_subpanel *{letter-spacing:normal}.tl_search span,.tl_subpanel strong{vertical-align:middle}.tl_submit_panel{min-width:32px;padding-left:6px;padding-right:3px}#search .active,.tl_panel .active,.tl_panel_bottom .active{background-color:var(--active-bg)}.tl_submit_panel button+button{margin-left:1px}.tl_filter{width:100%}.tl_filter .tl_select{margin-left:3px;max-width:14.65%}.tl_submit_panel+.tl_filter{width:86%}.tl_limit{width:22%}.tl_limit .tl_select{margin-left:3px;width:52%}.tl_search{width:40%}.tl_search .tl_select{margin-left:3px;margin-right:1%;width:38%}.tl_search .tl_text{-webkit-appearance:textfield;box-sizing:content-box;margin-left:1%;width:30%}.tl_sorting{width:26%}.tl_sorting .tl_select{margin-left:1%;width:60%}.jump-targets{background:var(--panel-bg);border-bottom:1px solid var(--content-border);min-height:30px;padding-top:1px;position:sticky;top:0;z-index:3}.jump-targets .inner{overflow-x:scroll;scrollbar-width:none}.jump-targets .inner::-webkit-scrollbar{display:none}.jump-targets ul{list-style:none;margin:0;padding:0;white-space:nowrap}.jump-targets li{display:inline-block;font-size:.75rem;padding:9px 10px;white-space:nowrap}.jump-targets button{background:none;border:none;padding:0}.jump-targets:after,.jump-targets:before{content:"";display:block;height:100%;position:absolute;top:0;width:10px}.jump-targets:before{background:linear-gradient(-90deg,transparent 0,var(--panel-bg) 50%)}.jump-targets:after{background:linear-gradient(90deg,transparent 0,var(--panel-bg) 50%);right:0}.tl_xpl{padding:0 18px}.tl_box,.tl_tbox{border-bottom:1px solid var(--border);padding:12px 0 25px}.tl_box:last-child,.tl_tbox:last-child{border-bottom:0}.tl_box h3,.tl_tbox h3,.tl_xpl h3{font-size:.875rem;height:16px;margin:0;padding-top:13px}.tl_box h4,.tl_tbox h4{font-size:.875rem;margin:6px 0 0;padding:0}.tl_tbox.theme_import{padding-left:15px;padding-right:15px}.tl_tbox.theme_import h3,.tl_tbox.theme_import h4,.tl_tbox.theme_import p{line-height:1.3}.tl_help,.tl_help *{font-size:.75rem}.tl_help,.tl_help a{color:var(--info);line-height:1.2;margin-bottom:0}.tl_help a:active,.tl_help a:focus,.tl_help a:hover{text-decoration:underline}#tl_buttons+.tl_edit_form .tl_formbody_edit{border-top:1px solid var(--border)}.tl_formbody_submit{border-top:1px solid var(--content-border);bottom:0;position:sticky;z-index:3}.tl_submit_container{background:var(--panel-bg);padding:8px 12px}.tl_submit_container .tl_submit{margin:2px 0}.maintenance_active{padding-top:12px}.maintenance_active,.maintenance_inactive{border-top:1px solid var(--border)}.maintenance_inactive .tl_tbox{border:0!important;padding:6px 15px 14px}.maintenance_inactive .tl_message{margin:0 15px 3px}.maintenance_inactive h2.sub_headline{margin:16px 15px 3px}.maintenance_inactive .tl_submit_container{background:none;border:0;padding:0 15px 24px}@keyframes crawl-progress-bar-stripes{0%{background-position-x:1rem}}#tl_crawl .tl_message{margin-bottom:24px}#tl_crawl .tl_message>p{background-color:transparent;background-position-y:center;padding-bottom:0;padding-top:0}#tl_crawl .tl_tbox{margin-top:0;padding-left:0;padding-right:0;padding-top:0}#tl_crawl .tl_checkbox_container{margin-top:6px}#tl_crawl .inner{margin:0 18px 18px;position:relative}#tl_crawl .progress{background-color:var(--tree-header);border-radius:2px;display:flex;height:20px}#tl_crawl .progress-bar{background-size:10px 10px;color:#fff;display:flex;flex-direction:column;justify-content:center;text-align:center;white-space:nowrap}#tl_crawl .progress-bar.running{animation:crawl-progress-bar-stripes 1s linear infinite;background-color:var(--progress-running);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}#tl_crawl .progress-bar.finished{background-color:var(--progress-finished)}#tl_crawl .progress-count{margin:6px 0 24px}#tl_crawl .results h3{font-size:.9rem;margin:18px 0 9px}#tl_crawl .results p{margin-bottom:6px}#tl_crawl .crawl-hint{line-height:1.3;margin-top:-2px}#tl_crawl .crawl-hint a{text-decoration:underline}#tl_crawl .subscriber-log{display:none;margin-bottom:0;padding:5px 0}#tl_crawl .wait{color:var(--gray);margin-top:9px}#tl_crawl .debug-log{display:none;margin-top:11px}#tl_crawl .results.finished .show-when-running,#tl_crawl .results.running .show-when-finished{display:none}#tl_crawl .results.finished .show-when-finished,#tl_crawl .results.running .show-when-running{display:block}#tl_crawl .result .summary.success{color:var(--green)}#tl_crawl .result .summary.failure{color:var(--red)}#tl_crawl .result .warning{color:var(--blue);display:none}.two-factor{border-top:1px solid var(--border);padding-bottom:9px}.two-factor h2.sub_headline{margin:18px 15px 3px}.two-factor>p{line-height:1.3;margin:0 15px 12px}.two-factor li{list-style:initial;margin-left:2em}.two-factor .qr-code{margin:0 15px}.two-factor .qr-code img{border:3px solid #fff}.two-factor .tl_listing_container{margin-top:6px}.two-factor .widget{height:auto;margin:15px 15px 12px}.two-factor .widget .tl_error{background:none;font-size:.75rem;line-height:1.25;margin:0;padding:1px 0}.two-factor .tl_submit_container{background:none;border:0;padding:0 15px 10px}.two-factor .submit_container{clear:both;margin:0 15px 12px}.two-factor .tl_message{margin:0 15px 12px}.two-factor .tl_message>p{background-color:transparent;background-position:3px;padding:0 3px 0 27px}.two-factor .tl_backup_codes>p,.two-factor .tl_trusted_devices>p{line-height:1.3;margin:0 15px 12px}.two-factor .backup-codes{display:grid;grid-template-columns:repeat(2,1fr);margin:15px 15px 24px;max-width:224px;padding:0}.two-factor .backup-codes li{list-style:none;margin:0}.two-factor .tl_trusted_devices td,.two-factor .tl_trusted_devices th{line-height:16px}#search{margin:18px 18px -9px;text-align:right}#search .tl_text{-webkit-appearance:textfield;box-sizing:content-box;max-width:160px}.tl_edit_preview{margin-top:18px}.tl_edit_preview img{background:var(--white);border:1px solid var(--content-border);height:auto;max-width:100%;padding:2px}.tl_edit_preview_enabled{cursor:crosshair;display:inline-block;position:relative}.tl_edit_preview_important_part{border:1px solid var(--black);box-shadow:0 0 0 1px var(--white),inset 0 0 0 1px var(--white);margin:-1px;opacity:.5;position:absolute}table.tl_listing{width:100%}.tl_listing_container{margin:18px 0;padding:0 15px}#tl_buttons+.tl_form .tl_listing_container,#tl_buttons+.tl_listing_container{margin-top:12px}#paste_hint+.tl_listing_container{margin-top:36px}.tl_folder_list,.tl_folder_tlist{background:var(--table-header);border-bottom:1px solid var(--border);font-weight:600;padding:6px}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.tl_folder_list,.tl_folder_tlist{font-weight:500}}.tl_folder_tlist{border-top:1px solid var(--border);line-height:16px}.tl_file,.tl_file_list{background:var(--content-bg);border-bottom:1px solid var(--border);padding:5px 6px;position:relative}.tl_file_list .ellipsis{height:16px;overflow:hidden;padding-right:18px;text-overflow:ellipsis;word-break:break-all}.tl_right_nowrap{padding:6px;text-align:right;vertical-align:top;white-space:nowrap}.tl_listing.picker .tl_file,.tl_listing.picker .tl_folder,.tl_listing.picker .tl_right_nowrap,.tl_listing_container.picker .tl_content,.tl_listing_container.picker .tl_content_header{background-image:linear-gradient(90deg,transparent calc(100% - 26px),var(--tree-header) 26px)}.tl_listing.picker .tl_tree_checkbox,.tl_listing.picker .tl_tree_radio,.tl_listing_container.picker .tl_tree_checkbox,.tl_listing_container.picker .tl_tree_radio{margin-left:8px;margin-top:2px}.tl_listing.picker .tl_tree_checkbox:disabled,.tl_listing.picker .tl_tree_radio:disabled,.tl_listing_container.picker .tl_tree_checkbox:disabled,.tl_listing_container.picker .tl_tree_radio:disabled{visibility:hidden}.tl_listing_container.picker div[class^=ce_]{padding-right:24px}.tl_listing_container.picker .limit_toggler{width:calc(100% - 26px)}.list_view .tl_listing img.theme_preview{margin-right:9px}.tl_show{margin:18px 2%;padding:9px 0 18px;width:96%}.tl_show+.tl_show{margin-top:36px}.tl_show td,.tl_show th{line-height:16px;white-space:pre-line}.tl_show td:first-child{white-space:normal;width:34%}.tl_show td p:last-of-type{margin-bottom:0}.tl_show small{color:var(--info);display:block}.tl_label{font-weight:600;margin-right:12px;white-space:nowrap}.tl_label small{font-weight:400}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.tl_label{font-weight:500}.tl_label small{font-weight:300}}.tl_empty{margin:0;padding:18px}.tl_empty_parent_view{margin:0;padding:18px 0 0}.tl_listing_container+.tl_empty{margin-top:-18px}.tl_noopt{margin:1px 0}.tl_select_trigger{margin-top:-9px}.tl_radio_reset,.tl_select_trigger{padding:0 6px 3px 0;text-align:right}.tl_radio_reset{margin-top:6px}.tl_radio_label,.tl_select_label{color:var(--gray);font-size:.75rem;margin-right:2px}.tl_header{background:var(--table-header);margin-bottom:18px;padding:10px}.tl_header_table{line-height:1.3}.tl_content_header{background:var(--table-header);border-bottom:1px solid var(--border);font-weight:600;padding:7px 6px}.tl_header+.tl_content_header{border-top:1px solid var(--border)}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.tl_content_header{font-weight:500}}.as-grid .tl_content_header{background-color:transparent;border:0;font-size:1rem;margin-top:24px;padding:0 1px}.tl_content{border-bottom:1px solid var(--border);position:relative}.tl_content .inside{background-color:var(--content-bg);padding:6px}.tl_content.draft .inside{min-height:16px}.hover-row.draft>td,.tl_content.draft>*,.tl_file.draft>*,.tl_folder.draft>*{opacity:.5}.as-grid .tl_content{background-color:var(--content-bg);border:1px solid var(--border);margin-top:18px;padding:0}.as-grid .tl_content .inside{display:grid;grid-template-columns:1fr auto}.as-grid .tl_content_header+.tl_content{margin-top:12px}.parent_view>ul{list-style:none;margin:0;padding:0}.parent_view:not(.as-grid)>ul{background-color:var(--table-header)}.tl_content.indent_1{margin-left:20px}.tl_content.indent_2{margin-left:40px}.tl_content.indent_3{margin-left:60px}.tl_content.indent_4{margin-left:80px}.tl_content.indent_5{margin-left:100px}.as-grid .tl_content .inside{padding:0}.as-grid .tl_content.indent{background:var(--nested-bg);border-width:0 1px;margin:0;padding:15px 15px 0}.as-grid .tl_content.indent_2{padding-left:30px;padding-right:30px}.as-grid .tl_content.indent_3{padding-left:45px;padding-right:45px}.as-grid .tl_content.indent_4{padding-left:60px;padding-right:60px}.as-grid .tl_content.indent_5{padding-left:75px;padding-right:75px}.as-grid .tl_content.indent_last{padding-bottom:15px}.as-grid .tl_content.indent .inside{border:1px solid var(--border)}.as-grid .tl_content.wrapper_stop{margin-top:0}.as-grid .tl_content.indent.wrapper_stop{padding-top:0}.tl_content_left{line-height:16px}.as-grid .tl_content_left{padding:8px 10px}.tl_content_right{float:right;margin-bottom:-1px;margin-left:12px;position:relative;text-align:right;z-index:1}.as-grid .tl_content .tl_content_right{background:var(--table-header);border-left:1px solid var(--border);float:none;margin-bottom:0;margin-left:0;order:2;padding:8px 10px}.tl_content_right button,.tl_right button{background:none;border:0;height:16px;margin:0;padding:0}.tl_content_right button,.tl_content_right img,.tl_right button,.tl_right img,.tl_right_nowrap button,.tl_right_nowrap img{margin-left:1px}.cte_type{color:var(--info);font-size:.75rem;line-height:16px;margin:0 0 4px}.as-grid .cte_type{background-color:var(--table-header);font-size:.8rem;margin-bottom:0;order:1;padding:8px 10px}.cte_type.published,.cte_type.published a{color:var(--green)}.cte_type.unpublished,.cte_type.unpublished a{color:var(--red)}.cte_type.icon-protected{background:var(--table-header) url(icons/protected.svg) 8px 8px no-repeat;padding-left:27px}.cte_type .visibility{color:var(--gray)}.cte_preview{line-height:1.25;position:relative}.cte_preview h1{font-size:1.25rem;margin-bottom:6px}.cte_preview h2{font-size:1rem;margin-bottom:6px}.cte_preview h3{font-size:.9rem;margin-bottom:6px}.cte_preview h4,.cte_preview h5,.cte_preview h6{font-size:.875rem;margin-bottom:6px}.content-hyperlink,.content-toplink,.cte_preview div.tl_gray,.cte_preview figure,.cte_preview ol,.cte_preview p,.cte_preview table,.cte_preview table caption,.cte_preview ul{margin-bottom:6px}.cte_preview img{height:auto;max-width:320px;padding:6px 0}.cte_preview td,.cte_preview th{border-bottom:1px solid var(--border);padding:3px 6px}.cte_preview th{background:var(--table-header);padding:6px}.cte_preview td{background:var(--content-bg)}.cte_preview table caption{font-size:.75rem;text-align:left}.cte_preview pre{margin-bottom:6px;margin-top:0;white-space:pre-wrap;word-break:break-all}.cte_preview pre.disabled{color:var(--pre-disabled)}.cte_preview .content-gallery ul{display:grid;grid-template-columns:1fr 1fr 1fr;list-style:none;margin:0;padding:0}.cte_preview a{color:var(--green)}.cte_preview div.tl_gray a{color:var(--gray)}.cte_preview span.comment{color:var(--blue);display:inline-block;margin-bottom:3px}.cte_preview button,.cte_preview input,.cte_preview select,.cte_preview textarea{background:var(--form-bg);border:1px solid var(--form-border)}.cte_preview input[type=file]{position:relative}.cte_preview select{-moz-appearance:menulist;-webkit-appearance:menulist}.cte_preview .checkbox_container legend,.cte_preview .radio_container legend,.cte_preview label{display:block;margin-bottom:6px}.cte_preview .widget{margin:0 0 6px}.cte_preview .checkbox_container label,.cte_preview .radio_container label{display:initial}.cte_preview .widget-captcha{display:block!important}.cte_preview .widget-captcha .captcha_text{padding-left:3px;vertical-align:middle}.cte_preview.empty{display:none}.as-grid .cte_preview{border-top:1px solid var(--border);grid-column:1/span 2;order:3;padding:10px 10px 6px}.limit_height{overflow:hidden}.limit_toggler{background:var(--content-bg);bottom:0;left:0;line-height:11px;position:absolute;text-align:center;width:100%}.limit_toggler button{background:var(--content-bg);border:0;border-top-left-radius:2px;border-top-right-radius:2px;color:var(--gray);line-height:8px;margin:0;padding:0;width:24px}.limit_toggler button span{position:relative;top:-4px;z-index:1}.tl_folder_top{background:var(--tree-header);border:solid var(--tree-header-border);border-width:1px 0;min-height:18px;padding:5px 6px}.tl_folder{background:var(--table-header);border-bottom:1px solid var(--border);padding:5px 6px}.tl_folder.tl_folder_dropping,.tl_folder_top.tl_folder_dropping{background-color:var(--drag-bg)!important;color:var(--text)!important}.tl_folder.tl_folder_dropping a,.tl_folder_top.tl_folder_dropping a{color:inherit}.tl_listing .tl_left{box-sizing:border-box;flex-grow:1;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tl_listing .tl_left.tl_left_dragging{background:var(--drag-bg);border-radius:10px;color:var(--text);margin-left:0;padding:5px 10px!important;position:absolute;text-indent:0;white-space:nowrap}.tl_listing .tl_left.tl_left_dragging .preview-image,.tl_listing .tl_left.tl_left_dragging a img{display:none}.tl_listing .tl_left.tl_left_dragging .tl_gray,.tl_listing .tl_left.tl_left_dragging a{color:inherit}.tl_listing_dragging .hover-div:not(.tl_folder):hover{background-color:transparent!important}.tl_listing .tl_left a:hover{color:var(--text)}.tl_listing .tl_left img:not(.preview-image,.preview-important){margin-top:-3px}.tl_file_manager .preview-image{height:auto;margin:3px 0 2px 22px;max-height:75px;max-width:100px;width:auto}.tl_file_manager .preview-important{height:auto;margin:3px 0 2px;max-height:60px;max-width:80px;vertical-align:bottom;width:auto}.tl_listing .tl_right{padding:1px 0 0 9px;white-space:nowrap}@-moz-document url-prefix(){.tl_listing .tl_right{padding-top:0}}.tl_listing,.tl_listing ul{margin:0;padding:0}.tl_listing li{display:flex;list-style-type:none;margin:0}.tl_listing li.parent{display:inline;padding-left:0;padding-right:0}label.tl_change_selected{color:var(--gray);font-size:.75rem;margin-right:2px}#tl_breadcrumb{background:var(--active-bg);border:1px solid var(--active-border);border-radius:2px;display:flow-root;line-height:24px;margin:0 0 12px;padding:4px 6px}#tl_breadcrumb li{float:left;list-style-type:none;margin:0;padding:0 3px}#tl_breadcrumb li a{display:inline-block}#tl_breadcrumb li img{height:16px;vertical-align:-3px;width:16px}.selector_container{margin-top:1px;position:relative}.selector_container>ul{list-style-type:none;margin:0 0 1px;padding:0}.selector_container>ul>li{margin:0 9px 0 0;padding:2px 0}.selector_container p{margin-bottom:1px}.selector_container ul:not(.sgallery) img{margin-right:1px;vertical-align:text-top}.selector_container img{height:auto;max-width:320px}.selector_container .limit_height{height:auto!important;max-height:190px}.selector_container .limit_toggler{display:none}.selector_container h1,.selector_container h2,.selector_container h3,.selector_container h4{margin:0;padding:0}.selector_container pre{white-space:pre-wrap}.selector_container table.showColumns{margin:2px 0 3px}.selector_container table.sortable td{cursor:move}ul.sgallery{display:grid;gap:4px;grid-auto-rows:75px;grid-template-columns:repeat(auto-fill,100px);padding:2px 0}ul.sgallery li{-webkit-align-items:center;align-items:center;background:var(--form-button);display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;margin:0;min-height:75px;min-width:100px;padding:0}.popup #tl_soverview{margin-top:15px}#tl_soverview>div{border-bottom:1px solid var(--border);padding:5px 15px}#tl_soverview>div:last-child{border-bottom:0}#tl_messages h2,#tl_shortcuts h2{margin:14px 0 10px}#tl_versions h2{margin:14px 0 12px}#tl_messages p{margin-bottom:.5em}#tl_messages p:last-child{margin-bottom:1em}#tl_messages .tl_confirm,#tl_messages .tl_error,#tl_messages .tl_info,#tl_messages .tl_new{background-color:transparent;background-position:left 1px;padding:0 0 0 21px}#tl_shortcuts p a{text-decoration:underline}#tl_versions{margin-bottom:0}#tl_versions table{margin-bottom:18px;width:100%}#tl_versions td,#tl_versions th{padding:6px}#tl_versions th{line-height:16px}#tl_versions td:first-child{white-space:nowrap}#tl_versions td:last-child{text-align:right;white-space:nowrap;width:32px}#tl_versions .pagination{background:var(--table-header);margin-bottom:14px;margin-top:18px;padding:12px 6px}.tl_chmod{width:100%}.tl_chmod th{background:var(--tree-header);font-weight:400;height:18px;text-align:center}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.tl_chmod th{font-weight:300}}.tl_chmod td{background:var(--table-header);text-align:center}.tl_chmod td,.tl_chmod th{border:1px solid var(--content-bg);padding:6px;width:14.2857%}.tl_checkbox_wizard button,.tl_image_size+button,.tl_key_value_wizard button,.tl_listwizard button,.tl_metawizard button,.tl_modulewizard button,.tl_optionwizard button,.tl_sectionwizard button,.tl_tablewizard button{background:none;border:0;margin:0;padding:0;vertical-align:middle}.tl_modulewizard{margin-top:2px;max-width:800px;width:100%}.tl_modulewizard td{padding:0 3px 0 0;position:relative}.tl_modulewizard th{font-size:.75rem;font-weight:400;padding:0 6px 1px 0}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.tl_modulewizard th{font-weight:300}}.tl_modulewizard td:last-child{white-space:nowrap;width:1%}.tl_modulewizard .tl_select,.tl_modulewizard .tl_select_column{margin:2px 0}.js .tl_modulewizard input.mw_enable,.tl_modulewizard input.mw_enable+button{display:none}.js .tl_modulewizard input.mw_enable+button{background:var(--icon-invisible) 0 0 no-repeat;display:inline;height:16px;width:16px}.js .tl_modulewizard input.mw_enable:checked+button{background-image:var(--icon-visible)}.tl_modulewizard img.mw_enable{display:none}.js .tl_modulewizard img.mw_enable{display:inline;margin-right:1px}.tl_optionwizard{max-width:600px;width:100%}.tl_key_value_wizard{max-width:450px;width:100%}.tl_key_value_wizard,.tl_optionwizard{margin-top:2px}.tl_key_value_wizard label,.tl_optionwizard label{margin-right:3px}.tl_key_value_wizard td,.tl_optionwizard td{padding:0 3px 0 0}.tl_key_value_wizard th,.tl_optionwizard th{font-size:.75rem;font-weight:400;padding:0 6px 1px 0}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.tl_key_value_wizard th,.tl_optionwizard th{font-weight:300}}.tl_key_value_wizard td:nth-child(n+3),.tl_optionwizard td:nth-child(n+3){white-space:nowrap;width:1%}.tl_optionwizard .tl_text{margin:2px 0}.tl_key_value_wizard img,.tl_optionwizard img{position:relative;top:1px}.tl_key_value_wizard .fw_checkbox,.tl_optionwizard .fw_checkbox{margin:0 1px}#ctrl_allowedAttributes{max-width:none}#ctrl_allowedAttributes td:first-child{width:100px}#tl_tablewizard{margin-top:2px;overflow:auto;padding-bottom:2px}.tl_tablewizard td{padding:0 3px 0 0}.tl_tablewizard thead td{padding-bottom:3px;text-align:center;white-space:nowrap}.tl_tablewizard tbody td:last-child{white-space:nowrap}.tl_tablewizard td.tcontainer{vertical-align:top}.tl_tablewizard .tl_textarea{margin:2px 0}.tl_listwizard{list-style:none;margin:1px 0;padding:0}.tl_listwizard .tl_text{margin:2px 0;width:78%}.tl_listwizard button{margin-left:1px}.tl_checkbox_wizard .sortable img{vertical-align:bottom}.tl_metawizard{list-style:none;margin:3px 0;padding:0}.tl_metawizard li{margin-bottom:2px;padding:9px}.tl_metawizard li:nth-child(odd){background:var(--table-header)}.tl_metawizard li:nth-child(2n){background:var(--table-even)}.tl_metawizard label{float:left;margin-top:9px;width:18%}.tl_metawizard .tl_text,.tl_metawizard .tl_textarea{float:left;margin:1px 0;width:calc(82% - 20px)}.tl_metawizard .tl_textarea{resize:vertical}.tl_metawizard .tl_text+a{margin-left:4px;position:relative;top:7px}.tl_metawizard br{clear:left}.tl_metawizard .lang{display:block;font-weight:600;margin:3px 0 9px;position:relative}.tl_metawizard .lang button{position:absolute;right:0;top:-1px}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.tl_metawizard .lang{font-weight:500}}.tl_sectionwizard{margin-top:2px;max-width:680px;width:100%}.tl_sectionwizard td{padding:0 3px 0 0;position:relative;width:25%}.tl_sectionwizard th{font-size:.75rem;font-weight:400;padding:0 4px 1px 0}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.tl_sectionwizard th{font-weight:300}}.tl_sectionwizard td:last-child{white-space:nowrap}#paste_hint{position:relative;z-index:1}.tl_message+#paste_hint{margin-top:-12px}#paste_hint p{background:var(--icon-arrow-right) bottom right no-repeat;padding:0 36px 24px 0;right:30px;top:0;transform:rotate(-1deg)}#paste_hint p,.sort_hint{color:var(--paste-hint);font-family:Architects Daughter,cursive;font-size:1rem;position:absolute}.sort_hint{background:var(--icon-arrow-left) 6px bottom no-repeat;left:160px;padding:0 6px 24px 42px;top:-50px;transform:rotate(-2deg)}.widget+.subpal .sort_hint{left:260px}.widget+.widget .sort_hint{left:320px}.serp-preview{background:var(--panel-bg);border-radius:3px;color:var(--serp-preview);font-family:Arial,sans-serif;font-weight:400;margin:2px 0;max-width:600px;padding:5px 7px}.serp-preview p{margin:0}.serp-preview .description,.serp-preview .url{line-height:18px}.serp-preview .url:not(:empty){margin-top:3px}.serp-preview .description:not(:empty){margin-bottom:3px}.serp-preview .title{color:var(--serp-preview-title);font-size:18px;margin:5px 0 4px}.serp-preview .tl_info{background-color:transparent}#tl_ajaxBox{background:var(--white) var(--icon-loading) no-repeat right 2em center;border:2px solid var(--black);border-radius:2px;box-sizing:border-box;font-size:1rem;left:50%;margin-left:-150px;padding:2em;position:absolute;text-align:left;width:300px}#tl_ajaxOverlay{background:var(--white);height:100%;left:0;opacity:.5;position:absolute;top:0;width:100%}.ce_gallery ul{display:flow-root}.ce_gallery li{float:left;margin:0 6px 6px 0}.drag-handle{cursor:move}ul.sortable li{cursor:move;position:relative}ul.sortable li .dirname{display:none}ul.sortable li:hover .dirname{display:inline}ul.sortable button{background:var(--form-button);border:0;border-radius:2px;cursor:pointer;font-size:22px;line-height:9px;margin:0;padding:0 0 3px;position:absolute;right:0;top:0;transition:all .1s linear}ul.sortable button:hover{background:var(--form-button-hover)}ul.sortable button[disabled]{color:var(--gray);cursor:not-allowed}ul.sortable button[disabled]:hover{background:hsla(0,0%,100%,.7)}#picker-menu{border-bottom:1px solid var(--content-border);padding:9px 6px 0}#picker-menu>ul{list-style:none;margin:0;padding:0}#picker-menu li{background-color:var(--table-even);border:1px solid var(--content-border);border-radius:2px 2px 0 0;display:inline-block;padding:8px 0;position:relative;top:1px}#picker-menu li.current,#picker-menu li:hover{background-color:var(--panel-bg)}#picker-menu li.current{border-bottom-color:var(--panel-bg)}#picker-menu a{background:url(icons/mover.svg) 12px no-repeat;padding:3px 12px 3px 32px}#picker-menu a:hover{color:var(--text)}#picker-menu a.pagePicker{background-image:url(icons/pagemounts.svg);background-size:16px}#picker-menu a.filePicker{background-image:url(icons/filemounts.svg);background-size:14px}#picker-menu a.articlePicker{background-image:url(icons/articles.svg);background-size:16px}#picker-menu a.close{background-image:url(icons/back.svg)}.ace_editor{padding:3px;z-index:0}.ace_editor,.ace_editor *{color:var(--text);font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important;font-size:.75rem!important}.ace-fullsize{overflow:hidden!important}.ace-fullsize .ace_editor{border:0;bottom:0;height:auto!important;left:0;margin:0;position:fixed!important;right:0;top:0;width:auto!important;z-index:10000}div.mce-edit-area{width:99.9%}time[title]{cursor:help}.float_left{float:left}.float_right{float:right}.foldable img{transform:none;transition:transform .2s ease;will-change:transform}.foldable--open img{transform:rotate(90deg)}.foldable--loading{pointer-events:none;position:relative}.foldable--loading img{visibility:hidden}.foldable--loading:after{background:var(--icon-loading) 0 0/contain no-repeat;content:"";height:14px;inset:2px auto auto 2px;position:absolute;width:14px}.header_back,.header_clipboard,.header_css_import,.header_delete_all,.header_edit_all,.header_icon,.header_new,.header_new_folder,.header_rss,.header_store,.header_sync,.header_theme_import,.header_toggle{background-color:transparent;background-position:0;background-repeat:no-repeat;border:none;display:inline-block;margin-left:15px;padding:3px 0 3px 22px}.list_icon{background-position:0;margin-left:-3px;padding-left:24px}.list_icon,.list_icon_new{background-repeat:no-repeat}.list_icon_new{background-position:1px;width:16px}.header_clipboard{background-image:url(icons/clipboard.svg)}.header_back{background-image:url(icons/back.svg)}.header_new{background-image:url(icons/new.svg)}.header_rss{background-image:url(icons/rss.svg)}.header_edit_all{background-image:url(icons/all.svg)}.header_new_folder{background-image:url(icons/newfolder.svg)}.header_css_import{background-image:url(icons/cssimport.svg)}.header_theme_import{background-image:url(icons/theme_import.svg)}.header_store{background-image:url(icons/store.svg)}.header_toggle{background-image:var(--icon-toggle-all);padding-left:18px}.header_sync{background-image:url(icons/sync.svg)}#ctrl_playerSize input,.tl_imageSize_0,.tl_imageSize_1,.tl_text_trbl{background:var(--form-bg) url(icons/hints.svg) no-repeat right 1px top 2px}#ctrl_playerSize_1,.tl_imageSize_1{background-position:right 1px top -28px!important}.trbl_top{background-position:right 1px top -59px!important}.trbl_right{background-position:right 1px top -89px!important}.trbl_bottom{background-position:right 1px top -119px!important}.trbl_left{background-position:right 1px top -149px!important}#ctrl_shadowsize_top{background-position:right 1px top -179px!important}#ctrl_shadowsize_right{background-position:right 1px top -209px!important}#ctrl_shadowsize_bottom{background-position:right 1px top -238px!important}#ctrl_shadowsize_left{background-position:right 1px top -269px!important}#ctrl_borderradius_top{background-position:left -299px!important}#ctrl_borderradius_right{background-position:right 1px top -329px!important}#ctrl_borderradius_bottom{background-position:right 1px top -352px!important}#ctrl_borderradius_left{background-position:left -382px!important}.tl_checkbox_container.error legend,label.error,legend.error{color:var(--red)}.tl_box .tl_error,.tl_tbox .tl_error{background:none;font-size:.75rem;margin-bottom:0;padding:0}.tl_formbody_edit>.tl_error{margin-top:9px}.broken-image{background:var(--error-bg) url(icons/error.svg) no-repeat 9px center;color:var(--red);display:inline-block;padding:12px 12px 12px 30px;text-indent:0}fieldset.tl_box,fieldset.tl_tbox{border-left:0;border-right:0;border-top:none;margin-top:5px;margin-inline:0;padding-top:0}fieldset.tl_box.nolegend,fieldset.tl_tbox.nolegend{border-top:0}fieldset.tl_box>legend,fieldset.tl_tbox>legend{background:url(icons/navcol.svg) 13px 10px no-repeat;box-sizing:border-box;color:var(--legend);cursor:pointer;padding:9px 12px 9px 28px}fieldset.collapsed{margin-bottom:0;padding-bottom:5px}fieldset.collapsed div{display:none!important}fieldset.collapsed>legend{background:url(icons/navexp.svg) 13px 10px no-repeat}#tl_maintenance_cache table{width:100%}#tl_maintenance_cache td{line-height:1.2;padding:9px 6px}#tl_maintenance_cache td span{color:var(--gray)}#tl_maintenance_cache td:first-child{width:16px}#tl_maintenance_cache .nw{white-space:nowrap}#tl_maintenance_cache .tl_checkbox_container{margin-top:3px}#tl_maintenance_cache .tl_checkbox_container label{font-weight:600;vertical-align:initial}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#tl_maintenance_cache .tl_checkbox_container label{font-weight:500}}.pagination{background:var(--panel-bg);border:solid var(--border);border-width:1px 0;display:flow-root;margin-bottom:18px;padding:12px 15px}.pagination ul{float:right;text-align:right;width:60%}.pagination p{float:left;margin-bottom:0;width:30%}.pagination li{display:inline;padding-left:3px}.pagination .active{color:var(--gray)}.pagination-lp{border-bottom:0;margin-bottom:0;padding:15px 12px}#result-list{margin:15px}#result-list .tl_confirm,#result-list .tl_error,#result-list .tl_info,#result-list .tl_new{background:none;padding:3px 0}.dropzone{background:var(--form-bg)!important;border:3px dashed var(--border)!important;border-radius:2px;margin:2px 0;min-height:auto!important}.dropzone-filetree{display:none;height:100%;left:0;opacity:.8;position:absolute;top:0;width:100%;z-index:1}.dropzone-filetree-enabled{display:block}.dz-message span{color:var(--gray);font-size:1.3125rem}.tox-tinymce{border-radius:2px!important;margin:3px 0}.tl_undo_header{grid-column-gap:24px;display:grid;grid-template-columns:2fr 2fr 3fr 3fr;margin-top:2px;max-width:880px}.hover-row:hover .tl_undo_header{background-color:var(--hover-row)!important}.tl_undo_preview{font-size:.75rem;margin-top:5px;padding:6px 0 3px;position:relative}.tl_undo_preview td{padding-left:0!important;padding-right:32px!important}.tl_undo_preview td:empty{display:none}.tl_undo_preview img{height:auto;max-width:320px}.tl_undo_preview a img{margin-top:-3px}.tl_undo_preview .cte_preview h1{font-size:1.15rem}.tl_undo_preview .cte_preview h2{font-size:.9rem}.tl_undo_preview .cte_preview h3{font-size:.8rem}.tl_undo_preview .cte_preview h4,.tl_undo_preview .cte_preview h5,.tl_undo_preview .cte_preview h6{font-size:.775rem}@media (max-width:991px){#container{display:block}#left,#main{float:none}#main{position:relative;-webkit-transform:none;transform:none;transition:transform .2s ease;width:100%!important;will-change:transform}.show-navigation #main{-webkit-transform:translateX(240px);transform:translateX(240px)}#left{position:absolute;top:40px;-webkit-transform:translateX(-240px);transform:translateX(-240px);transition:transform .2s ease,visibility .2s ease;visibility:hidden;width:240px;will-change:transform,visibility}.show-navigation #left{-webkit-transform:none;transform:none;visibility:visible}#tmenu .burger{display:inline}}@media (max-width:767px){#header h1 a{min-width:22px;padding:12px}#header h1 a .app-title{display:none}#header h1 a .badge-title{margin-left:32px}#tmenu>li>a{background-size:18px!important;margin-bottom:-2px;overflow:hidden;position:relative;text-indent:28px;white-space:nowrap;width:16px}#tmenu sup{font-size:.5rem;top:6px}#tmenu .icon-debug{background:url(icons/debug.svg) 50% no-repeat}#tmenu .icon-preview{background:url(icons/preview.svg) 50% no-repeat}#tmenu .profile button{background:url(icons/profile.svg) 50% no-repeat;background-size:18px;margin:0 0 -2px;overflow:hidden;padding-right:12px;text-indent:28px;white-space:nowrap;width:40px}#main .content{margin:15px 10px}#main_headline{margin:13px 0;padding:0 11px}div.tl_box,div.tl_tbox{position:relative}.tl_content_left{float:none;width:100%}.showColumns td,.showColumns th{display:block}.showColumns th:empty{display:none}.tl_label{white-space:normal}.list_view .tl_listing img.theme_preview{display:none}.tl_filter{box-sizing:border-box;padding:0 3px 0 7px}.tl_filter strong{display:none}.tl_filter .tl_select{display:block;max-width:100%}.tl_search{max-width:283px;width:76%}.tl_search .tl_select{width:36%}.tl_search .tl_text{width:26%}.tl_sorting{max-width:212px;width:60%}.tl_limit{max-width:177px;width:50%}.tl_submit_panel{float:right;z-index:1}input.tl_submit{margin-bottom:3px;margin-top:3px;padding-left:6px!important;padding-right:7px!important}.tl_listing .tl_left,.tl_show td{word-break:break-word}#tl_breadcrumb li{padding:3px}#tl_versions{display:none}.tl_version_panel .tl_select{width:44%}.tl_modulewizard td:first-child{width:1%}.tl_modulewizard td:first-child .tl_select{max-width:52vw}#paste_hint,.sort_hint{display:none}#tl_maintenance_cache table{width:100%}#tl_maintenance_cache tr td:last-child,#tl_maintenance_cache tr th:last-child{display:none}.tl_file_list .ellipsis{padding-right:10px}.tl_undo_header{grid-template-columns:2fr 3fr}.tl_undo_header div:not(.tstamp,.source){display:none}}@media (max-width:599px){.tl_metawizard label{display:block;float:none;font-size:.9em;margin-top:3px;width:auto}.tl_metawizard .tl_text{width:100%}}@media (max-width:479px){.tl_modulewizard td:first-child .tl_select{max-width:48vw}} -/*# sourceMappingURL=backend.0e6e4e98.css.map*/ \ No newline at end of file +@font-face{font-family:Architects Daughter;font-style:normal;font-weight:400;src:local("Architects Daughter"),url(fonts/architects-daughter-v6-latin-regular.woff2) format("woff2"),url(fonts/architects-daughter-v6-latin-regular.woff) format("woff")}:root{--text:#222;--body-bg:#eaeaec;--content-bg:#fff;--content-border:#cacacc;--black:#000;--white:#fff;--gray:#999;--green:#589b0e;--red:#c33;--blue:#006494;--orange:#f90;--contao:#f47c00;--border:#eaeaec;--nav:#d3d6da;--nav-hover:#eaedf1;--nav-bg:#0f1c26;--nav-hover-bg:#eaedf1;--nav-current:#172b3b;--nav-group:#9fa4a8;--nav-separator:#3a454d;--hover-row:#fffce1;--header-bg:#f47c00;--header-bg-hover:#e67300;--header-text:#fff;--invert-bg:#333;--invert-text:#fff;--table-header:#f7f7f8;--table-odd:#fff;--table-even:#fbfbfc;--table-nb-header:#f2f2f3;--table-nb-odd:#fff;--table-nb-even:#f7f7f8;--panel-bg:#f3f3f5;--tree-header:#f3f3f5;--tree-header-border:#dddddf;--form-text-disabled:#bbb;--form-border:#aaa;--form-border-disabled:#c8c8c8;--form-bg:#fff;--form-bg-hover:#f6f6f6;--form-bg-disabled:#f9f9f9;--form-button:#eee;--form-button-hover:#f6f6f6;--form-button-active:#aaa;--form-button-disabled:#e9e9e9;--diff-left:#ffe8e5;--diff-del:#ffc1bf;--diff-right:#e0ffe8;--diff-ins:#abf2bc;--code-bg:#f0f0f0;--checkerbox-bg:#ddd;--info:grey;--active-bg:#fffce1;--active-border:#e7b36a;--pre-disabled:#a6a6a6;--error-bg:rgba(204,51,51,.15);--confirm-bg:rgba(88,155,14,.15);--info-bg:rgba(0,100,148,.15);--new-bg:rgba(224,149,21,.15);--progress-running:#f47c00;--progress-finished:#589b0e;--drag-bg:#a3c2db;--legend:#6a6a6c;--paste-hint:#838990;--serp-preview:#3c4043;--serp-preview-title:#1a0dab;--nested-bg:#fbfbfd}html[data-color-scheme=dark]{--text:#ddd;--body-bg:#121416;--content-bg:#1b1d21;--content-border:#414448;--black:#fff;--white:#000;--blue:#0073a8;--orange:#d68c23;--contao:#f47c00;--border:#303236;--nav-bg:#1b1d21;--nav-hover-bg:#1b325f;--nav-current:#272a30;--nav-separator:#3f3f3f;--hover-row:#1b325f;--header-bg:#292c32;--header-bg-hover:#202327;--header-text:#ddd;--invert-bg:#8f96a3;--invert-text:#222;--table-header:#232529;--table-odd:#1b1d21;--table-even:#1e2024;--table-nb-header:#292c32;--table-nb-odd:#1b1d21;--table-nb-even:#23252a;--panel-bg:#272a30;--tree-header:#272a30;--tree-header-border:#3f4146;--form-text-disabled:#666;--form-border:#44464b;--form-border-disabled:#3a3c40;--form-bg:#151619;--form-bg-hover:#1e2024;--form-bg-disabled:#1e2024;--form-button:#31333a;--form-button-hover:#383a42;--form-button-active:#777;--form-button-disabled:#26272c;--diff-left:rgba(248,81,73,.17);--diff-del:rgba(248,81,73,.4);--diff-right:rgba(46,160,67,.17);--diff-ins:rgba(46,160,67,.4);--code-bg:#30343b;--checkerbox-bg:#30343b;--info:#9095a2;--active-bg:#1b325f;--active-border:#264787;--drag-bg:#1b325f;--legend:#747b8b;--serp-preview:#bdc1c6;--serp-preview-title:#8ab4f8;--nested-bg:#1e2024;color-scheme:dark}.color-scheme--dark,html[data-color-scheme=dark] .color-scheme--light{display:none}.color-scheme--light,html[data-color-scheme=dark] .color-scheme--dark{display:initial}html{-webkit-text-size-adjust:100%;font-size:100%}article,aside,figcaption,figure,footer,header,main,nav,section{display:block}blockquote,body,dl,figure,h1,h2,h3,h4,p{margin:0}img{border:0}table{border-collapse:collapse;border-spacing:0;empty-cells:show}td,th{text-align:left}.tl_select,a.tl_submit,img,input,label,select{vertical-align:middle}button{cursor:pointer}button[disabled]{cursor:default}nav li,nav ul{list-style:none;margin:0;padding:0}body{color:var(--text);font-family:-apple-system,system-ui,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:.875rem;font-weight:400;line-height:1}b,h1,h2,h3,h4,h5,h6,strong,th{font-weight:600}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body{font-weight:300}b,h1,h2,h3,h4,h5,h6,strong,th{font-weight:500}}.tl_textarea.monospace,code,pre{font:300 .75rem/1.25 SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}h1,h2,h3,h4,h5,h6{font-size:1rem}button,input,select,textarea{color:inherit;font:inherit;line-height:inherit}input,select{line-height:17px}@supports (display:-ms-grid){input,select{line-height:1.1}}.tl_gray{color:var(--gray)}.tl_green{color:var(--green)}.tl_red{color:var(--red)}.tl_blue{color:var(--blue)}.tl_orange{color:var(--orange)}span.mandatory{color:var(--red)}.upper{text-transform:uppercase}a{color:var(--text);text-decoration:none}a:active,a:hover{color:var(--contao)}hr{background:var(--border);border:0;color:var(--border);height:1px;margin:18px 0}p{margin-bottom:1em;padding:0}.hidden{display:none!important}.unselectable{-webkit-touch-callout:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}table.with-border td,table.with-border th{border:solid var(--border);border-width:1px 0}table.with-border th{background-color:var(--table-header)}table.with-padding td,table.with-padding th{padding:6px}table.with-zebra th{background-color:var(--table-nb-header)}table.with-zebra tbody tr:nth-child(odd) td{background-color:var(--table-nb-odd)}table.with-zebra tbody tr:nth-child(2n) td{background-color:var(--table-nb-even)}.clear{clear:both;font-size:.1px;height:.1px;line-height:.1px}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.invisible{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}fieldset>.widget-group{padding:0 15px}.widget-group{--widget-col-amount:12;--widget-gap-rows:0;--widget-gap-cols:0;align-items:center;display:grid;gap:var(--widget-gap-rows) var(--widget-gap-cols);grid-template-columns:repeat(var(--widget-col-amount),minmax(0,1fr))}.widget-group>*{--widget-cols:var(--widget-col-amount);grid-column-end:span var(--widget-cols)}.widget-group>.clr,.widget-group>.subpal{grid-column-start:1}:not(.widget-group)>.widget{margin-left:15px;margin-right:15px;position:relative}:not(.widget-group)>.w50{float:none;width:calc(100% - 30px)}:not(.widget-group)>.clr{clear:both;width:calc(100% - 30px)}:not(.widget-group)>.long{width:calc(100% - 30px)}:not(.widget-group)>.clr:not(.widget){width:100%}:not(.widget-group)>.clr:before{content:"";display:table}:not(.widget-group)>.m12{margin:0 15px}.widget{font-size:0}.widget *{font-size:.875rem}.widget>div{font-size:0}.widget>div>*{font-size:.875rem}.widget code,.widget pre{font-size:.7rem}.widget h3{min-height:16px}.widget h3 img{margin-right:3px}.widget legend{padding:0}.widget legend img{vertical-align:-1px}.widget-captcha{display:initial!important}.widget p.info{background:var(--panel-bg);border-radius:3px;line-height:1.3;margin:2px 0;padding:7px}.widget picture{display:contents}optgroup{background:var(--form-bg);font-style:normal;padding-bottom:3px;padding-top:3px}fieldset.tl_checkbox_container,fieldset.tl_radio_container{border:0;margin:15px 0 0;padding:0}.tl_checkbox_single_container>span,fieldset.tl_checkbox_container>span,fieldset.tl_radio_container>span{align-items:center;column-gap:3px;display:flex;margin:2px 0}fieldset.tl_checkbox_wizard .sortable>span,fieldset.tl_radio_container .sortable>span{align-items:center;column-gap:3px;display:flex;margin:0}fieldset.tl_checkbox_container legend,fieldset.tl_radio_container legend{font-weight:600;margin-bottom:1px}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){fieldset.tl_checkbox_container legend,fieldset.tl_radio_container legend{font-weight:500}}fieldset.tl_checkbox_container .check-all{color:var(--gray)}fieldset.tl_checkbox_container button{vertical-align:middle}fieldset.checkbox_container,fieldset.radio_container{border:0;margin:0;padding:0}.tl_text{width:100%}.tl_text_2,.tl_text_interval{width:49%}.tl_text_3{width:32.333%}.tl_text_4{width:24%}.tl_textarea{width:100%}.tl_text_unit{width:79%}.tl_text_trbl{width:19%}.tl_text,.tl_text_2,.tl_text_3,.tl_text_4,.tl_text_interval,.tl_text_trbl,.tl_text_unit,.tl_textarea{-moz-appearance:none;-webkit-appearance:none;background-color:var(--form-bg);border:1px solid var(--form-border);border-radius:2px;box-sizing:border-box;height:30px;margin:3px 0;padding:5px 6px 6px}.tl_text[disabled],.tl_text_2[disabled],.tl_text_3[disabled],.tl_text_4[disabled],.tl_text_interval[disabled],.tl_text_trbl[disabled],.tl_text_unit[disabled],.tl_textarea[disabled]{background-color:var(--form-bg-disabled);border:1px solid var(--form-border-disabled);color:var(--form-text-disabled);cursor:not-allowed}.tl_text[readonly],.tl_text_2[readonly],.tl_text_3[readonly],.tl_text_4[readonly],.tl_text_interval[readonly],.tl_text_trbl[readonly],.tl_text_unit[readonly],.tl_textarea[readonly]{background-color:var(--form-bg-disabled);border:1px solid var(--form-border-disabled)}.tl_textarea{height:240px;line-height:1.45;padding:4px 6px}.tl_text_2,.tl_text_3,.tl_text_4,.tl_text_interval,.tl_text_trbl,.tl_text_unit{margin-right:1%}.tl_text_2:last-child,.tl_text_3:last-child,.tl_text_4:last-child,.tl_text_trbl:last-child{margin-right:0}.tl_text_field .tl_text_2{width:49.5%}.tl_imageSize_0{margin-left:1%}input[type=search]{height:27px;padding-bottom:1px;padding-top:0}input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9IiM3NzciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTE5IDYuNDEgMTcuNTkgNSAxMiAxMC41OSA2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMiAxMy40MSAxNy41OSAxOSAxOSAxNy41OSAxMy40MSAxMnoiLz48L3N2Zz4=");height:14px;margin-right:0;width:14px}@-moz-document url-prefix(){.tl_text::placeholder,.tl_text_2::placeholder,.tl_text_3::placeholder,.tl_text_4::placeholder,.tl_text_interval::placeholder,.tl_text_trbl::placeholder,.tl_text_unit::placeholder,.tl_textarea::placeholder{line-height:18px}}@media not all and (min-resolution:.001dpcm){@supports (-webkit-appearance:none){.tl_text::placeholder,.tl_text_2::placeholder,.tl_text_3::placeholder,.tl_text_4::placeholder,.tl_text_interval::placeholder,.tl_text_trbl::placeholder,.tl_text_unit::placeholder,.tl_textarea::placeholder{line-height:16px}input[type=search]{padding-right:0}input[type=search]::-webkit-search-cancel-button{margin:7px 4px 0 0}}}@supports (display:-ms-grid){.tl_text,.tl_text_2,.tl_text_3,.tl_text_4,.tl_text_interval,.tl_text_trbl,.tl_text_unit,.tl_textarea{padding:4px 6px 5px}}select{-moz-appearance:none;-webkit-appearance:none;text-transform:none}select::-ms-expand{display:none}select[multiple]{height:auto}.tl_mselect,.tl_select,.tl_select_column{width:100%}.tl_select_unit{width:20%}.tl_select_interval{width:50%}.tl_mselect,.tl_select,.tl_select_column,.tl_select_interval,.tl_select_unit{background:var(--form-bg) url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDUwMCA1MDAiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9IjEzMS41MjMiIHgyPSIzNjguNDc4IiB5MT0iNDIuNjMiIHkyPSIyNzkuNTg0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjYjNiM2IzIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjOTk5Ii8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI2EpIiBkPSJNMjUwIDM5Ni42NjZjLTEuMTU1IDAtNC4xMS0xLjgzMi03LjExMy02Ljc1bC0xNjkuNi0yNzcuNDU1Yy0yLjUxNy00LjExNC0zLjE5LTYuOTgtMy4yOC04LjMxNC44MjctLjMzIDIuNTY1LS44MTIgNS42MjctLjgxMmgzNDguNzMzYzMuMDYzIDAgNC43OTguNDgyIDUuNjI3LjgxMi0uMDkgMS4zMzQtLjc2NiA0LjItMy4yOCA4LjMxNWwtMTY5LjYgMjc3LjQ1N2MtMy4wMDUgNC45MTctNS45NiA2Ljc1LTcuMTE0IDYuNzV6Ii8+PC9zdmc+") right -16px top 3px no-repeat;background-origin:content-box;border:1px solid var(--form-border);border-radius:2px;box-sizing:border-box;cursor:pointer;height:30px;margin:3px 0;padding:5px 22px 6px 6px}.tl_mselect[disabled],.tl_mselect[readonly],.tl_select[disabled],.tl_select[readonly],.tl_select_column[disabled],.tl_select_column[readonly],.tl_select_interval[disabled],.tl_select_interval[readonly],.tl_select_unit[disabled],.tl_select_unit[readonly]{background-color:var(--form-bg-disabled);border:1px solid var(--form-border-disabled);color:var(--form-text-disabled);cursor:not-allowed}.tl_mselect[multiple],.tl_select[multiple],.tl_select_column[multiple],.tl_select_interval[multiple],.tl_select_unit[multiple]{background-image:none}@supports (display:-ms-grid){.tl_mselect,.tl_select,.tl_select_column,.tl_select_interval,.tl_select_unit{padding:5px 18px 5px 2px}}.tl_checkbox{margin:0 1px 0 0}.tl_tree_checkbox{margin:1px 1px 1px 0}.tl_checkbox_single_container{margin:16px 0 0}.tl_checkbox_single_container label{font-weight:600}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.tl_checkbox_single_container label{font-weight:500}}.checkbox_toggler_first{margin-top:2px}.checkbox_toggler,.checkbox_toggler_first{font-weight:600}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.checkbox_toggler,.checkbox_toggler_first{font-weight:500}}.checkbox_toggler img,.checkbox_toggler_first img{margin-right:2px;position:relative;top:-1px}.checkbox_options{margin:0 0 3px 21px!important}.tl_checkbox_container .checkbox_options:last-of-type{margin-bottom:0!important}.tl_radio{margin:0 1px 0 0}.tl_tree_radio{margin:1px 1px 1px 0}.tl_radio_table{margin-top:3px}.tl_radio_table td{align-items:center;column-gap:3px;display:inline-flex;padding:0 24px 0 0}.tl_upload_field{margin:1px 0}.tl_submit{background:var(--form-button);border:1px solid var(--form-border);border-radius:2px;box-sizing:border-box;cursor:pointer;height:30px;padding:7px 12px;transition:background .2s ease}.tl_submit:hover{background-color:var(--form-button-hover);color:inherit}.tl_submit:active{color:var(--form-button-active)}.tl_submit:disabled{background:var(--form-button-disabled)!important;color:var(--gray);cursor:not-allowed}.tl_formbody_submit .tl_submit,.tl_panel .tl_submit,.tl_version_panel .tl_submit{background:var(--form-bg)}.tl_formbody_submit .tl_submit:hover,.tl_panel .tl_submit:hover,.tl_version_panel .tl_submit:hover{background:var(--form-bg-hover)}.split-button,a.tl_submit{display:inline-block}.split-button{position:relative;z-index:1}.split-button li,.split-button ul{list-style:none;margin:0;padding:0}::-moz-placeholder{padding-top:1px}::-webkit-input-placeholder{padding-top:1px}.wizard>a{position:relative;top:-2px;vertical-align:middle}.wizard>.image-button{background:none;border:0;padding:0;vertical-align:middle}.wizard .tl_image_size,.wizard .tl_select,.wizard .tl_text{width:calc(100% - 24px)}.wizard .tl_text_2{width:45%}.wizard .tl_image_size{display:inline-block}.wizard img{margin-left:4px}.wizard h3 img{margin-left:0}.long .tl_select,.long .tl_text{width:100%}.subpal{clear:both}.inline div{display:inline}.autoheight{height:auto}.tl_tip{cursor:help;height:15px;overflow:hidden}.tip{background:var(--invert-bg);border-radius:2px;max-width:80vw;padding:6px 9px;position:relative;z-index:99}.tip div{line-height:1.3}.tip a,.tip div,.tip span{color:var(--invert-text)}.tip:before{border-bottom:7px solid var(--invert-bg);border-left:7px solid transparent;border-right:7px solid transparent;content:"";height:6px;left:9px;position:absolute;top:-13px}.tip--rtl:before{left:auto;right:9px}.hover-div:hover,.hover-div:hover .limit_toggler,.hover-row:hover .limit_toggler,.hover-row:hover td{background-color:var(--hover-row)!important}.badge-title{background:var(--invert-bg);border-radius:8px;color:var(--invert-text);float:right;font-size:.75rem;font-weight:600;margin-left:8px;margin-top:-8px;padding:2px 5px}@media (min-width:768px){.widget-group{--widget-gap-cols:30px}.w16,.w25,.w33,.w50,.w75{--widget-cols:6}.tip{max-width:320px}:not(.widget-group)>.m12{margin:0 15px;padding:16px 0}:not(.widget-group)>.w50{float:left;min-height:80px;width:calc(50% - 30px)}.nogrid :not(.widget-group)>:is(.w25,.w33,.w50,.w66,.w75){float:none}:not(.widget-group)>.cbx{min-height:46px}:not(.widget-group)>.cbx.m12{box-sizing:border-box;min-height:80px}}@media (min-width:1280px){.w16{--widget-cols:2}.w25{--widget-cols:3}.w33{--widget-cols:4}.w50{--widget-cols:6}.w75{--widget-cols:9}#sbtog{display:none}.split-button ul{clip:auto;display:inline-flex;height:auto;margin:0 0 0 -4px;overflow:initial;position:static;width:auto}.split-button li{margin-left:4px}}@media (max-width:1279.98px){.split-button{display:inline-flex}.split-button ul{background:var(--form-bg);border:1px solid var(--form-border);border-radius:2px;bottom:20px;box-sizing:border-box;margin-bottom:1em;min-width:100%;padding:3px 0;position:absolute;right:0}.split-button ul button{border:0;text-align:left;white-space:nowrap;width:100%}.split-button ul .tl_submit{background:var(--form-bg);margin-bottom:0;margin-top:0}.split-button ul .tl_submit:hover{background:var(--form-button-hover)}.split-button ul:before{border:6px inset transparent;border-top:6px solid var(--form-bg);bottom:-12px;right:4px;z-index:89}.split-button ul:after,.split-button ul:before{content:"";display:block;height:0;position:absolute;width:0}.split-button ul:after{border:7px inset transparent;border-top:7px solid var(--form-border);bottom:-14px;right:3px;z-index:88}.split-button>button[type=submit]{border-radius:2px 0 0 2px;position:relative}.split-button>button[type=button]{background:var(--form-bg);border:1px solid var(--form-border);border-left:0;border-radius:0 2px 2px 0;box-sizing:border-box;height:30px;margin:2px 0;padding:7px 4px;transition:background .2s ease}.split-button>button[type=button].active,.split-button>button[type=button]:hover{background:var(--form-button-hover)}.split-button>button[type=button]:focus{outline:none}}:root{--icon-logo:url(icons/logo.svg);--icon-profile:url(icons/profile_small.svg);--icon-security:url(icons/shield_small.svg);--icon-favorites:url(icons/favorites_small.svg);--icon-logout:url(icons/exit.svg);--icon-toggle-all:url(icons/chevron-right.svg);--icon-alert:url(icons/alert.svg);--icon-favorite:url(icons/favorite.svg);--icon-favorite--active:url(icons/favorite_active.svg);--icon-manual:url(icons/manual.svg);--icon-color-scheme:url(icons/color_scheme.svg);--icon-arrow-left:url(icons/arrow_left.svg);--icon-arrow-right:url(icons/arrow_right.svg);--icon-visible:url(icons/visible.svg);--icon-invisible:url(icons/invisible.svg);--icon-loading:url(icons/loading.svg)}html[data-color-scheme=dark]{--icon-logo:url(icons/logo--dark.svg);--icon-profile:url(icons/profile_small--dark.svg);--icon-security:url(icons/shield_small--dark.svg);--icon-favorites:url(icons/favorites_small--dark.svg);--icon-logout:url(icons/exit--dark.svg);--icon-toggle-all:url(icons/chevron-right--dark.svg);--icon-alert:url(icons/alert--dark.svg);--icon-favorite:url(icons/favorite--dark.svg);--icon-favorite--active:url(icons/favorite_active--dark.svg);--icon-manual:url(icons/manual--dark.svg);--icon-color-scheme:url(icons/color_scheme--dark.svg);--icon-arrow-left:url(icons/arrow_left--dark.svg);--icon-arrow-right:url(icons/arrow_right--dark.svg);--icon-visible:url(icons/visible--dark.svg);--icon-invisible:url(icons/invisible--dark.svg);--icon-loading:url(icons/loading--dark.svg)}html{scroll-behavior:smooth;scroll-padding-top:36px}@media screen and (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--body-bg);overflow-y:scroll}body.popup{background:var(--content-bg)}#header{background:var(--header-bg);min-height:40px;text-align:left}#header h1{position:absolute}#header h1 a{background:var(--icon-logo) no-repeat 10px center;display:block;font-weight:400;height:16px;padding:12px 12px 12px 42px}#header h1 a .app-title{color:var(--header-text);font-size:17px}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#header h1 a{font-weight:300}}#tmenu{display:flex;justify-content:flex-end}#tmenu li{position:relative}#tmenu .profile button,#tmenu a{display:inline-block;margin:0;padding:13px 12px}#tmenu sup{background:var(--header-text);border-radius:2px;color:var(--header-bg);font-size:.6rem;font-weight:400;left:20px;padding:2px;position:absolute;text-indent:0;top:5px}#tmenu .burger{display:none}#tmenu .burger button{background:none;border:0;padding:8px 10px 9px}#tmenu .burger svg{margin-bottom:-1px;vertical-align:middle}#tmenu .profile button{background:url(icons/chevron-down.svg) right 9px top 14px no-repeat;border:none;cursor:pointer;font-size:.875rem;font-weight:400;padding-right:26px;position:relative}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#tmenu .profile button{font-weight:300}}#tmenu .burger button,#tmenu .profile button,#tmenu a{color:var(--header-text);transition:background-color .3s ease}#tmenu .active .profile button,#tmenu .burger button:hover,#tmenu a.hover,#tmenu a:hover,#tmenu li:hover .profile button{background-color:var(--header-bg-hover)}#tmenu ul.menu_level_1{background:var(--content-bg);border:1px solid var(--content-border);box-shadow:0 1px 6px rgba(0,0,0,.2);color:var(--text);margin-top:5px;min-width:150px;opacity:0;position:absolute;right:6px;text-align:left;transition:opacity .3s ease,visibility .3s ease;visibility:hidden;z-index:4}#tmenu .active ul.menu_level_1{opacity:1;visibility:visible}#tmenu ul.menu_level_1 li a{color:inherit;display:block;padding:6px 20px 6px 40px;white-space:nowrap}#tmenu ul.menu_level_1 li a:hover{background-color:var(--nav-hover-bg)}#tmenu ul.menu_level_1 .info{border-bottom:1px solid var(--border);color:var(--info);line-height:1.4;margin-bottom:9px;padding:15px 20px;white-space:nowrap}#tmenu ul.menu_level_1 strong{color:var(--text);display:block}#tmenu ul.menu_level_1:before{border:7px solid transparent;border-bottom:7px solid var(--content-bg);content:"";display:block;height:0;position:absolute;right:9px;top:-14px;width:0}#tmenu ul.menu_level_1:after{border-right:1px solid var(--content-border);border-top:1px solid var(--content-border);content:"";display:block;height:9px;position:absolute;right:11px;top:-6px;transform:rotate(-45deg);width:9px}#tmenu ul.menu_level_1 .logout{border-top:1px solid var(--border);margin-top:9px;padding:6px 0}#tmenu .icon-alert,#tmenu .icon-color-scheme,#tmenu .icon-favorite,#tmenu .icon-manual{margin-bottom:-2px;overflow:hidden;position:relative;text-indent:28px;white-space:nowrap;width:16px}#tmenu .icon-alert{background:var(--icon-alert) center center no-repeat}#tmenu .icon-favorite{background:var(--icon-favorite) center center no-repeat}#tmenu .icon-favorite--active{background:var(--icon-favorite--active) center center no-repeat}#tmenu .icon-manual{background:var(--icon-manual) center center no-repeat}#tmenu .icon-color-scheme{background:var(--icon-color-scheme) center center no-repeat}#tmenu .icon-profile{background:var(--icon-profile) 20px center no-repeat}#tmenu .icon-security{background:var(--icon-security) 20px center no-repeat}#tmenu .icon-favorites{background:var(--icon-favorites) 20px center no-repeat}#tmenu .icon-logout{background:var(--icon-logout) 20px center no-repeat}#container{display:flex;min-height:calc(100vh - 40px)}.popup #container{max-width:none;min-height:0;padding:0;width:auto}#left{background:var(--nav-bg);display:flex;flex-direction:column;width:220px}#left .version{font-size:.75rem;line-height:1.4;margin-top:4em;padding:15px 18px}#left .version,#left .version a{color:var(--nav-group)}#main{display:flex;flex-direction:column;width:calc(100% - 220px)}.popup #main{border:0;display:initial;float:none;margin:0;max-width:none;padding:0;width:auto}#main .content{background:var(--content-bg);border:1px solid var(--content-border);margin:0 15px 15px}.popup #main .content{border:0;margin:0}#tl_navigation{flex-grow:1}#tl_navigation .menu_level_0{padding-top:20px}#tl_navigation .menu_level_0>li:after{background:var(--nav-separator);content:"";display:block;height:1px;margin:15px auto;width:calc(100% - 30px)}#tl_navigation .menu_level_0>li.last:after{display:none}#tl_navigation .menu_level_0 a[class^=group-]{color:var(--nav-group);display:block;font-size:.75rem;font-weight:500;margin:0 15px;padding:3px 3px 3px 22px;text-transform:uppercase}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#tl_navigation .menu_level_0 a[class^=group-]{font-weight:400}}#tl_navigation .group-favorites{background:url(icons/favorites_group.svg) 3px 2px no-repeat}#tl_navigation .group-content{background:url(icons/content.svg) 3px 2px no-repeat}#tl_navigation .group-design{background:url(icons/monitor.svg) 3px 2px no-repeat}#tl_navigation .group-accounts{background:url(icons/person.svg) 3px 2px no-repeat}#tl_navigation .group-system{background:url(icons/wrench.svg) 3px 2px no-repeat}#tl_navigation .menu_level_1{padding-top:5px}#tl_navigation [class^=menu_level_] a{color:var(--nav);display:block;font-weight:400;padding:5px 33px 5px 37px;transition:color .2s ease}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#tl_navigation [class^=menu_level_] a{font-weight:300}}#tl_navigation [class^=menu_level_]>li.current>a{background-color:var(--nav-current);border-left:4px solid var(--contao)}#tl_navigation .menu_level_1>li.current>a{padding-left:33px}#tl_navigation .menu_level_2 a{padding-left:49px}#tl_navigation .menu_level_2>li.current>a{padding-left:45px}#tl_navigation .menu_level_3 a{padding-left:61px}#tl_navigation .menu_level_3>li.current>a{padding-left:57px}#tl_navigation .menu_level_4 a{padding-left:73px}#tl_navigation .menu_level_4>li.current>a{padding-left:69px}#tl_navigation .menu_level_5 a{padding-left:85px}#tl_navigation .menu_level_5>li.current>a{padding-left:81px}#tl_navigation .menu_level_2 a{font-size:.75rem}#tl_navigation .menu_level_1 li.has-children:not(.first){padding-top:5px}#tl_navigation .menu_level_1 li.has-children:not(.last){padding-bottom:5px}#tl_navigation .menu_level_1 a:hover,#tl_navigation .menu_level_1 li.current>a{background-color:var(--nav-current);color:var(--nav-hover)}#tl_navigation .collapsed .menu_level_1{display:none}#tl_buttons{margin:0;padding:9px 15px;text-align:right}.toggleWrap{cursor:pointer}.opacity{-moz-opacity:.8;opacity:.8}#main_headline{display:flex;font-size:1.1rem;margin:18px 16px}.popup #main_headline{display:none}#main_headline span{display:inline-block;flex:1 0 0;line-height:22px;max-width:max-content;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#main_headline span:nth-child(2n){font-weight:400}#main_headline span+span:before{content:"\A0› ";font-weight:600}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#main_headline span:nth-child(2n){font-weight:300}#main_headline span+span:before{font-weight:500}}h2.sub_headline{margin:3px 18px;padding:7px 0}.label-info{color:var(--gray);padding-left:3px}.label-date{color:var(--gray);padding-right:3px}.tl_gerror{background:url(icons/error.svg) no-repeat 0;margin:12px;padding:3px 0 3px 22px}.tl_confirm,.tl_error,.tl_info,.tl_new{line-height:1.3;margin:0 0 1px;padding:11px 18px 11px 32px}.tl_error{background:var(--error-bg) url(icons/error.svg) no-repeat 11px 12px}.tl_confirm{background:var(--confirm-bg) url(icons/ok.svg) no-repeat 11px 12px}.tl_info{background:var(--info-bg) url(icons/show.svg) no-repeat 11px 12px}.tl_new{background:var(--new-bg) url(icons/featured.svg) no-repeat 11px 12px}.tl_error,.tl_error a,.tl_gerror,.tl_gerror a{color:var(--red)}.tl_error a,.tl_gerror a{text-decoration:underline}.tl_confirm,.tl_confirm a{color:var(--green)}.tl_info,.tl_info a{color:var(--blue)}.tl_new,.tl_new a{color:var(--orange)}.widget .tl_confirm,.widget .tl_error,.widget .tl_info,.widget .tl_new{background-position:9px 9px;padding:8px 10px 8px 30px}.tl_confirm strong,.tl_error strong,.tl_info strong,.tl_new strong{color:inherit}.tl_panel,.tl_version_panel{background:var(--panel-bg);border-bottom:1px solid var(--content-border);padding:4px 12px;text-align:right}.tl_version_panel{padding:8px 12px}.tl_panel .tl_select{text-align:left}.tl_version_panel .tl_select{max-width:280px}.tl_version_panel .tl_submit{vertical-align:middle}.tl_img_submit,.tl_version_panel .tl_formbody{position:relative}.tl_img_submit{border:0;cursor:pointer;height:16px;margin:0;overflow:hidden;padding:0;text-indent:16px;top:9px;white-space:nowrap;width:16px}.filter_apply{background:url(icons/filter-apply.svg) 50% no-repeat}.filter_reset{background:url(icons/filter-reset.svg) 50% no-repeat}.tl_subpanel{float:right;letter-spacing:-.31em}.tl_subpanel *{letter-spacing:normal}.tl_search span,.tl_subpanel strong{vertical-align:middle}.tl_submit_panel{min-width:32px;padding-left:6px;padding-right:3px}#search .active,.tl_panel .active,.tl_panel_bottom .active{background-color:var(--active-bg)}.tl_submit_panel button+button{margin-left:1px}.tl_filter{width:100%}.tl_filter .tl_select{margin-left:3px;max-width:14.65%}.tl_submit_panel+.tl_filter{width:86%}.tl_limit{width:22%}.tl_limit .tl_select{margin-left:3px;width:52%}.tl_search{width:40%}.tl_search .tl_select{margin-left:3px;margin-right:1%;width:38%}.tl_search .tl_text{-webkit-appearance:textfield;box-sizing:content-box;margin-left:1%;width:30%}.tl_sorting{width:26%}.tl_sorting .tl_select{margin-left:1%;width:60%}.jump-targets{background:var(--panel-bg);border-bottom:1px solid var(--content-border);min-height:30px;padding-top:1px;position:sticky;top:0;z-index:3}.jump-targets .inner{overflow-x:scroll;scrollbar-width:none}.jump-targets .inner::-webkit-scrollbar{display:none}.jump-targets ul{list-style:none;margin:0;padding:0;white-space:nowrap}.jump-targets li{display:inline-block;font-size:.75rem;padding:9px 10px;white-space:nowrap}.jump-targets button{background:none;border:none;padding:0}.jump-targets:after,.jump-targets:before{content:"";display:block;height:100%;position:absolute;top:0;width:10px}.jump-targets:before{background:linear-gradient(-90deg,transparent 0,var(--panel-bg) 50%)}.jump-targets:after{background:linear-gradient(90deg,transparent 0,var(--panel-bg) 50%);right:0}.tl_xpl{padding:0 18px}.tl_box,.tl_tbox{border-bottom:1px solid var(--border);padding:12px 0 25px}.tl_box:last-child,.tl_tbox:last-child{border-bottom:0}.tl_box h3,.tl_tbox h3,.tl_xpl h3{font-size:.875rem;height:16px;margin:0;padding-top:13px}.tl_box h4,.tl_tbox h4{font-size:.875rem;margin:6px 0 0;padding:0}.tl_tbox.theme_import{padding-left:15px;padding-right:15px}.tl_tbox.theme_import h3,.tl_tbox.theme_import h4,.tl_tbox.theme_import p{line-height:1.3}.tl_help,.tl_help *{font-size:.75rem}.tl_help,.tl_help a{color:var(--info);line-height:1.2;margin-bottom:0}.tl_help a:active,.tl_help a:focus,.tl_help a:hover{text-decoration:underline}#tl_buttons+.tl_edit_form .tl_formbody_edit{border-top:1px solid var(--border)}.tl_formbody_submit{border-top:1px solid var(--content-border);bottom:0;position:sticky;z-index:3}.tl_submit_container{background:var(--panel-bg);padding:8px 12px}.tl_submit_container .tl_submit{margin:2px 0}.maintenance_active{padding-top:12px}.maintenance_active,.maintenance_inactive{border-top:1px solid var(--border)}.maintenance_inactive .tl_tbox{border:0!important;padding:6px 15px 14px}.maintenance_inactive .tl_message{margin:0 15px 3px}.maintenance_inactive h2.sub_headline{margin:16px 15px 3px}.maintenance_inactive .tl_submit_container{background:none;border:0;padding:0 15px 24px}@keyframes crawl-progress-bar-stripes{0%{background-position-x:1rem}}#tl_crawl .tl_message{margin-bottom:24px}#tl_crawl .tl_message>p{background-color:transparent;background-position-y:center;padding-bottom:0;padding-top:0}#tl_crawl .tl_tbox{margin-top:0;padding-left:0;padding-right:0;padding-top:0}#tl_crawl .tl_checkbox_container{margin-top:6px}#tl_crawl .inner{margin:0 18px 18px;position:relative}#tl_crawl .progress{background-color:var(--tree-header);border-radius:2px;display:flex;height:20px}#tl_crawl .progress-bar{background-size:10px 10px;color:#fff;display:flex;flex-direction:column;justify-content:center;text-align:center;white-space:nowrap}#tl_crawl .progress-bar.running{animation:crawl-progress-bar-stripes 1s linear infinite;background-color:var(--progress-running);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}#tl_crawl .progress-bar.finished{background-color:var(--progress-finished)}#tl_crawl .progress-count{margin:6px 0 24px}#tl_crawl .results h3{font-size:.9rem;margin:18px 0 9px}#tl_crawl .results p{margin-bottom:6px}#tl_crawl .crawl-hint{line-height:1.3;margin-top:-2px}#tl_crawl .crawl-hint a{text-decoration:underline}#tl_crawl .subscriber-log{display:none;margin-bottom:0;padding:5px 0}#tl_crawl .wait{color:var(--gray);margin-top:9px}#tl_crawl .debug-log{display:none;margin-top:11px}#tl_crawl .results.finished .show-when-running,#tl_crawl .results.running .show-when-finished{display:none}#tl_crawl .results.finished .show-when-finished,#tl_crawl .results.running .show-when-running{display:block}#tl_crawl .result .summary.success{color:var(--green)}#tl_crawl .result .summary.failure{color:var(--red)}#tl_crawl .result .warning{color:var(--blue);display:none}.two-factor{border-top:1px solid var(--border);padding-bottom:9px}.two-factor h2.sub_headline{margin:18px 15px 3px}.two-factor>p{line-height:1.3;margin:0 15px 12px}.two-factor li{list-style:initial;margin-left:2em}.two-factor .qr-code{margin:0 15px}.two-factor .qr-code img{border:3px solid #fff}.two-factor .tl_listing_container{margin-top:6px}.two-factor .widget{height:auto;margin:15px 15px 12px}.two-factor .widget .tl_error{background:none;font-size:.75rem;line-height:1.25;margin:0;padding:1px 0}.two-factor .tl_submit_container{background:none;border:0;padding:0 15px 10px}.two-factor .submit_container{clear:both;margin:0 15px 12px}.two-factor .tl_message{margin:0 15px 12px}.two-factor .tl_message>p{background-color:transparent;background-position:3px;padding:0 3px 0 27px}.two-factor .tl_backup_codes>p,.two-factor .tl_trusted_devices>p{line-height:1.3;margin:0 15px 12px}.two-factor .backup-codes{display:grid;grid-template-columns:repeat(2,1fr);margin:15px 15px 24px;max-width:224px;padding:0}.two-factor .backup-codes li{list-style:none;margin:0}.two-factor .tl_trusted_devices td,.two-factor .tl_trusted_devices th{line-height:16px}#search{margin:18px 18px -9px;text-align:right}#search .tl_text{-webkit-appearance:textfield;box-sizing:content-box;max-width:160px}.tl_edit_preview{margin-top:18px}.tl_edit_preview img{background:var(--white);border:1px solid var(--content-border);height:auto;max-width:100%;padding:2px}.tl_edit_preview_enabled{cursor:crosshair;display:inline-block;position:relative}.tl_edit_preview_important_part{border:1px solid var(--black);box-shadow:0 0 0 1px var(--white),inset 0 0 0 1px var(--white);margin:-1px;opacity:.5;position:absolute}table.tl_listing{width:100%}.tl_listing_container{margin:18px 0;padding:0 15px}#tl_buttons+.tl_form .tl_listing_container,#tl_buttons+.tl_listing_container{margin-top:12px}#paste_hint+.tl_listing_container{margin-top:36px}.tl_folder_list,.tl_folder_tlist{background:var(--table-header);border-bottom:1px solid var(--border);font-weight:600;padding:6px}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.tl_folder_list,.tl_folder_tlist{font-weight:500}}.tl_folder_tlist{border-top:1px solid var(--border);line-height:16px}.tl_file,.tl_file_list{background:var(--content-bg);border-bottom:1px solid var(--border);padding:5px 6px}.tl_file_list .ellipsis{height:16px;overflow:hidden;padding-right:18px;text-overflow:ellipsis;word-break:break-all}.tl_right_nowrap{padding:6px;text-align:right;vertical-align:top;white-space:nowrap}.tl_listing.picker .tl_file,.tl_listing.picker .tl_folder,.tl_listing.picker .tl_right_nowrap,.tl_listing_container.picker .tl_content,.tl_listing_container.picker .tl_content_header{background-image:linear-gradient(90deg,transparent calc(100% - 26px),var(--tree-header) 26px)}.tl_listing.picker .tl_tree_checkbox,.tl_listing.picker .tl_tree_radio,.tl_listing_container.picker .tl_tree_checkbox,.tl_listing_container.picker .tl_tree_radio{margin-left:8px;margin-top:2px}.tl_listing.picker .tl_tree_checkbox:disabled,.tl_listing.picker .tl_tree_radio:disabled,.tl_listing_container.picker .tl_tree_checkbox:disabled,.tl_listing_container.picker .tl_tree_radio:disabled{visibility:hidden}.tl_listing_container.picker div[class^=ce_]{padding-right:24px}.tl_listing_container.picker .limit_toggler{width:calc(100% - 26px)}.list_view .tl_listing img.theme_preview{margin-right:9px}.tl_show{margin:18px 2%;padding:9px 0 18px;width:96%}.tl_show+.tl_show{margin-top:36px}.tl_show td,.tl_show th{line-height:16px;white-space:pre-line}.tl_show td:first-child{white-space:normal;width:34%}.tl_show td p:last-of-type{margin-bottom:0}.tl_show small{color:var(--info);display:block}.tl_label{font-weight:600;margin-right:12px;white-space:nowrap}.tl_label small{font-weight:400}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.tl_label{font-weight:500}.tl_label small{font-weight:300}}.tl_empty{margin:0;padding:18px}.tl_empty_parent_view{margin:0;padding:18px 0 0}.tl_listing_container+.tl_empty{margin-top:-18px}.tl_noopt{margin:1px 0}.tl_select_trigger{margin-top:-9px}.tl_radio_reset,.tl_select_trigger{padding:0 6px 3px 0;text-align:right}.tl_radio_reset{margin-top:6px}.tl_radio_label,.tl_select_label{color:var(--gray);font-size:.75rem;margin-right:2px}.tl_header{background:var(--table-header);margin-bottom:18px;padding:10px}.tl_header_table{line-height:1.3}.tl_content_header{background:var(--table-header);border-bottom:1px solid var(--border);font-weight:600;padding:7px 6px}.tl_header+.tl_content_header{border-top:1px solid var(--border)}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.tl_content_header{font-weight:500}}.as-grid .tl_content_header{background-color:transparent;border:0;font-size:1rem;margin-top:24px;padding:0 1px}.tl_content{border-bottom:1px solid var(--border);position:relative}.tl_content .inside{background-color:var(--content-bg);padding:6px}.tl_content.draft .inside{min-height:16px}.hover-row.draft>td,.tl_content.draft>*,.tl_file.draft>*,.tl_folder.draft>*{opacity:.5}.as-grid .tl_content{background-color:var(--content-bg);border:1px solid var(--border);margin-top:18px;padding:0}.as-grid .tl_content .inside{display:grid;grid-template-columns:1fr auto}.as-grid .tl_content_header+.tl_content{margin-top:12px}.parent_view>ul{list-style:none;margin:0;padding:0}.parent_view:not(.as-grid)>ul{background-color:var(--table-header)}.tl_content.indent_1{margin-left:20px}.tl_content.indent_2{margin-left:40px}.tl_content.indent_3{margin-left:60px}.tl_content.indent_4{margin-left:80px}.tl_content.indent_5{margin-left:100px}.as-grid .tl_content .inside{padding:0}.as-grid .tl_content.indent{background:var(--nested-bg);border-width:0 1px;margin:0;padding:15px 15px 0}.as-grid .tl_content.indent_2{padding-left:30px;padding-right:30px}.as-grid .tl_content.indent_3{padding-left:45px;padding-right:45px}.as-grid .tl_content.indent_4{padding-left:60px;padding-right:60px}.as-grid .tl_content.indent_5{padding-left:75px;padding-right:75px}.as-grid .tl_content.indent_last{padding-bottom:15px}.as-grid .tl_content.indent .inside{border:1px solid var(--border)}.as-grid .tl_content.wrapper_stop{margin-top:0}.as-grid .tl_content.indent.wrapper_stop{padding-top:0}.tl_content_left{line-height:16px}.as-grid .tl_content_left{padding:8px 10px}.tl_content_right{float:right;margin-bottom:-1px;margin-left:12px;position:relative;text-align:right;z-index:1}.as-grid .tl_content .tl_content_right{background:var(--table-header);border-left:1px solid var(--border);float:none;margin-bottom:0;margin-left:0;order:2;padding:8px 10px}.tl_content_right button,.tl_right button{background:none;border:0;height:16px;margin:0;padding:0}.tl_content_right button,.tl_content_right img,.tl_right button,.tl_right img,.tl_right_nowrap button,.tl_right_nowrap img{margin-left:1px}.cte_type{color:var(--info);font-size:.75rem;line-height:16px;margin:0 0 4px}.as-grid .cte_type{background-color:var(--table-header);font-size:.8rem;margin-bottom:0;order:1;padding:8px 10px}.cte_type.published,.cte_type.published a{color:var(--green)}.cte_type.unpublished,.cte_type.unpublished a{color:var(--red)}.cte_type.icon-protected{background:var(--table-header) url(icons/protected.svg) 8px 8px no-repeat;padding-left:27px}.cte_type .visibility{color:var(--gray)}.cte_preview{line-height:1.25;position:relative}.cte_preview h1{font-size:1.25rem;margin-bottom:6px}.cte_preview h2{font-size:1rem;margin-bottom:6px}.cte_preview h3{font-size:.9rem;margin-bottom:6px}.cte_preview h4,.cte_preview h5,.cte_preview h6{font-size:.875rem;margin-bottom:6px}.content-hyperlink,.content-toplink,.cte_preview div.tl_gray,.cte_preview figure,.cte_preview ol,.cte_preview p,.cte_preview table,.cte_preview table caption,.cte_preview ul{margin-bottom:6px}.cte_preview img{height:auto;max-width:320px;padding:6px 0}.cte_preview td,.cte_preview th{border-bottom:1px solid var(--border);padding:3px 6px}.cte_preview th{background:var(--table-header);padding:6px}.cte_preview td{background:var(--content-bg)}.cte_preview table caption{font-size:.75rem;text-align:left}.cte_preview pre{margin-bottom:6px;margin-top:0;white-space:pre-wrap;word-break:break-all}.cte_preview pre.disabled{color:var(--pre-disabled)}.cte_preview .content-gallery ul{display:grid;grid-template-columns:1fr 1fr 1fr;list-style:none;margin:0;padding:0}.cte_preview a{color:var(--green)}.cte_preview div.tl_gray a{color:var(--gray)}.cte_preview span.comment{color:var(--blue);display:inline-block;margin-bottom:3px}.cte_preview button,.cte_preview input,.cte_preview select,.cte_preview textarea{background:var(--form-bg);border:1px solid var(--form-border)}.cte_preview input[type=file]{position:relative}.cte_preview select{-moz-appearance:menulist;-webkit-appearance:menulist}.cte_preview .checkbox_container legend,.cte_preview .radio_container legend,.cte_preview label{display:block;margin-bottom:6px}.cte_preview .widget{margin:0 0 6px}.cte_preview .checkbox_container label,.cte_preview .radio_container label{display:initial}.cte_preview .widget-captcha{display:block!important}.cte_preview .widget-captcha .captcha_text{padding-left:3px;vertical-align:middle}.cte_preview.empty{display:none}.as-grid .cte_preview{border-top:1px solid var(--border);grid-column:1/span 2;order:3;padding:10px 10px 6px}.limit_height{overflow:hidden}.limit_toggler{background:var(--content-bg);bottom:0;left:0;line-height:11px;position:absolute;text-align:center;width:100%}.limit_toggler button{background:var(--content-bg);border:0;border-top-left-radius:2px;border-top-right-radius:2px;color:var(--gray);line-height:8px;margin:0;padding:0;width:24px}.limit_toggler button span{position:relative;top:-4px;z-index:1}.tl_folder_top{background:var(--tree-header);border:solid var(--tree-header-border);border-width:1px 0;min-height:18px;padding:5px 6px}.tl_folder{background:var(--table-header);border-bottom:1px solid var(--border);padding:5px 6px}.tl_folder.tl_folder_dropping,.tl_folder_top.tl_folder_dropping{background-color:var(--drag-bg)!important;color:var(--text)!important}.tl_folder.tl_folder_dropping a,.tl_folder_top.tl_folder_dropping a{color:inherit}.tl_listing .tl_left{box-sizing:border-box;flex-grow:1;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tl_listing .tl_left.tl_left_dragging{background:var(--drag-bg);border-radius:10px;color:var(--text);margin-left:0;padding:5px 10px!important;position:absolute;text-indent:0;white-space:nowrap}.tl_listing .tl_left.tl_left_dragging .preview-image,.tl_listing .tl_left.tl_left_dragging a img{display:none}.tl_listing .tl_left.tl_left_dragging .tl_gray,.tl_listing .tl_left.tl_left_dragging a{color:inherit}.tl_listing_dragging .hover-div:not(.tl_folder):hover{background-color:transparent!important}.tl_listing .tl_left a:hover{color:var(--text)}.tl_listing .tl_left img:not(.preview-image,.preview-important){margin-top:-3px}.tl_file_manager .preview-image{height:auto;margin:3px 0 2px 22px;max-height:75px;max-width:100px;width:auto}.tl_file_manager .preview-important{height:auto;margin:3px 0 2px;max-height:60px;max-width:80px;vertical-align:bottom;width:auto}.tl_listing .tl_right{padding:1px 0 0 9px;white-space:nowrap}@-moz-document url-prefix(){.tl_listing .tl_right{padding-top:0}}.tl_listing,.tl_listing ul{margin:0;padding:0}.tl_listing li{display:flex;list-style-type:none;margin:0}.tl_listing li.parent{display:inline;padding-left:0;padding-right:0}label.tl_change_selected{color:var(--gray);font-size:.75rem;margin-right:2px}#tl_breadcrumb{background:var(--active-bg);border:1px solid var(--active-border);border-radius:2px;display:flow-root;line-height:24px;margin:0 0 12px;padding:4px 6px}#tl_breadcrumb li{float:left;list-style-type:none;margin:0;padding:0 3px}#tl_breadcrumb li a{display:inline-block}#tl_breadcrumb li img{height:16px;vertical-align:-3px;width:16px}.selector_container{margin-top:1px;position:relative}.selector_container>ul{list-style-type:none;margin:0 0 1px;padding:0}.selector_container>ul>li{margin:0 9px 0 0;padding:2px 0}.selector_container p{margin-bottom:1px}.selector_container ul:not(.sgallery) img{margin-right:1px;vertical-align:text-top}.selector_container img{height:auto;max-width:320px}.selector_container .limit_height{height:auto!important;max-height:190px}.selector_container .limit_toggler{display:none}.selector_container h1,.selector_container h2,.selector_container h3,.selector_container h4{margin:0;padding:0}.selector_container pre{white-space:pre-wrap}.selector_container table.showColumns{margin:2px 0 3px}.selector_container table.sortable td{cursor:move}ul.sgallery{display:grid;gap:4px;grid-auto-rows:75px;grid-template-columns:repeat(auto-fill,100px);padding:2px 0}ul.sgallery li{-webkit-align-items:center;align-items:center;background:var(--form-button);display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;margin:0;min-height:75px;min-width:100px;padding:0}.popup #tl_soverview{margin-top:15px}#tl_soverview>div{border-bottom:1px solid var(--border);padding:5px 15px}#tl_soverview>div:last-child{border-bottom:0}#tl_messages h2,#tl_shortcuts h2{margin:14px 0 10px}#tl_versions h2{margin:14px 0 12px}#tl_messages p{margin-bottom:.5em}#tl_messages p:last-child{margin-bottom:1em}#tl_messages .tl_confirm,#tl_messages .tl_error,#tl_messages .tl_info,#tl_messages .tl_new{background-color:transparent;background-position:left 1px;padding:0 0 0 21px}#tl_shortcuts p a{text-decoration:underline}#tl_versions{margin-bottom:0}#tl_versions table{margin-bottom:18px;width:100%}#tl_versions td,#tl_versions th{padding:6px}#tl_versions th{line-height:16px}#tl_versions td:first-child{white-space:nowrap}#tl_versions td:last-child{text-align:right;white-space:nowrap;width:32px}#tl_versions .pagination{background:var(--table-header);margin-bottom:14px;margin-top:18px;padding:12px 6px}.tl_chmod{width:100%}.tl_chmod th{background:var(--tree-header);font-weight:400;height:18px;text-align:center}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.tl_chmod th{font-weight:300}}.tl_chmod td{background:var(--table-header);text-align:center}.tl_chmod td,.tl_chmod th{border:1px solid var(--content-bg);padding:6px;width:14.2857%}.tl_checkbox_wizard button,.tl_image_size+button,.tl_key_value_wizard button,.tl_listwizard button,.tl_metawizard button,.tl_modulewizard button,.tl_optionwizard button,.tl_sectionwizard button,.tl_tablewizard button{background:none;border:0;margin:0;padding:0;vertical-align:middle}.tl_modulewizard{margin-top:2px;max-width:800px;width:100%}.tl_modulewizard td{padding:0 3px 0 0;position:relative}.tl_modulewizard th{font-size:.75rem;font-weight:400;padding:0 6px 1px 0}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.tl_modulewizard th{font-weight:300}}.tl_modulewizard td:last-child{white-space:nowrap;width:1%}.tl_modulewizard .tl_select,.tl_modulewizard .tl_select_column{margin:2px 0}.js .tl_modulewizard input.mw_enable,.tl_modulewizard input.mw_enable+button{display:none}.js .tl_modulewizard input.mw_enable+button{background:var(--icon-invisible) 0 0 no-repeat;display:inline;height:16px;width:16px}.js .tl_modulewizard input.mw_enable:checked+button{background-image:var(--icon-visible)}.tl_modulewizard img.mw_enable{display:none}.js .tl_modulewizard img.mw_enable{display:inline;margin-right:1px}.tl_optionwizard{max-width:600px;width:100%}.tl_key_value_wizard{max-width:450px;width:100%}.tl_key_value_wizard,.tl_optionwizard{margin-top:2px}.tl_key_value_wizard label,.tl_optionwizard label{margin-right:3px}.tl_key_value_wizard td,.tl_optionwizard td{padding:0 3px 0 0}.tl_key_value_wizard th,.tl_optionwizard th{font-size:.75rem;font-weight:400;padding:0 6px 1px 0}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.tl_key_value_wizard th,.tl_optionwizard th{font-weight:300}}.tl_key_value_wizard td:nth-child(n+3),.tl_optionwizard td:nth-child(n+3){white-space:nowrap;width:1%}.tl_optionwizard .tl_text{margin:2px 0}.tl_key_value_wizard img,.tl_optionwizard img{position:relative;top:1px}.tl_key_value_wizard .fw_checkbox,.tl_optionwizard .fw_checkbox{margin:0 1px}#ctrl_allowedAttributes{max-width:none}#ctrl_allowedAttributes td:first-child{width:100px}#tl_tablewizard{margin-top:2px;overflow:auto;padding-bottom:2px}.tl_tablewizard td{padding:0 3px 0 0}.tl_tablewizard thead td{padding-bottom:3px;text-align:center;white-space:nowrap}.tl_tablewizard tbody td:last-child{white-space:nowrap}.tl_tablewizard td.tcontainer{vertical-align:top}.tl_tablewizard .tl_textarea{margin:2px 0}.tl_listwizard{list-style:none;margin:1px 0;padding:0}.tl_listwizard .tl_text{margin:2px 0;width:78%}.tl_listwizard button{margin-left:1px}.tl_checkbox_wizard .sortable img{vertical-align:bottom}.tl_metawizard{list-style:none;margin:3px 0;padding:0}.tl_metawizard li{margin-bottom:2px;padding:9px}.tl_metawizard li:nth-child(odd){background:var(--table-header)}.tl_metawizard li:nth-child(2n){background:var(--table-even)}.tl_metawizard label{float:left;margin-top:9px;width:18%}.tl_metawizard .tl_text,.tl_metawizard .tl_textarea{float:left;margin:1px 0;width:calc(82% - 20px)}.tl_metawizard .tl_textarea{resize:vertical}.tl_metawizard .tl_text+a{margin-left:4px;position:relative;top:7px}.tl_metawizard br{clear:left}.tl_metawizard .lang{display:block;font-weight:600;margin:3px 0 9px;position:relative}.tl_metawizard .lang button{position:absolute;right:0;top:-1px}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.tl_metawizard .lang{font-weight:500}}.tl_sectionwizard{margin-top:2px;max-width:680px;width:100%}.tl_sectionwizard td{padding:0 3px 0 0;position:relative;width:25%}.tl_sectionwizard th{font-size:.75rem;font-weight:400;padding:0 4px 1px 0}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.tl_sectionwizard th{font-weight:300}}.tl_sectionwizard td:last-child{white-space:nowrap}#paste_hint{position:relative;z-index:1}.tl_message+#paste_hint{margin-top:-12px}#paste_hint p{background:var(--icon-arrow-right) bottom right no-repeat;padding:0 36px 24px 0;right:30px;top:0;transform:rotate(-1deg)}#paste_hint p,.sort_hint{color:var(--paste-hint);font-family:Architects Daughter,cursive;font-size:1rem;position:absolute}.sort_hint{background:var(--icon-arrow-left) 6px bottom no-repeat;left:160px;padding:0 6px 24px 42px;top:-50px;transform:rotate(-2deg)}.widget+.subpal .sort_hint{left:260px}.widget+.widget .sort_hint{left:320px}.serp-preview{background:var(--panel-bg);border-radius:3px;color:var(--serp-preview);font-family:Arial,sans-serif;font-weight:400;margin:2px 0;max-width:600px;padding:5px 7px}.serp-preview p{margin:0}.serp-preview .description,.serp-preview .url{line-height:18px}.serp-preview .url:not(:empty){margin-top:3px}.serp-preview .description:not(:empty){margin-bottom:3px}.serp-preview .title{color:var(--serp-preview-title);font-size:18px;margin:5px 0 4px}.serp-preview .tl_info{background-color:transparent}#tl_ajaxBox{background:var(--white) var(--icon-loading) no-repeat right 2em center;border:2px solid var(--black);border-radius:2px;box-sizing:border-box;font-size:1rem;left:50%;margin-left:-150px;padding:2em;position:absolute;text-align:left;width:300px}#tl_ajaxOverlay{background:var(--white);height:100%;left:0;opacity:.5;position:absolute;top:0;width:100%}.ce_gallery ul{display:flow-root}.ce_gallery li{float:left;margin:0 6px 6px 0}.drag-handle{cursor:move}ul.sortable li{cursor:move;position:relative}ul.sortable li .dirname{display:none}ul.sortable li:hover .dirname{display:inline}ul.sortable button{background:var(--form-button);border:0;border-radius:2px;cursor:pointer;font-size:22px;line-height:9px;margin:0;padding:0 0 3px;position:absolute;right:0;top:0;transition:all .1s linear}ul.sortable button:hover{background:var(--form-button-hover)}ul.sortable button[disabled]{color:var(--gray);cursor:not-allowed}ul.sortable button[disabled]:hover{background:hsla(0,0%,100%,.7)}#picker-menu{border-bottom:1px solid var(--content-border);padding:9px 6px 0}#picker-menu>ul{list-style:none;margin:0;padding:0}#picker-menu li{background-color:var(--table-even);border:1px solid var(--content-border);border-radius:2px 2px 0 0;display:inline-block;padding:8px 0;position:relative;top:1px}#picker-menu li.current,#picker-menu li:hover{background-color:var(--panel-bg)}#picker-menu li.current{border-bottom-color:var(--panel-bg)}#picker-menu a{background:url(icons/mover.svg) 12px no-repeat;padding:3px 12px 3px 32px}#picker-menu a:hover{color:var(--text)}#picker-menu a.pagePicker{background-image:url(icons/pagemounts.svg);background-size:16px}#picker-menu a.filePicker{background-image:url(icons/filemounts.svg);background-size:14px}#picker-menu a.articlePicker{background-image:url(icons/articles.svg);background-size:16px}#picker-menu a.close{background-image:url(icons/back.svg)}.ace_editor{padding:3px;z-index:0}.ace_editor,.ace_editor *{color:var(--text);font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important;font-size:.75rem!important}.ace-fullsize{overflow:hidden!important}.ace-fullsize .ace_editor{border:0;bottom:0;height:auto!important;left:0;margin:0;position:fixed!important;right:0;top:0;width:auto!important;z-index:10000}div.mce-edit-area{width:99.9%}time[title]{cursor:help}.float_left{float:left}.float_right{float:right}.foldable img{transform:none;transition:transform .2s ease;will-change:transform}.foldable--open img{transform:rotate(90deg)}.foldable--loading{pointer-events:none;position:relative}.foldable--loading img{visibility:hidden}.foldable--loading:after{background:var(--icon-loading) 0 0/contain no-repeat;content:"";height:14px;inset:2px auto auto 2px;position:absolute;width:14px}.header_back,.header_clipboard,.header_css_import,.header_delete_all,.header_edit_all,.header_icon,.header_new,.header_new_folder,.header_rss,.header_store,.header_sync,.header_theme_import,.header_toggle{background-color:transparent;background-position:0;background-repeat:no-repeat;border:none;display:inline-block;margin-left:15px;padding:3px 0 3px 22px}.list_icon{background-position:0;margin-left:-3px;padding-left:24px}.list_icon,.list_icon_new{background-repeat:no-repeat}.list_icon_new{background-position:1px;width:16px}.header_clipboard{background-image:url(icons/clipboard.svg)}.header_back{background-image:url(icons/back.svg)}.header_new{background-image:url(icons/new.svg)}.header_rss{background-image:url(icons/rss.svg)}.header_edit_all{background-image:url(icons/all.svg)}.header_new_folder{background-image:url(icons/newfolder.svg)}.header_css_import{background-image:url(icons/cssimport.svg)}.header_theme_import{background-image:url(icons/theme_import.svg)}.header_store{background-image:url(icons/store.svg)}.header_toggle{background-image:var(--icon-toggle-all);padding-left:18px}.header_sync{background-image:url(icons/sync.svg)}#ctrl_playerSize input,.tl_imageSize_0,.tl_imageSize_1,.tl_text_trbl{background:var(--form-bg) url(icons/hints.svg) no-repeat right 1px top 2px}#ctrl_playerSize_1,.tl_imageSize_1{background-position:right 1px top -28px!important}.trbl_top{background-position:right 1px top -59px!important}.trbl_right{background-position:right 1px top -89px!important}.trbl_bottom{background-position:right 1px top -119px!important}.trbl_left{background-position:right 1px top -149px!important}#ctrl_shadowsize_top{background-position:right 1px top -179px!important}#ctrl_shadowsize_right{background-position:right 1px top -209px!important}#ctrl_shadowsize_bottom{background-position:right 1px top -238px!important}#ctrl_shadowsize_left{background-position:right 1px top -269px!important}#ctrl_borderradius_top{background-position:left -299px!important}#ctrl_borderradius_right{background-position:right 1px top -329px!important}#ctrl_borderradius_bottom{background-position:right 1px top -352px!important}#ctrl_borderradius_left{background-position:left -382px!important}.tl_checkbox_container.error legend,label.error,legend.error{color:var(--red)}.tl_box .tl_error,.tl_tbox .tl_error{background:none;font-size:.75rem;margin-bottom:0;padding:0}.tl_formbody_edit>.tl_error{margin-top:9px}.broken-image{background:var(--error-bg) url(icons/error.svg) no-repeat 9px center;color:var(--red);display:inline-block;padding:12px 12px 12px 30px;text-indent:0}fieldset.tl_box,fieldset.tl_tbox{border-left:0;border-right:0;border-top:none;margin-top:5px;margin-inline:0;padding-top:0}fieldset.tl_box.nolegend,fieldset.tl_tbox.nolegend{border-top:0}fieldset.tl_box>legend,fieldset.tl_tbox>legend{background:url(icons/navcol.svg) 13px 10px no-repeat;box-sizing:border-box;color:var(--legend);cursor:pointer;padding:9px 12px 9px 28px}fieldset.collapsed{margin-bottom:0;padding-bottom:5px}fieldset.collapsed div{display:none!important}fieldset.collapsed>legend{background:url(icons/navexp.svg) 13px 10px no-repeat}#tl_maintenance_cache table{width:100%}#tl_maintenance_cache td{line-height:1.2;padding:9px 6px}#tl_maintenance_cache td span{color:var(--gray)}#tl_maintenance_cache td:first-child{width:16px}#tl_maintenance_cache .nw{white-space:nowrap}#tl_maintenance_cache .tl_checkbox_container{margin-top:3px}#tl_maintenance_cache .tl_checkbox_container label{font-weight:600;vertical-align:initial}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#tl_maintenance_cache .tl_checkbox_container label{font-weight:500}}.pagination{background:var(--panel-bg);border:solid var(--border);border-width:1px 0;display:flow-root;margin-bottom:18px;padding:12px 15px}.pagination ul{float:right;text-align:right;width:60%}.pagination p{float:left;margin-bottom:0;width:30%}.pagination li{display:inline;padding-left:3px}.pagination .active{color:var(--gray)}.pagination-lp{border-bottom:0;margin-bottom:0;padding:15px 12px}#result-list{margin:15px}#result-list .tl_confirm,#result-list .tl_error,#result-list .tl_info,#result-list .tl_new{background:none;padding:3px 0}.dropzone{background:var(--form-bg)!important;border:3px dashed var(--border)!important;border-radius:2px;margin:2px 0;min-height:auto!important}.dropzone-filetree{display:none;height:100%;left:0;opacity:.8;position:absolute;top:0;width:100%;z-index:1}.dropzone-filetree-enabled{display:block}.dz-message span{color:var(--gray);font-size:1.3125rem}.tox-tinymce{border-radius:2px!important;margin:3px 0}.tl_undo_header{grid-column-gap:24px;display:grid;grid-template-columns:2fr 2fr 3fr 3fr;margin-top:2px;max-width:880px}.hover-row:hover .tl_undo_header{background-color:var(--hover-row)!important}.tl_undo_preview{font-size:.75rem;margin-top:5px;padding:6px 0 3px;position:relative}.tl_undo_preview td{padding-left:0!important;padding-right:32px!important}.tl_undo_preview td:empty{display:none}.tl_undo_preview img{height:auto;max-width:320px}.tl_undo_preview a img{margin-top:-3px}.tl_undo_preview .cte_preview h1{font-size:1.15rem}.tl_undo_preview .cte_preview h2{font-size:.9rem}.tl_undo_preview .cte_preview h3{font-size:.8rem}.tl_undo_preview .cte_preview h4,.tl_undo_preview .cte_preview h5,.tl_undo_preview .cte_preview h6{font-size:.775rem}@media (max-width:991px){#container{display:block}#left,#main{float:none}#main{position:relative;-webkit-transform:none;transform:none;transition:transform .2s ease;width:100%!important;will-change:transform}.show-navigation #main{-webkit-transform:translateX(240px);transform:translateX(240px)}#left{position:absolute;top:40px;-webkit-transform:translateX(-240px);transform:translateX(-240px);transition:transform .2s ease,visibility .2s ease;visibility:hidden;width:240px;will-change:transform,visibility}.show-navigation #left{-webkit-transform:none;transform:none;visibility:visible}#tmenu .burger{display:inline}}@media (max-width:767px){#header h1 a{min-width:22px;padding:12px}#header h1 a .app-title{display:none}#header h1 a .badge-title{margin-left:32px}#tmenu>li>a{background-size:18px!important;margin-bottom:-2px;overflow:hidden;position:relative;text-indent:28px;white-space:nowrap;width:16px}#tmenu sup{font-size:.5rem;top:6px}#tmenu .icon-debug{background:url(icons/debug.svg) 50% no-repeat}#tmenu .icon-preview{background:url(icons/preview.svg) 50% no-repeat}#tmenu .profile button{background:url(icons/profile.svg) 50% no-repeat;background-size:18px;margin:0 0 -2px;overflow:hidden;padding-right:12px;text-indent:28px;white-space:nowrap;width:40px}#main .content{margin:15px 10px}#main_headline{margin:13px 0;padding:0 11px}div.tl_box,div.tl_tbox{position:relative}.tl_content_left{float:none;width:100%}.showColumns td,.showColumns th{display:block}.showColumns th:empty{display:none}.tl_label{white-space:normal}.list_view .tl_listing img.theme_preview{display:none}.tl_filter{box-sizing:border-box;padding:0 3px 0 7px}.tl_filter strong{display:none}.tl_filter .tl_select{display:block;max-width:100%}.tl_search{max-width:283px;width:76%}.tl_search .tl_select{width:36%}.tl_search .tl_text{width:26%}.tl_sorting{max-width:212px;width:60%}.tl_limit{max-width:177px;width:50%}.tl_submit_panel{float:right;z-index:1}input.tl_submit{margin-bottom:3px;margin-top:3px;padding-left:6px!important;padding-right:7px!important}.tl_listing .tl_left,.tl_show td{word-break:break-word}#tl_breadcrumb li{padding:3px}#tl_versions{display:none}.tl_version_panel .tl_select{width:44%}.tl_modulewizard td:first-child{width:1%}.tl_modulewizard td:first-child .tl_select{max-width:52vw}#paste_hint,.sort_hint{display:none}#tl_maintenance_cache table{width:100%}#tl_maintenance_cache tr td:last-child,#tl_maintenance_cache tr th:last-child{display:none}.tl_file_list .ellipsis{padding-right:10px}.tl_undo_header{grid-template-columns:2fr 3fr}.tl_undo_header div:not(.tstamp,.source){display:none}}@media (max-width:599px){.tl_metawizard label{display:block;float:none;font-size:.9em;margin-top:3px;width:auto}.tl_metawizard .tl_text{width:100%}}@media (max-width:479px){.tl_modulewizard td:first-child .tl_select{max-width:48vw}} +/*# sourceMappingURL=backend.ec1d4638.css.map*/ \ No newline at end of file diff --git a/contao/themes/flexible/backend.ec1d4638.css.map b/contao/themes/flexible/backend.ec1d4638.css.map new file mode 100644 index 0000000000..d2544f9cbe --- /dev/null +++ b/contao/themes/flexible/backend.ec1d4638.css.map @@ -0,0 +1 @@ +{"version":3,"file":"backend.ec1d4638.css","mappings":"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gBAED,CAGA,0CACC,0BAA2B,CAC3B,kBACD,CAEA,qBACC,oCACD,CAEA,4CACC,WACD,CAEA,oBACC,uCACD,CAEA,4CACC,oCACD,CAEA,2CACC,qCACD,CAGA,OACC,UAAW,CAGX,cAAgB,CAFhB,WAAa,CACb,gBAED,CAEA,qBACC,WAAY,CACZ,aACD,CAEA,UACC,UACD,CAEA,WAEC,kBAAmB,CADnB,QAAS,CAET,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,SAAU,CACV,iBAAkB,CAClB,SACD,CAGA,uBACC,cACD,CAEA,cACC,sBAAuB,CACvB,mBAAoB,CACpB,mBAAoB,CAIpB,kBAAmB,CAHnB,YAAa,CACb,iDAAkD,CAClD,oEAED,CAEA,gBACC,sCAAuC,CACvC,uCACD,CAEA,yCACC,mBACD,CAGA,4BACC,gBAAiB,CACjB,iBAAkB,CAClB,iBACD,CAEA,yBACC,UAAW,CACX,uBACD,CAEA,yBACC,UAAW,CACX,uBACD,CAEA,0BACC,uBACD,CAEA,sCACC,UACD,CAEA,gCACC,UAAW,CACX,aACD,CAEA,yBACC,aACD,CAEA,QACC,WACD,CAEA,UACC,iBACD,CAEA,YACC,WACD,CAEA,cACC,iBACD,CAEA,yBACC,eACD,CAEA,WACC,eACD,CAEA,eACC,gBACD,CAEA,eACC,SACD,CAEA,mBACC,mBACD,CAEA,gBACC,yBACD,CAEA,eAGC,0BAA2B,CAE3B,iBAAkB,CADlB,eAAgB,CAHhB,YAAa,CACb,WAID,CAEA,gBACC,gBACD,CAGA,SAIC,yBAA0B,CAD1B,iBAAkB,CADlB,kBAAmB,CADnB,eAID,CAEA,2DACC,QAAS,CACT,eAAgB,CAChB,SACD,CAEA,wGAGC,kBAAmB,CACnB,cAAe,CAFf,YAAa,CADb,YAID,CAEA,sFAGC,kBAAmB,CACnB,cAAe,CAFf,YAAa,CADb,QAID,CAEA,yEAEC,eAAgB,CADhB,iBAED,CAEA,kEACC,yEACC,eACD,CACD,CAEA,0CACC,iBACD,CAEA,sCACC,qBACD,CAEA,qDACC,QAAS,CACT,QAAS,CACT,SACD,CAGA,SACC,UACD,CAE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","sources":["webpack:///./core-bundle/contao/themes/flexible/styles/fonts.css","webpack:///./core-bundle/contao/themes/flexible/styles/basic.css","webpack:///./core-bundle/contao/themes/flexible/styles/main.css"],"sourcesContent":["/* Architects Daughter (https://google-webfonts-helper.herokuapp.com/fonts/architects-daughter?subsets=latin) */\n@font-face {\n\tfont-family: \"Architects Daughter\";\n\tsrc: local(\"Architects Daughter\"),\n\t\turl(\"fonts/architects-daughter-v6-latin-regular.woff2\") format(\"woff2\"),\n\t\turl(\"fonts/architects-daughter-v6-latin-regular.woff\") format(\"woff\");\n\tfont-weight: normal;\n\tfont-style: normal;\n}\n","/* Appearance */\n:root {\n\t--text: #222;\n\t--body-bg: #eaeaec;\n\t--content-bg: #fff;\n\t--content-border: #cacacc;\n\t--black: #000;\n\t--white: #fff;\n\t--gray: #999;\n\t--green: #589b0e;\n\t--red: #c33;\n\t--blue: #006494;\n\t--orange: #f90;\n\t--contao: #f47c00;\n\t--border: #eaeaec;\n\t--nav: #d3d6da;\n\t--nav-hover: #eaedf1;\n\t--nav-bg: #0f1c26;\n\t--nav-hover-bg: #eaedf1;\n\t--nav-current: #172b3b;\n\t--nav-group: #9fa4a8;\n\t--nav-separator: #3a454d;\n\t--hover-row: #fffce1;\n\t--header-bg: #f47c00;\n\t--header-bg-hover: #e67300;\n\t--header-text: #fff;\n\t--invert-bg: #333;\n\t--invert-text: #fff;\n\t--table-header: #f7f7f8;\n\t--table-odd: #fff;\n\t--table-even: #fbfbfc;\n\t--table-nb-header: #f2f2f3;\n\t--table-nb-odd: #fff;\n\t--table-nb-even: #f7f7f8;\n\t--panel-bg: #f3f3f5;\n\t--tree-header: #f3f3f5;\n\t--tree-header-border: #dddddf;\n\t--form-text-disabled: #bbb;\n\t--form-border: #aaa;\n\t--form-border-disabled: #c8c8c8;\n\t--form-bg: #fff;\n\t--form-bg-hover: #f6f6f6;\n\t--form-bg-disabled: #f9f9f9;\n\t--form-button: #eee;\n\t--form-button-hover: #f6f6f6;\n\t--form-button-active: #aaa;\n\t--form-button-disabled: #e9e9e9;\n\t--diff-left: #ffe8e5;\n\t--diff-del: #ffc1bf;\n\t--diff-right: #e0ffe8;\n\t--diff-ins: #abf2bc;\n\t--code-bg: #f0f0f0;\n\t--checkerbox-bg: #ddd;\n\t--info: #808080;\n\t--active-bg: #fffce1;\n\t--active-border: #e7b36a;\n\t--pre-disabled: #a6a6a6;\n\t--error-bg: rgba(204, 51, 51, .15);\n\t--confirm-bg: rgba(88, 155, 14, .15);\n\t--info-bg: rgba(0, 100, 148, .15);\n\t--new-bg: rgba(224, 149, 21, .15);\n\t--progress-running: #f47c00;\n\t--progress-finished: #589b0e;\n\t--drag-bg: #a3c2db;\n\t--legend: #6a6a6c;\n\t--paste-hint: #838990;\n\t--serp-preview: #3c4043;\n\t--serp-preview-title: #1a0dab;\n\t--nested-bg: #fbfbfd;\n}\n\nhtml[data-color-scheme=\"dark\"] {\n\tcolor-scheme: dark;\n\t--text: #ddd;\n\t--body-bg: #121416;\n\t--content-bg: #1b1d21;\n\t--content-border: #414448;\n\t--black: #fff;\n\t--white: #000;\n\t--blue: #0073a8;\n\t--orange: #d68c23;\n\t--contao: #f47c00;\n\t--border: #303236;\n\t--nav-bg: #1b1d21;\n\t--nav-hover-bg: #1b325f;\n\t--nav-current: #272a30;\n\t--nav-separator: #3f3f3f;\n\t--hover-row: #1b325f;\n\t--header-bg: #292c32;\n\t--header-bg-hover: #202327;\n\t--header-text: #ddd;\n\t--invert-bg: #8f96a3;\n\t--invert-text: #222;\n\t--table-header: #232529;\n\t--table-odd: #1b1d21;\n\t--table-even: #1e2024;\n\t--table-nb-header: #292c32;\n\t--table-nb-odd: #1b1d21;\n\t--table-nb-even: #23252a;\n\t--panel-bg: #272a30;\n\t--tree-header: #272a30;\n\t--tree-header-border: #3f4146;\n\t--form-text-disabled: #666;\n\t--form-border: #44464b;\n\t--form-border-disabled: #3a3c40;\n\t--form-bg: #151619;\n\t--form-bg-hover: #1e2024;\n\t--form-bg-disabled: #1e2024;\n\t--form-button: #31333a;\n\t--form-button-hover: #383a42;\n\t--form-button-active: #777;\n\t--form-button-disabled: #26272c;\n\t--diff-left: rgba(248, 81, 73, .17);\n\t--diff-del: rgba(248, 81, 73, .4);\n\t--diff-right: rgba(46, 160, 67, .17);\n\t--diff-ins: rgba(46, 160, 67, .4);\n\t--code-bg: #30343b;\n\t--checkerbox-bg: #30343b;\n\t--info: #9095a2;\n\t--active-bg: #1b325f;\n\t--active-border: #264787;\n\t--drag-bg: #1b325f;\n\t--legend: #747b8b;\n\t--serp-preview: #bdc1c6;\n\t--serp-preview-title: #8ab4f8;\n\t--nested-bg: #1e2024;\n}\n\nhtml[data-color-scheme=\"dark\"] .color-scheme--light, .color-scheme--dark {\n\tdisplay: none;\n}\n\nhtml[data-color-scheme=\"dark\"] .color-scheme--dark, .color-scheme--light {\n\tdisplay: initial;\n}\n\n/* HTML */\nhtml {\n\tfont-size: 100%;\n\t-webkit-text-size-adjust: 100%;\n}\n\n/* General */\nheader, footer, nav, section, aside, main, article, figure, figcaption {\n\tdisplay: block;\n}\n\nbody, h1, h2, h3, h4, p, figure, blockquote, dl {\n\tmargin: 0;\n}\n\nimg {\n\tborder: 0;\n}\n\ntable {\n\tborder-spacing: 0;\n\tborder-collapse: collapse;\n\tempty-cells: show;\n}\n\nth, td {\n\ttext-align: left;\n}\n\ninput, select, label, img, a.tl_submit, .tl_select {\n\tvertical-align: middle;\n}\n\nbutton {\n\tcursor: pointer;\n}\n\nbutton[disabled] {\n\tcursor: default;\n}\n\nnav ul, nav li {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n\n/* Font */\nbody {\n\tfont-family: -apple-system, system-ui, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n\tfont-weight: 400;\n\tfont-size: .875rem;\n\tline-height: 1;\n\tcolor: var(--text);\n}\n\nh1, h2, h3, h4, h5, h6, strong, b, th {\n\tfont-weight: 600;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\tbody {\n\t\tfont-weight: 300;\n\t}\n\n\th1, h2, h3, h4, h5, h6, strong, b, th {\n\t\tfont-weight: 500;\n\t}\n}\n\npre, code, .tl_textarea.monospace {\n\tfont: 300 .75rem/1.25 SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\nh1, h2, h3, h4, h5, h6 {\n\tfont-size: 1rem;\n}\n\ninput, textarea, select, button {\n\tfont: inherit;\n\tcolor: inherit;\n\tline-height: inherit;\n}\n\ninput, select {\n\tline-height: 17px; /* see #501 and #79 */\n}\n\n@supports (display:-ms-grid) {\n\tinput, select {\n\t\tline-height: 1.1;\n\t}\n}\n\n.tl_gray {\n\tcolor: var(--gray);\n}\n\n.tl_green {\n\tcolor: var(--green);\n}\n\n.tl_red {\n\tcolor: var(--red);\n}\n\n.tl_blue {\n\tcolor: var(--blue);\n}\n\n.tl_orange {\n\tcolor: var(--orange);\n}\n\nspan.mandatory {\n\tcolor: var(--red);\n}\n\n.upper {\n\ttext-transform: uppercase;\n}\n\n/* Basic elements */\na {\n\tcolor: var(--text);\n\ttext-decoration: none;\n}\n\na:hover, a:active {\n\tcolor: var(--contao);\n}\n\nhr {\n\theight: 1px;\n\tmargin: 18px 0;\n\tborder: 0;\n\tbackground: var(--border);\n\tcolor: var(--border);\n}\n\np {\n\tmargin-bottom: 1em;\n\tpadding: 0;\n}\n\n.hidden {\n\tdisplay: none !important;\n}\n\n.unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\t-webkit-touch-callout: none;\n}\n\n/* Tables */\ntable.with-border th, table.with-border td {\n\tborder: solid var(--border);\n\tborder-width: 1px 0;\n}\n\ntable.with-border th {\n\tbackground-color: var(--table-header);\n}\n\ntable.with-padding th, table.with-padding td {\n\tpadding: 6px;\n}\n\ntable.with-zebra th {\n\tbackground-color: var(--table-nb-header);\n}\n\ntable.with-zebra tbody tr:nth-child(odd) td {\n\tbackground-color: var(--table-nb-odd);\n}\n\ntable.with-zebra tbody tr:nth-child(even) td {\n\tbackground-color: var(--table-nb-even);\n}\n\n/* Invisible elements */\n.clear {\n\tclear: both;\n\theight: 0.1px;\n\tline-height: 0.1px;\n\tfont-size: 0.1px;\n}\n\n.cf:before, .cf:after {\n\tcontent: \" \";\n\tdisplay: table;\n}\n\n.cf:after {\n\tclear: both;\n}\n\n.invisible {\n\tborder: 0;\n\tclip: rect(0 0 0 0);\n\theight: 1px;\n\tmargin: -1px;\n\toverflow: hidden;\n\tpadding: 0;\n\tposition: absolute;\n\twidth: 1px;\n}\n\n/* Widgets */\nfieldset > .widget-group {\n\tpadding: 0 15px;\n}\n\n.widget-group {\n\t--widget-col-amount: 12;\n\t--widget-gap-rows: 0;\n\t--widget-gap-cols: 0;\n\tdisplay: grid;\n\tgap: var(--widget-gap-rows) var(--widget-gap-cols);\n\tgrid-template-columns: repeat(var(--widget-col-amount), minmax(0, 1fr));\n\talign-items: center;\n}\n\n.widget-group > * {\n\t--widget-cols: var(--widget-col-amount);\n\tgrid-column-end: span var(--widget-cols);\n}\n\n.widget-group > .clr, .widget-group > .subpal {\n\tgrid-column-start: 1;\n}\n\n/* Backwards compatibility */\n:not(.widget-group) > .widget {\n\tmargin-left: 15px;\n\tmargin-right: 15px;\n\tposition: relative;\n}\n\n:not(.widget-group) > .w50 {\n\tfloat: none;\n\twidth: calc(100% - 30px);\n}\n\n:not(.widget-group) > .clr {\n\tclear: both;\n\twidth: calc(100% - 30px);\n}\n\n:not(.widget-group) > .long {\n\twidth: calc(100% - 30px); /* see #6320 */\n}\n\n:not(.widget-group) > .clr:not(.widget) {\n\twidth: 100%;\n}\n\n:not(.widget-group) > .clr:before {\n\tcontent: \"\";\n\tdisplay: table;\n}\n\n:not(.widget-group) > .m12 {\n\tmargin: 0 15px;\n}\n\n.widget {\n\tfont-size: 0;\n}\n\n.widget * {\n\tfont-size: .875rem;\n}\n\n.widget > div {\n\tfont-size: 0;\n}\n\n.widget > div > * {\n\tfont-size: .875rem;\n}\n\n.widget pre, .widget code {\n\tfont-size: .7rem;\n}\n\n.widget h3 {\n\tmin-height: 16px;\n}\n\n.widget h3 img {\n\tmargin-right: 3px;\n}\n\n.widget legend {\n\tpadding: 0;\n}\n\n.widget legend img {\n\tvertical-align: -1px;\n}\n\n.widget-captcha {\n\tdisplay: initial !important;\n}\n\n.widget p.info {\n\tmargin: 2px 0;\n\tpadding: 7px;\n\tbackground: var(--panel-bg);\n\tline-height: 1.3;\n\tborder-radius: 3px;\n}\n\n.widget picture {\n\tdisplay: contents;\n}\n\n/* Forms */\noptgroup {\n\tpadding-top: 3px;\n\tpadding-bottom: 3px;\n\tfont-style: normal;\n\tbackground: var(--form-bg);\n}\n\nfieldset.tl_checkbox_container, fieldset.tl_radio_container {\n\tborder: 0;\n\tmargin: 15px 0 0;\n\tpadding: 0;\n}\n\nfieldset.tl_checkbox_container > span, fieldset.tl_radio_container > span, .tl_checkbox_single_container > span {\n\tmargin: 2px 0;\n\tdisplay: flex;\n\talign-items: center;\n\tcolumn-gap: 3px;\n}\n\nfieldset.tl_checkbox_wizard .sortable > span, fieldset.tl_radio_container .sortable > span {\n\tmargin: 0;\n\tdisplay: flex;\n\talign-items: center;\n\tcolumn-gap: 3px;\n}\n\nfieldset.tl_checkbox_container legend, fieldset.tl_radio_container legend {\n\tmargin-bottom: 1px;\n\tfont-weight: 600;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\tfieldset.tl_checkbox_container legend, fieldset.tl_radio_container legend {\n\t\tfont-weight: 500;\n\t}\n}\n\nfieldset.tl_checkbox_container .check-all {\n\tcolor: var(--gray);\n}\n\nfieldset.tl_checkbox_container button {\n\tvertical-align: middle;\n}\n\nfieldset.checkbox_container, fieldset.radio_container {\n\tborder: 0;\n\tmargin: 0;\n\tpadding: 0;\n}\n\n/* Text fields */\n.tl_text {\n\twidth: 100%;\n}\n\n.tl_text_2, .tl_text_interval {\n\twidth: 49%;\n}\n\n.tl_text_3 {\n\twidth: 32.333%;\n}\n\n.tl_text_4 {\n\twidth: 24%;\n}\n\n.tl_textarea {\n\twidth: 100%;\n}\n\n.tl_text_unit {\n\twidth: 79%;\n}\n\n.tl_text_trbl {\n\twidth: 19%;\n}\n\n.tl_text, .tl_text_2, .tl_text_3, .tl_text_4, .tl_textarea, .tl_text_unit, .tl_text_trbl, .tl_text_interval {\n\theight: 30px;\n\tmargin: 3px 0;\n\tbox-sizing: border-box;\n\tpadding: 5px 6px 6px;\n\tborder: 1px solid var(--form-border);\n\tborder-radius: 2px;\n\tbackground-color: var(--form-bg);\n\t-moz-appearance: none;\n\t-webkit-appearance: none;\n}\n\n.tl_text[disabled], .tl_text_2[disabled], .tl_text_3[disabled], .tl_text_4[disabled], .tl_textarea[disabled], .tl_text_unit[disabled], .tl_text_trbl[disabled], .tl_text_interval[disabled] {\n\tcolor: var(--form-text-disabled);\n\tbackground-color: var(--form-bg-disabled);\n\tborder: 1px solid var(--form-border-disabled);\n\tcursor: not-allowed;\n}\n\n.tl_text[readonly], .tl_text_2[readonly], .tl_text_3[readonly], .tl_text_4[readonly], .tl_textarea[readonly], .tl_text_unit[readonly], .tl_text_trbl[readonly], .tl_text_interval[readonly] {\n\tbackground-color: var(--form-bg-disabled);\n\tborder: 1px solid var(--form-border-disabled);\n}\n\n.tl_textarea {\n\theight: 240px;\n\tpadding: 4px 6px;\n\tline-height: 1.45;\n}\n\n.tl_text_2, .tl_text_3, .tl_text_4, .tl_text_unit, .tl_text_trbl, .tl_text_interval {\n\tmargin-right: 1%;\n}\n\n.tl_text_2:last-child, .tl_text_3:last-child, .tl_text_4:last-child, .tl_text_trbl:last-child {\n\tmargin-right: 0;\n}\n\n.tl_text_field .tl_text_2 {\n\twidth: 49.5%;\n}\n\n.tl_imageSize_0 {\n\tmargin-left: 1%;\n}\n\ninput[type=\"search\"] {\n\theight: 27px;\n\tpadding-top: 0;\n\tpadding-bottom: 1px;\n}\n\ninput[type=\"search\"]::-webkit-search-decoration {\n\t-webkit-appearance: none;\n}\n\ninput[type=\"search\"]::-webkit-search-cancel-button {\n\t-webkit-appearance: none;\n\theight: 14px;\n\twidth: 14px;\n\tmargin-right: 0;\n\tbackground-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iIzc3NyI+PHBhdGggZD0iTTE5IDYuNDFMMTcuNTkgNSAxMiAxMC41OSA2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMiAxMy40MSAxNy41OSAxOSAxOSAxNy41OSAxMy40MSAxMnoiLz48L3N2Zz4=\");\n}\n\n@-moz-document url-prefix() {\n\t.tl_text::placeholder, .tl_text_2::placeholder, .tl_text_3::placeholder, .tl_text_4::placeholder, .tl_textarea::placeholder, .tl_text_unit::placeholder, .tl_text_trbl::placeholder, .tl_text_interval::placeholder {\n\t\tline-height: 18px;\n\t}\n}\n\n@media not all and (min-resolution: .001dpcm) {\n\t@supports (-webkit-appearance:none) {\n\t\t.tl_text::placeholder, .tl_text_2::placeholder, .tl_text_3::placeholder, .tl_text_4::placeholder, .tl_textarea::placeholder, .tl_text_unit::placeholder, .tl_text_trbl::placeholder, .tl_text_interval::placeholder {\n\t\t\tline-height: 16px;\n\t\t}\n\n\t\tinput[type=\"search\"] {\n\t\t\tpadding-right: 0;\n\t\t}\n\n\t\tinput[type=\"search\"]::-webkit-search-cancel-button {\n\t\t\tmargin: 7px 4px 0 0;\n\t\t}\n\t}\n}\n\n@supports (display:-ms-grid) {\n\t.tl_text, .tl_text_2, .tl_text_3, .tl_text_4, .tl_textarea, .tl_text_unit, .tl_text_trbl, .tl_text_interval {\n\t\tpadding: 4px 6px 5px;\n\t}\n}\n\n/* Select menus */\nselect {\n\ttext-transform: none;\n\t-moz-appearance: none;\n\t-webkit-appearance: none;\n}\n\nselect::-ms-expand {\n\tdisplay: none;\n}\n\nselect[multiple] {\n\theight: auto;\n}\n\n.tl_select, .tl_mselect, .tl_select_column {\n\twidth: 100%;\n}\n\n.tl_select_unit {\n\twidth: 20%;\n}\n\n.tl_select_interval {\n\twidth: 50%;\n}\n\n.tl_select, .tl_mselect, .tl_select_column, .tl_select_unit, .tl_select_interval {\n\theight: 30px;\n\tmargin: 3px 0;\n\tbox-sizing: border-box;\n\tborder: 1px solid var(--form-border);\n\tpadding: 5px 22px 6px 6px;\n\tborder-radius: 2px;\n\tbackground: var(--form-bg) url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDUwMCA1MDAiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMzEuNTIzIiB5MT0iNDIuNjMiIHgyPSIzNjguNDc4IiB5Mj0iMjc5LjU4NCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjYjNiM2IzIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjOTk5Ii8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI2EpIiBkPSJNMjUwIDM5Ni42NjZjLTEuMTU1IDAtNC4xMS0xLjgzMi03LjExMy02Ljc1bC0xNjkuNi0yNzcuNDU1Yy0yLjUxNy00LjExNC0zLjE5LTYuOTgtMy4yOC04LjMxNC44MjctLjMzIDIuNTY1LS44MTIgNS42MjctLjgxMmgzNDguNzMzYzMuMDYzIDAgNC43OTguNDgyIDUuNjI3LjgxMi0uMDkgMS4zMzQtLjc2NiA0LjItMy4yOCA4LjMxNWwtMTY5LjYgMjc3LjQ1N2MtMy4wMDUgNC45MTctNS45NiA2Ljc1LTcuMTE0IDYuNzV6Ii8+PC9zdmc+\") right -16px top 3px no-repeat;\n\tbackground-origin: content-box;\n\tcursor: pointer;\n}\n\n.tl_select[disabled], .tl_mselect[disabled], .tl_select_column[disabled], .tl_select_unit[disabled], .tl_select_interval[disabled],\n.tl_select[readonly], .tl_mselect[readonly], .tl_select_column[readonly], .tl_select_unit[readonly], .tl_select_interval[readonly] {\n\tcolor: var(--form-text-disabled);\n\tbackground-color: var(--form-bg-disabled);\n\tborder: 1px solid var(--form-border-disabled);\n\tcursor: not-allowed;\n}\n\n.tl_select[multiple], .tl_mselect[multiple], .tl_select_column[multiple], .tl_select_unit[multiple], .tl_select_interval[multiple] {\n\tbackground-image: none;\n}\n\n@supports (display:-ms-grid) {\n\t.tl_select, .tl_mselect, .tl_select_column, .tl_select_unit, .tl_select_interval {\n\t\tpadding: 5px 18px 5px 2px;\n\t}\n}\n\n/* Checkboxes */\n.tl_checkbox {\n\tmargin: 0 1px 0 0;\n}\n\n.tl_tree_checkbox {\n\tmargin: 1px 1px 1px 0;\n}\n\n.tl_checkbox_single_container {\n\tmargin: 16px 0 0;\n}\n\n.tl_checkbox_single_container label {\n\tfont-weight: 600;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.tl_checkbox_single_container label {\n\t\tfont-weight: 500;\n\t}\n}\n\n/* Grouped checkboxes */\n.checkbox_toggler_first {\n\tmargin-top: 2px;\n}\n\n.checkbox_toggler, .checkbox_toggler_first {\n\tfont-weight: 600;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.checkbox_toggler, .checkbox_toggler_first {\n\t\tfont-weight: 500;\n\t}\n}\n\n.checkbox_toggler img, .checkbox_toggler_first img {\n\tposition: relative;\n\ttop: -1px;\n\tmargin-right: 2px;\n}\n\n.checkbox_options {\n\tmargin: 0 0 3px 21px !important;\n}\n\n.tl_checkbox_container .checkbox_options:last-of-type {\n\tmargin-bottom: 0 !important;\n}\n\n/* Radio buttons */\n.tl_radio {\n\tmargin: 0 1px 0 0;\n}\n\n.tl_tree_radio {\n\tmargin: 1px 1px 1px 0;\n}\n\n/* Radio table */\n.tl_radio_table {\n\tmargin-top: 3px;\n}\n\n.tl_radio_table td {\n\tpadding: 0 24px 0 0;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tcolumn-gap: 3px;\n}\n\n/* Upload fields */\n.tl_upload_field {\n\tmargin: 1px 0;\n}\n\n/* Submit buttons */\n.tl_submit {\n\theight: 30px;\n\tpadding: 7px 12px;\n\tborder: 1px solid var(--form-border);\n\tborder-radius: 2px;\n\tbox-sizing: border-box;\n\tcursor: pointer;\n\tbackground: var(--form-button);\n\ttransition: background .2s ease;\n}\n\n.tl_submit:hover {\n\tcolor: inherit;\n\tbackground-color: var(--form-button-hover);\n}\n\n.tl_submit:active {\n\tcolor: var(--form-button-active);\n}\n\n.tl_submit:disabled {\n\tcolor: var(--gray);\n\tbackground: var(--form-button-disabled) !important;\n\tcursor: not-allowed;\n}\n\n.tl_panel .tl_submit, .tl_version_panel .tl_submit, .tl_formbody_submit .tl_submit {\n\tbackground: var(--form-bg);\n}\n\n.tl_panel .tl_submit:hover, .tl_version_panel .tl_submit:hover, .tl_formbody_submit .tl_submit:hover {\n\tbackground: var(--form-bg-hover);\n}\n\na.tl_submit {\n\tdisplay: inline-block;\n}\n\n/* Split buttons */\n.split-button {\n\tdisplay: inline-block;\n\tposition: relative;\n\tz-index: 1;\n}\n\n.split-button ul, .split-button li {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n/* Placeholders */\n::-moz-placeholder {\n\tpadding-top: 1px;\n}\n\n::-webkit-input-placeholder {\n\tpadding-top: 1px;\n}\n\n.wizard > a {\n\tposition: relative;\n\ttop: -2px;\n\tvertical-align: middle;\n}\n\n.wizard > .image-button {\n\tpadding: 0;\n\tborder: 0;\n\tbackground: none;\n\tvertical-align: middle;\n}\n\n.wizard .tl_text, .wizard .tl_select, .wizard .tl_image_size {\n\twidth: calc(100% - 24px);\n}\n\n.wizard .tl_text_2 {\n\twidth: 45%;\n}\n\n.wizard .tl_image_size {\n\tdisplay: inline-block;\n}\n\n.wizard img {\n\tmargin-left: 4px;\n}\n\n.wizard h3 img {\n\tmargin-left: 0;\n}\n\n.long .tl_text, .long .tl_select {\n\twidth: 100%;\n}\n\n.subpal {\n\tclear: both;\n}\n\n.inline div {\n\tdisplay: inline;\n}\n\n.autoheight {\n\theight: auto;\n}\n\n/* Tips */\n.tl_tip {\n\theight: 15px;\n\toverflow: hidden;\n\tcursor: help;\n}\n\n.tip {\n\tposition: relative;\n\tmax-width: 80vw;\n\tpadding: 6px 9px;\n\tborder-radius: 2px;\n\tbackground: var(--invert-bg);\n\tz-index: 99;\n}\n\n.tip div {\n\tline-height: 1.3;\n}\n\n.tip div, .tip a, .tip span {\n\tcolor: var(--invert-text);\n}\n\n.tip:before {\n\tcontent: \"\";\n\theight: 6px;\n\tposition: absolute;\n\ttop: -13px;\n\tleft: 9px;\n\tborder-left: 7px solid transparent;\n\tborder-right: 7px solid transparent;\n\tborder-bottom: 7px solid var(--invert-bg);\n}\n\n.tip--rtl:before {\n\tleft: auto;\n\tright: 9px;\n}\n\n/* Row highlighting */\n.hover-div:hover, .hover-row:hover td, .hover-div:hover .limit_toggler, .hover-row:hover .limit_toggler {\n\tbackground-color: var(--hover-row) !important;\n}\n\n/* Badge */\n.badge-title {\n\tfloat: right;\n\tmargin-left: 8px;\n\tmargin-top: -8px;\n\tborder-radius: 8px;\n\tpadding: 2px 5px;\n\tbackground: var(--invert-bg);\n\tcolor: var(--invert-text);\n\tfont-size: .75rem;\n\tfont-weight: 600;\n}\n\n/* Tablets */\n@media (min-width: 768px) {\n\t.widget-group {\n\t\t--widget-gap-cols: 30px;\n\t}\n\n\t.w16, .w25, .w33, .w50, .w75 {\n\t\t--widget-cols: 6;\n\t}\n\n\t.tip {\n\t\tmax-width: 320px;\n\t}\n\n\t/* Backwards compatibility */\n\t:not(.widget-group) > .m12 {\n\t\tmargin: 0 15px;\n\t\tpadding: 16px 0;\n\t}\n\n\t:not(.widget-group) > .w50 {\n\t\twidth: calc(50% - 30px);\n\t\tfloat: left;\n\t\tmin-height: 80px;\n\t}\n\n\t.nogrid :not(.widget-group) > :is(.w25, .w33, .w50, .w66, .w75) {\n\t\tfloat: none;\n\t}\n\n\t:not(.widget-group) > .cbx {\n\t\tmin-height: 46px;\n\t}\n\n\t:not(.widget-group) > .cbx.m12 {\n\t\tmin-height: 80px;\n\t\tbox-sizing: border-box;\n\t}\n}\n\n/* Large screens */\n@media (min-width: 1280px) {\n\t.w16 {\n\t\t--widget-cols: 2;\n\t}\n\n\t.w25 {\n\t\t--widget-cols: 3;\n\t}\n\n\t.w33 {\n\t\t--widget-cols: 4;\n\t}\n\n\t.w50 {\n\t\t--widget-cols: 6;\n\t}\n\n\t.w75 {\n\t\t--widget-cols: 9;\n\t}\n\n\t#sbtog {\n\t\tdisplay: none;\n\t}\n\n\t.split-button ul {\n\t\tdisplay: inline-flex;\n\t\tclip: initial;\n\t\theight: auto;\n\t\tmargin: 0 0 0 -4px;\n\t\toverflow: initial;\n\t\tposition: initial;\n\t\twidth: auto;\n\t}\n\n\t.split-button li {\n\t\tmargin-left: 4px;\n\t}\n}\n\n/* Split button */\n@media (max-width: 1279.98px) {\n\t.split-button {\n\t\tdisplay: inline-flex;\n\t}\n\n\t.split-button ul {\n\t\tposition: absolute;\n\t\tright: 0;\n\t\tbottom: 20px;\n\t\tmin-width: 100%;\n\t\tbackground: var(--form-bg);\n\t\tborder: 1px solid var(--form-border);\n\t\tborder-radius: 2px;\n\t\tbox-sizing: border-box;\n\t\tpadding: 3px 0;\n\t\tmargin-bottom: 1em;\n\t}\n\n\t.split-button ul button {\n\t\tborder: 0;\n\t\twidth: 100%;\n\t\ttext-align: left;\n\t\twhite-space: nowrap;\n\t}\n\n\t.split-button ul .tl_submit {\n\t\tmargin-top: 0;\n\t\tmargin-bottom: 0;\n\t\tbackground: var(--form-bg);\n\t}\n\n\t.split-button ul .tl_submit:hover {\n\t\tbackground: var(--form-button-hover);\n\t}\n\n\t.split-button ul:before {\n\t\tcontent: \"\";\n\t\tdisplay: block;\n\t\theight: 0;\n\t\twidth: 0;\n\t\tposition: absolute;\n\t\tright: 4px;\n\t\tbottom: -12px;\n\t\tz-index: 89;\n\t\tborder: 6px inset transparent;\n\t\tborder-top: 6px solid var(--form-bg);\n\t}\n\n\t.split-button ul:after {\n\t\tcontent: \"\";\n\t\tdisplay: block;\n\t\theight: 0;\n\t\twidth: 0;\n\t\tposition: absolute;\n\t\tright: 3px;\n\t\tbottom: -14px;\n\t\tz-index: 88;\n\t\tborder: 7px inset transparent;\n\t\tborder-top: 7px solid var(--form-border);\n\t}\n\n\t.split-button > button[type=\"submit\"] {\n\t\tposition: relative;\n\t\tborder-radius: 2px 0 0 2px;\n\t}\n\n\t.split-button > button[type=\"button\"] {\n\t\theight: 30px;\n\t\tmargin: 2px 0;\n\t\tpadding: 7px 4px;\n\t\tbackground: var(--form-bg);\n\t\tborder: 1px solid var(--form-border);\n\t\tborder-left: 0;\n\t\tborder-radius: 0 2px 2px 0;\n\t\tbox-sizing: border-box;\n\t\ttransition: background .2s ease;\n\t}\n\n\t.split-button > button[type=\"button\"].active, .split-button > button[type=\"button\"]:hover {\n\t\tbackground: var(--form-button-hover);\n\t}\n\n\t.split-button > button[type=\"button\"]:focus {\n\t\toutline: none;\n\t}\n}\n","@import 'fonts.css';\n@import 'basic.css';\n\n/* Icons */\n:root {\n\t--icon-logo: url(\"icons/logo.svg\");\n\t--icon-profile: url(\"icons/profile_small.svg\");\n\t--icon-security: url(\"icons/shield_small.svg\");\n\t--icon-favorites: url(\"icons/favorites_small.svg\");\n\t--icon-logout: url(\"icons/exit.svg\");\n\t--icon-toggle-all: url(\"icons/chevron-right.svg\");\n\t--icon-alert: url(\"icons/alert.svg\");\n\t--icon-favorite: url(\"icons/favorite.svg\");\n\t--icon-favorite--active: url(\"icons/favorite_active.svg\");\n\t--icon-manual: url(\"icons/manual.svg\");\n\t--icon-color-scheme: url(\"icons/color_scheme.svg\");\n\t--icon-arrow-left: url(\"icons/arrow_left.svg\");\n\t--icon-arrow-right: url(\"icons/arrow_right.svg\");\n\t--icon-visible: url(\"icons/visible.svg\");\n\t--icon-invisible: url(\"icons/invisible.svg\");\n\t--icon-loading: url(\"icons/loading.svg\");\n}\n\nhtml[data-color-scheme=\"dark\"] {\n\t--icon-logo: url(\"icons/logo--dark.svg\");\n\t--icon-profile: url(\"icons/profile_small--dark.svg\");\n\t--icon-security: url(\"icons/shield_small--dark.svg\");\n\t--icon-favorites: url(\"icons/favorites_small--dark.svg\");\n\t--icon-logout: url(\"icons/exit--dark.svg\");\n\t--icon-toggle-all: url(\"icons/chevron-right--dark.svg\");\n\t--icon-alert: url(\"icons/alert--dark.svg\");\n\t--icon-favorite: url(\"icons/favorite--dark.svg\");\n\t--icon-favorite--active: url(\"icons/favorite_active--dark.svg\");\n\t--icon-manual: url(\"icons/manual--dark.svg\");\n\t--icon-color-scheme: url(\"icons/color_scheme--dark.svg\");\n\t--icon-arrow-left: url(\"icons/arrow_left--dark.svg\");\n\t--icon-arrow-right: url(\"icons/arrow_right--dark.svg\");\n\t--icon-visible: url(\"icons/visible--dark.svg\");\n\t--icon-invisible: url(\"icons/invisible--dark.svg\");\n\t--icon-loading: url(\"icons/loading--dark.svg\");\n}\n\n/* Account for the jump links bar */\nhtml {\n\tscroll-padding-top: 36px;\n\tscroll-behavior: smooth;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n\thtml {\n\t\tscroll-behavior: auto;\n\t}\n}\n\n/* Body */\nbody {\n\tbackground: var(--body-bg);\n\toverflow-y: scroll;\n}\n\nbody.popup {\n\tbackground: var(--content-bg);\n}\n\n/* Header */\n#header {\n\tmin-height: 40px;\n\ttext-align: left;\n\tbackground: var(--header-bg);\n}\n\n#header h1 {\n\tposition: absolute;\n}\n\n#header h1 a {\n\tdisplay: block;\n\theight: 16px;\n\tpadding: 12px 12px 12px 42px;\n\tbackground: var(--icon-logo) no-repeat 10px center;\n\tfont-weight: 400;\n}\n\n#header h1 a .app-title {\n\tfont-size: 17px;\n\tcolor: var(--header-text);\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t#header h1 a {\n\t\tfont-weight: 300;\n\t}\n}\n\n#tmenu {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n}\n\n#tmenu li {\n\tposition: relative;\n}\n\n#tmenu a, #tmenu .profile button {\n\tmargin: 0;\n\tpadding: 13px 12px;\n\tdisplay: inline-block;\n}\n\n#tmenu sup {\n\tposition: absolute;\n\ttop: 5px;\n\tleft: 20px;\n\tfont-size: .6rem;\n\tcolor: var(--header-bg);\n\tbackground: var(--header-text);\n\tpadding: 2px;\n\tborder-radius: 2px;\n\ttext-indent: 0;\n\tfont-weight: 400;\n}\n\n#tmenu .burger {\n\tdisplay: none;\n}\n\n#tmenu .burger button {\n\tpadding: 8px 10px 9px;\n\tbackground: none;\n\tborder: 0;\n}\n\n#tmenu .burger svg {\n\tmargin-bottom: -1px;\n\tvertical-align: middle;\n}\n\n#tmenu .profile button {\n\tposition: relative;\n\tcursor: pointer;\n\tfont-size: .875rem;\n\tfont-weight: 400;\n\tborder: none;\n\tpadding-right: 26px;\n\tbackground: url(\"icons/chevron-down.svg\") right 9px top 14px no-repeat;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t#tmenu .profile button {\n\t\tfont-weight: 300;\n\t}\n}\n\n#tmenu a, #tmenu .profile button, #tmenu .burger button {\n\tcolor: var(--header-text);\n\ttransition: background-color .3s ease;\n}\n\n#tmenu a:hover, #tmenu a.hover, #tmenu li:hover .profile button, #tmenu .active .profile button, #tmenu .burger button:hover {\n\tbackground-color: var(--header-bg-hover);\n}\n\n#tmenu ul.menu_level_1 {\n\tmin-width: 150px;\n\tposition: absolute;\n\tright: 6px;\n\tmargin-top: 5px;\n\tbackground: var(--content-bg);\n\tborder: 1px solid var(--content-border);\n\tbox-shadow: 0 1px 6px rgba(0,0,0,.2);\n\tz-index: 4; /* Above .jump-targets */\n\tcolor: var(--text);\n\ttext-align: left;\n\topacity: 0;\n\tvisibility: hidden;\n\ttransition: opacity .3s ease, visibility .3s ease;\n}\n\n#tmenu .active ul.menu_level_1 {\n\topacity: 1;\n\tvisibility: visible;\n}\n\n#tmenu ul.menu_level_1 li a {\n\tdisplay: block;\n\tcolor: inherit;\n\tpadding: 6px 20px 6px 40px;\n\twhite-space: nowrap;\n}\n\n#tmenu ul.menu_level_1 li a:hover {\n\tbackground-color: var(--nav-hover-bg);\n}\n\n#tmenu ul.menu_level_1 .info {\n\tcolor: var(--info);\n\tpadding: 15px 20px;\n\tborder-bottom: 1px solid var(--border);\n\tline-height: 1.4;\n\tmargin-bottom: 9px;\n\twhite-space: nowrap;\n}\n\n#tmenu ul.menu_level_1 strong {\n\tcolor: var(--text);\n\tdisplay: block;\n}\n\n#tmenu ul.menu_level_1:before {\n\tcontent: \"\";\n\tdisplay: block;\n\twidth: 0;\n\theight: 0;\n\tposition: absolute;\n\tright: 9px;\n\ttop: -14px;\n\tborder: 7px solid transparent;\n\tborder-bottom-color: var(--content-bg);\n}\n\n#tmenu ul.menu_level_1:after {\n\tcontent: \"\";\n\tdisplay: block;\n\twidth: 9px;\n\theight: 9px;\n\tposition: absolute;\n\ttop: -6px;\n\tright: 11px;\n\tborder-top: 1px solid var(--content-border);\n\tborder-right: 1px solid var(--content-border);\n\ttransform: rotateZ(-45deg);\n}\n\n#tmenu ul.menu_level_1 .logout {\n\tmargin-top: 9px;\n\tpadding: 6px 0;\n\tborder-top: 1px solid var(--border);\n}\n\n#tmenu .icon-alert, #tmenu .icon-favorite, #tmenu .icon-manual, #tmenu .icon-color-scheme {\n\twidth: 16px;\n\tmargin-bottom: -2px;\n\tposition: relative;\n\toverflow: hidden;\n\twhite-space: nowrap;\n\ttext-indent: 28px; /* 16px width + 12px padding */\n}\n\n#tmenu .icon-alert {\n\tbackground: var(--icon-alert) center center no-repeat;\n}\n\n#tmenu .icon-favorite {\n\tbackground: var(--icon-favorite) center center no-repeat;\n}\n\n#tmenu .icon-favorite--active {\n\tbackground: var(--icon-favorite--active) center center no-repeat;\n}\n\n#tmenu .icon-manual {\n\tbackground: var(--icon-manual) center center no-repeat;\n}\n\n#tmenu .icon-color-scheme {\n\tbackground: var(--icon-color-scheme) center center no-repeat;\n}\n\n#tmenu .icon-profile {\n\tbackground: var(--icon-profile) 20px center no-repeat;\n}\n\n#tmenu .icon-security {\n\tbackground: var(--icon-security) 20px center no-repeat;\n}\n\n#tmenu .icon-favorites {\n\tbackground: var(--icon-favorites) 20px center no-repeat;\n}\n\n#tmenu .icon-logout {\n\tbackground: var(--icon-logout) 20px center no-repeat;\n}\n\n/* Container */\n#container {\n\tdisplay: flex;\n\tmin-height: calc(100vh - 40px);\n}\n\n.popup #container {\n\tpadding: 0;\n\twidth: auto;\n\tmin-height: 0;\n\tmax-width: none;\n}\n\n/* Left */\n#left {\n\twidth: 220px;\n\tbackground: var(--nav-bg);\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n#left .version {\n\tmargin-top: 4em;\n\tpadding: 15px 18px;\n\tfont-size: .75rem;\n\tline-height: 1.4;\n}\n\n#left .version, #left .version a {\n\tcolor: var(--nav-group);\n}\n\n/* Main */\n#main {\n\twidth: calc(100% - 220px);\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.popup #main {\n\tfloat: none;\n\twidth: auto;\n\tmax-width: none;\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tdisplay: initial;\n}\n\n#main .content {\n\tmargin: 0 15px 15px;\n}\n\n#main .content {\n\tbackground: var(--content-bg);\n\tborder: 1px solid var(--content-border);\n}\n\n.popup #main .content {\n\tmargin: 0;\n\tborder: 0;\n}\n\n/* Navigation */\n#tl_navigation {\n\tflex-grow: 1;\n}\n\n#tl_navigation .menu_level_0 {\n\tpadding-top: 20px;\n}\n\n#tl_navigation .menu_level_0 > li:after {\n\tcontent: \"\";\n\twidth: calc(100% - 30px);\n\theight: 1px;\n\tdisplay: block;\n\tmargin: 15px auto;\n\tbackground: var(--nav-separator);\n}\n\n#tl_navigation .menu_level_0 > li.last:after {\n\tdisplay: none;\n}\n\n#tl_navigation .menu_level_0 a[class^=\"group-\"] {\n\tdisplay: block;\n\tmargin: 0 15px;\n\tpadding: 3px 3px 3px 22px;\n\tcolor: var(--nav-group);\n\tfont-size: .75rem;\n\ttext-transform: uppercase;\n\tfont-weight: 500;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t#tl_navigation .menu_level_0 a[class^=\"group-\"] {\n\t\tfont-weight: 400;\n\t}\n}\n\n#tl_navigation .group-favorites {\n\tbackground: url(\"icons/favorites_group.svg\") 3px 2px no-repeat;\n}\n\n#tl_navigation .group-content {\n\tbackground: url(\"icons/content.svg\") 3px 2px no-repeat;\n}\n\n#tl_navigation .group-design {\n\tbackground: url(\"icons/monitor.svg\") 3px 2px no-repeat;\n}\n\n#tl_navigation .group-accounts {\n\tbackground: url(\"icons/person.svg\") 3px 2px no-repeat;\n}\n\n#tl_navigation .group-system {\n\tbackground: url(\"icons/wrench.svg\") 3px 2px no-repeat;\n}\n\n#tl_navigation .menu_level_1 {\n\tpadding-top: 5px;\n}\n\n#tl_navigation [class^=\"menu_level_\"] a {\n\tdisplay: block;\n\tpadding: 5px 33px 5px 37px;\n\tfont-weight: 400;\n\tcolor: var(--nav);\n\ttransition: color .2s ease;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t#tl_navigation [class^=\"menu_level_\"] a {\n\t\tfont-weight: 300;\n\t}\n}\n\n#tl_navigation [class^=\"menu_level_\"] > li.current > a {\n\tbackground-color: var(--nav-current);\n\tborder-left: 4px solid var(--contao);\n}\n\n#tl_navigation .menu_level_1 > li.current > a {\n\tpadding-left: 33px;\n}\n\n#tl_navigation .menu_level_2 a {\n\tpadding-left: 49px;\n}\n\n#tl_navigation .menu_level_2 > li.current > a {\n\tpadding-left: 45px;\n}\n\n#tl_navigation .menu_level_3 a {\n\tpadding-left: 61px;\n}\n\n#tl_navigation .menu_level_3 > li.current > a {\n\tpadding-left: 57px;\n}\n\n#tl_navigation .menu_level_4 a {\n\tpadding-left: 73px;\n}\n\n#tl_navigation .menu_level_4 > li.current > a {\n\tpadding-left: 69px;\n}\n\n#tl_navigation .menu_level_5 a {\n\tpadding-left: 85px;\n}\n\n#tl_navigation .menu_level_5 > li.current > a {\n\tpadding-left: 81px;\n}\n\n#tl_navigation .menu_level_2 a {\n\tfont-size: .75rem;\n}\n\n#tl_navigation .menu_level_1 li.has-children:not(.first) {\n\tpadding-top: 5px;\n}\n\n#tl_navigation .menu_level_1 li.has-children:not(.last) {\n\tpadding-bottom: 5px;\n}\n\n#tl_navigation .menu_level_1 a:hover, #tl_navigation .menu_level_1 li.current > a {\n\tcolor: var(--nav-hover);\n\tbackground-color: var(--nav-current);\n}\n\n#tl_navigation .collapsed .menu_level_1 {\n\tdisplay: none;\n}\n\n/* Buttons */\n#tl_buttons {\n\tmargin: 0;\n\tpadding: 9px 15px;\n\ttext-align: right;\n}\n\n.toggleWrap {\n\tcursor: pointer;\n}\n\n.opacity {\n\t-moz-opacity: .8;\n\topacity: .8;\n}\n\n/* Data container */\n#main_headline {\n\tmargin: 18px 16px;\n\tfont-size: 1.1rem;\n\tdisplay: flex;\n}\n\n.popup #main_headline {\n\tdisplay: none;\n}\n\n#main_headline span {\n\tdisplay: inline-block;\n\tmax-width: max-content;\n\twhite-space: nowrap;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\tline-height: 22px;\n\tflex: 1 0 0;\n}\n\n#main_headline span:nth-child(even) {\n\tfont-weight: 400;\n}\n\n#main_headline span + span::before {\n\tcontent: \"\\A0› \"; /* Non-breaking-space to prevent collapsing whitespace */\n\tfont-weight: 600;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t#main_headline span:nth-child(even) {\n\t\tfont-weight: 300;\n\t}\n\n\t#main_headline span + span::before {\n\t\tfont-weight: 500;\n\t}\n}\n\nh2.sub_headline {\n\tmargin: 3px 18px;\n\tpadding: 7px 0;\n}\n\n.label-info {\n\tcolor: var(--gray);\n\tpadding-left: 3px;\n}\n\n.label-date {\n\tcolor: var(--gray);\n\tpadding-right: 3px;\n}\n\n.tl_gerror {\n\tmargin: 12px;\n\tpadding: 3px 0 3px 22px;\n\tbackground: url(\"icons/error.svg\") no-repeat left center;\n}\n\n.tl_error, .tl_confirm, .tl_info, .tl_new {\n\tmargin: 0 0 1px;\n\tpadding: 11px 18px 11px 32px;\n\tline-height: 1.3;\n}\n\n.tl_error {\n\tbackground: var(--error-bg) url(\"icons/error.svg\") no-repeat 11px 12px;\n}\n\n.tl_confirm {\n\tbackground: var(--confirm-bg) url(\"icons/ok.svg\") no-repeat 11px 12px;\n}\n\n.tl_info {\n\tbackground: var(--info-bg) url(\"icons/show.svg\") no-repeat 11px 12px;\n}\n\n.tl_new {\n\tbackground: var(--new-bg) url(\"icons/featured.svg\") no-repeat 11px 12px;\n}\n\n.tl_gerror, .tl_gerror a, .tl_error, .tl_error a {\n\tcolor: var(--red);\n}\n\n.tl_gerror a, .tl_error a {\n\ttext-decoration: underline;\n}\n\n.tl_confirm, .tl_confirm a {\n\tcolor: var(--green);\n}\n\n.tl_info, .tl_info a {\n\tcolor: var(--blue);\n}\n\n.tl_new, .tl_new a {\n\tcolor: var(--orange);\n}\n\n.widget .tl_error, .widget .tl_confirm, .widget .tl_info, .widget .tl_new {\n\tpadding: 8px 10px 8px 30px;\n\tbackground-position: 9px 9px;\n}\n\n.tl_error strong, .tl_confirm strong, .tl_info strong, .tl_new strong {\n\tcolor: inherit;\n}\n\n/* Filter */\n.tl_panel, .tl_version_panel {\n\tpadding: 4px 12px;\n\tbackground: var(--panel-bg);\n\tborder-bottom: 1px solid var(--content-border);\n\ttext-align: right;\n}\n\n.tl_version_panel {\n\tpadding: 8px 12px;\n}\n\n.tl_panel .tl_select {\n\ttext-align: left;\n}\n\n.tl_version_panel .tl_select {\n\tmax-width: 280px;\n}\n\n.tl_version_panel .tl_submit {\n\tvertical-align: middle;\n}\n\n.tl_version_panel .tl_formbody {\n\tposition: relative;\n}\n\n.tl_img_submit {\n\twidth: 16px;\n\theight: 16px;\n\tborder: 0;\n\tmargin: 0;\n\tpadding: 0;\n\ttext-indent: 16px; /* 16px width */\n\twhite-space: nowrap;\n\toverflow: hidden;\n\tposition: relative;\n\ttop: 9px;\n\tcursor: pointer;\n}\n\n.filter_apply {\n\tbackground: url(\"icons/filter-apply.svg\") center center no-repeat;\n}\n\n.filter_reset {\n\tbackground: url(\"icons/filter-reset.svg\") center center no-repeat;\n}\n\n.tl_subpanel {\n\tfloat: right;\n\tletter-spacing: -.31em;\n}\n\n.tl_subpanel * {\n\tletter-spacing: normal;\n}\n\n.tl_subpanel strong, .tl_search span {\n\tvertical-align: middle;\n}\n\n.tl_submit_panel {\n\tmin-width: 32px;\n\tpadding-left: 6px;\n\tpadding-right: 3px;\n}\n\n.tl_panel .active, .tl_panel_bottom .active, #search .active {\n\tbackground-color: var(--active-bg);\n}\n\n.tl_submit_panel button + button {\n\tmargin-left: 1px;\n}\n\n.tl_filter {\n\twidth: 100%;\n}\n\n.tl_filter .tl_select {\n\tmax-width: 14.65%;\n\tmargin-left: 3px;\n}\n\n.tl_submit_panel + .tl_filter {\n\twidth: 86%;\n}\n\n.tl_limit {\n\twidth: 22%;\n}\n\n.tl_limit .tl_select {\n\twidth: 52%;\n\tmargin-left: 3px;\n}\n\n.tl_search {\n\twidth: 40%;\n}\n\n.tl_search .tl_select {\n\twidth: 38%;\n\tmargin-left: 3px;\n\tmargin-right: 1%;\n}\n\n.tl_search .tl_text {\n\twidth: 30%;\n\tmargin-left: 1%;\n\t-webkit-appearance: textfield;\n\tbox-sizing: content-box;\n}\n\n.tl_sorting {\n\twidth: 26%;\n}\n\n.tl_sorting .tl_select {\n\twidth: 60%;\n\tmargin-left: 1%;\n}\n\n/* Jump targets */\n.jump-targets {\n\tmin-height: 30px;\n\tpadding-top: 1px;\n\tbackground: var(--panel-bg);\n\tborder-bottom: 1px solid var(--content-border);\n\tposition: sticky;\n\ttop: 0;\n\tz-index: 3; /* Above TinyMCE */\n}\n\n.jump-targets .inner {\n\toverflow-x: scroll;\n\tscrollbar-width: none;\n}\n\n.jump-targets .inner::-webkit-scrollbar {\n\tdisplay: none;\n}\n\n.jump-targets ul {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n\twhite-space: nowrap;\n}\n\n.jump-targets li {\n\tdisplay: inline-block;\n\tpadding: 9px 10px;\n\twhite-space: nowrap;\n\tfont-size: .75rem;\n}\n\n.jump-targets button {\n\tpadding: 0;\n\tbackground: none;\n\tborder: none;\n}\n\n.jump-targets:before, .jump-targets:after {\n\tcontent: \"\";\n\tdisplay: block;\n\twidth: 10px;\n\theight: 100%;\n\tposition: absolute;\n\ttop: 0;\n}\n\n.jump-targets:before {\n\tbackground: linear-gradient(-90deg, transparent 0, var(--panel-bg) 50%);\n}\n\n.jump-targets:after {\n\tright: 0;\n\tbackground: linear-gradient(90deg, transparent 0, var(--panel-bg) 50%);\n}\n\n/* Boxes */\n.tl_xpl {\n\tpadding: 0 18px;\n}\n\n.tl_tbox, .tl_box {\n\tpadding: 12px 0 25px;\n\tborder-bottom: 1px solid var(--border);\n}\n\n.tl_tbox:last-child, .tl_box:last-child {\n\tborder-bottom: 0;\n}\n\n.tl_box h3, .tl_tbox h3, .tl_xpl h3 {\n\tmargin: 0;\n\tpadding-top: 13px;\n\theight: 16px;\n\tfont-size: .875rem;\n}\n\n.tl_box h4, .tl_tbox h4 {\n\tmargin: 6px 0 0;\n\tpadding: 0;\n\tfont-size: .875rem;\n}\n\n.tl_tbox.theme_import {\n\tpadding-left: 15px;\n\tpadding-right: 15px;\n}\n\n.tl_tbox.theme_import h3, .tl_tbox.theme_import h4, .tl_tbox.theme_import p {\n\tline-height: 1.3;\n}\n\n.tl_help, .tl_help * {\n\tfont-size: .75rem;\n}\n\n.tl_help, .tl_help a {\n\tmargin-bottom: 0;\n\tline-height: 1.2;\n\tcolor: var(--info);\n}\n\n.tl_help a:hover, .tl_help a:focus, .tl_help a:active {\n\ttext-decoration: underline;\n}\n\n#tl_buttons + .tl_edit_form .tl_formbody_edit {\n\tborder-top: 1px solid var(--border);\n}\n\n.tl_formbody_submit {\n\tborder-top: 1px solid var(--content-border);\n\tposition: sticky;\n\tbottom: 0;\n\tz-index: 3; /* Above TinyMCE */\n}\n\n.tl_submit_container {\n\tpadding: 8px 12px;\n\tbackground: var(--panel-bg);\n}\n\n.tl_submit_container .tl_submit {\n\tmargin: 2px 0;\n}\n\n/* Maintenance */\n.maintenance_active {\n\tpadding-top: 12px;\n}\n\n.maintenance_active, .maintenance_inactive {\n\tborder-top: 1px solid var(--border);\n}\n\n.maintenance_inactive .tl_tbox {\n\tborder: 0 !important;\n\tpadding: 6px 15px 14px;\n}\n\n.maintenance_inactive .tl_message {\n\tmargin: 0 15px 3px;\n}\n\n.maintenance_inactive h2.sub_headline {\n\tmargin: 16px 15px 3px;\n}\n\n.maintenance_inactive .tl_submit_container {\n\tbackground: none;\n\tpadding: 0 15px 24px;\n\tborder: 0;\n}\n\n/* Crawler */\n@keyframes crawl-progress-bar-stripes {\n\t0% {\n\t\tbackground-position-x: 1rem;\n\t}\n}\n\n#tl_crawl .tl_message {\n\tmargin-bottom: 24px;\n}\n\n#tl_crawl .tl_message > p {\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n\tbackground-color: transparent;\n\tbackground-position-y: center;\n}\n\n#tl_crawl .tl_tbox {\n\tmargin-top: 0;\n\tpadding-top: 0;\n\tpadding-right: 0;\n\tpadding-left: 0;\n}\n\n#tl_crawl .tl_checkbox_container {\n\tmargin-top: 6px;\n}\n\n#tl_crawl .inner {\n\tposition: relative;\n\tmargin: 0 18px 18px;\n}\n\n#tl_crawl .progress {\n\tdisplay: flex;\n\theight: 20px;\n\tbackground-color: var(--tree-header);\n\tborder-radius: 2px;\n}\n\n#tl_crawl .progress-bar {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: center;\n\tcolor: white;\n\ttext-align: center;\n\twhite-space: nowrap;\n\tbackground-size: 10px 10px;\n}\n\n#tl_crawl .progress-bar.running {\n\tbackground-color: var(--progress-running);\n\tbackground-image: linear-gradient(45deg, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);\n\tanimation: crawl-progress-bar-stripes 1s linear infinite;\n}\n\n#tl_crawl .progress-bar.finished {\n\tbackground-color: var(--progress-finished);\n}\n\n#tl_crawl .progress-count {\n\tmargin: 6px 0 24px;\n}\n\n#tl_crawl .results h3 {\n\tfont-size: .9rem;\n\tmargin: 18px 0 9px;\n}\n\n#tl_crawl .results p {\n\tmargin-bottom: 6px;\n}\n\n#tl_crawl .crawl-hint {\n\tmargin-top: -2px;\n\tline-height: 1.3;\n}\n\n#tl_crawl .crawl-hint a {\n\ttext-decoration: underline;\n}\n\n#tl_crawl .subscriber-log {\n\tdisplay: none;\n\tpadding: 5px 0;\n\tmargin-bottom: 0;\n}\n\n#tl_crawl .wait {\n\tmargin-top: 9px;\n\tcolor: var(--gray);\n}\n\n#tl_crawl .debug-log {\n\tdisplay: none;\n\tmargin-top: 11px;\n}\n\n#tl_crawl .results.running .show-when-finished, #tl_crawl .results.finished .show-when-running {\n\tdisplay: none;\n}\n\n#tl_crawl .results.running .show-when-running, #tl_crawl .results.finished .show-when-finished {\n\tdisplay: block;\n}\n\n#tl_crawl .result .summary.success {\n\tcolor: var(--green);\n}\n\n#tl_crawl .result .summary.failure {\n\tcolor: var(--red);\n}\n\n#tl_crawl .result .warning {\n\tdisplay: none;\n\tcolor: var(--blue);\n}\n\n/* Two-factor */\n.two-factor {\n\tborder-top: 1px solid var(--border);\n\tpadding-bottom: 9px;\n}\n\n.two-factor h2.sub_headline {\n\tmargin: 18px 15px 3px;\n}\n\n.two-factor > p {\n\tmargin: 0 15px 12px;\n\tline-height: 1.3;\n}\n\n.two-factor li {\n\tmargin-left: 2em;\n\tlist-style: initial;\n}\n\n.two-factor .qr-code {\n\tmargin: 0 15px;\n}\n\n.two-factor .qr-code img {\n\tborder: 3px solid #fff;\n}\n\n.two-factor .tl_listing_container {\n\tmargin-top: 6px;\n}\n\n.two-factor .widget {\n\theight: auto;\n\tmargin: 15px 15px 12px;\n}\n\n.two-factor .widget .tl_error {\n\tmargin: 0;\n\tpadding: 1px 0;\n\tbackground: none;\n\tfont-size: .75rem;\n\tline-height: 1.25;\n}\n\n.two-factor .tl_submit_container {\n\tbackground: none;\n\tpadding: 0 15px 10px;\n\tborder: 0;\n}\n\n.two-factor .submit_container {\n\tclear: both;\n\tmargin: 0 15px 12px;\n}\n\n.two-factor .tl_message {\n\tmargin: 0 15px 12px;\n}\n\n.two-factor .tl_message > p {\n\tpadding: 0 3px 0 27px;\n\tbackground-color: transparent;\n\tbackground-position: 3px center;\n}\n\n.two-factor .tl_backup_codes > p, .two-factor .tl_trusted_devices > p {\n\tmargin: 0 15px 12px;\n\tline-height: 1.3;\n}\n\n.two-factor .backup-codes {\n\tmax-width: 224px;\n\tmargin: 15px 15px 24px;\n\tpadding: 0;\n\tdisplay: grid;\n\tgrid-template-columns:repeat(2, 1fr);\n}\n\n.two-factor .backup-codes li {\n\tmargin: 0;\n\tlist-style: none;\n}\n\n.two-factor .tl_trusted_devices th, .two-factor .tl_trusted_devices td {\n\tline-height: 16px;\n}\n\n/* Picker search */\n#search {\n\tmargin: 18px 18px -9px;\n\ttext-align: right;\n}\n\n#search .tl_text {\n\tmax-width: 160px;\n\t-webkit-appearance: textfield;\n\tbox-sizing: content-box;\n}\n\n/* Preview image */\n.tl_edit_preview {\n\tmargin-top: 18px;\n}\n\n.tl_edit_preview img {\n\tmax-width: 100%;\n\theight: auto;\n\tpadding: 2px;\n\tborder: 1px solid var(--content-border);\n\tbackground: var(--white);\n}\n\n.tl_edit_preview_enabled {\n\tposition: relative;\n\tcursor: crosshair;\n\tdisplay: inline-block;\n}\n\n.tl_edit_preview_important_part {\n\tposition: absolute;\n\tmargin: -1px;\n\tborder: 1px solid var(--black);\n\tbox-shadow: 0 0 0 1px var(--white), inset 0 0 0 1px var(--white);\n\topacity: 0.5;\n}\n\n/* Listing */\ntable.tl_listing {\n\twidth: 100%;\n}\n\n.tl_listing_container {\n\tmargin: 18px 0;\n\tpadding: 0 15px;\n}\n\n#tl_buttons + .tl_listing_container, #tl_buttons + .tl_form .tl_listing_container {\n\tmargin-top: 12px;\n}\n\n#paste_hint + .tl_listing_container {\n\tmargin-top: 36px;\n}\n\n.tl_folder_list, .tl_folder_tlist {\n\tpadding: 6px;\n\tborder-bottom: 1px solid var(--border);\n\tbackground: var(--table-header);\n\tfont-weight: 600;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.tl_folder_list, .tl_folder_tlist {\n\t\tfont-weight: 500;\n\t}\n}\n\n.tl_folder_tlist {\n\tline-height: 16px;\n\tborder-top: 1px solid var(--border);\n}\n\n.tl_file, .tl_file_list {\n\tpadding: 5px 6px;\n\tborder-bottom: 1px solid var(--border);\n\tbackground: var(--content-bg);\n}\n\n.tl_file_list .ellipsis {\n\theight: 16px;\n\ttext-overflow: ellipsis;\n\toverflow: hidden;\n\tpadding-right: 18px;\n\tword-break: break-all;\n}\n\n.tl_right_nowrap {\n\tpadding: 6px;\n\tvertical-align: top;\n\ttext-align: right;\n\twhite-space: nowrap;\n}\n\n.tl_listing.picker .tl_file, .tl_listing.picker .tl_folder, .tl_listing.picker .tl_right_nowrap, .tl_listing_container.picker .tl_content_header, .tl_listing_container.picker .tl_content {\n\tbackground-image: linear-gradient(90deg, transparent calc(100% - 26px), var(--tree-header) 26px);\n}\n\n.tl_listing.picker .tl_tree_checkbox, .tl_listing.picker .tl_tree_radio, .tl_listing_container.picker .tl_tree_checkbox, .tl_listing_container.picker .tl_tree_radio {\n\tmargin-top: 2px;\n\tmargin-left: 8px;\n}\n\n.tl_listing.picker .tl_tree_checkbox:disabled, .tl_listing.picker .tl_tree_radio:disabled, .tl_listing_container.picker .tl_tree_checkbox:disabled, .tl_listing_container.picker .tl_tree_radio:disabled {\n\tvisibility: hidden;\n}\n\n.tl_listing_container.picker div[class^=\"ce_\"] {\n\tpadding-right: 24px;\n}\n\n.tl_listing_container.picker .limit_toggler {\n\twidth: calc(100% - 26px);\n}\n\n/* List view */\n.list_view .tl_listing img.theme_preview {\n\tmargin-right: 9px;\n}\n\n.tl_show {\n\twidth: 96%;\n\tmargin: 18px 2%;\n\tpadding: 9px 0 18px;\n}\n\n.tl_show + .tl_show {\n\tmargin-top: 36px;\n}\n\n.tl_show th, .tl_show td {\n\tline-height: 16px;\n\twhite-space: pre-line;\n}\n\n.tl_show td:first-child {\n\twidth: 34%;\n\twhite-space: normal;\n}\n\n.tl_show td p:last-of-type {\n\tmargin-bottom: 0;\n}\n\n.tl_show small {\n\tdisplay: block;\n\tcolor: var(--info);\n}\n\n.tl_label {\n\tmargin-right: 12px;\n\tfont-weight: 600;\n\twhite-space: nowrap;\n}\n\n.tl_label small {\n\tfont-weight: 400;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.tl_label {\n\t\tfont-weight: 500;\n\t}\n\n\t.tl_label small {\n\t\tfont-weight: 300;\n\t}\n}\n\n.tl_empty {\n\tmargin: 0;\n\tpadding: 18px;\n}\n\n.tl_empty_parent_view {\n\tmargin: 0;\n\tpadding: 18px 0 0;\n}\n\n.tl_listing_container + .tl_empty {\n\tmargin-top: -18px;\n}\n\n.tl_noopt {\n\tmargin: 1px 0;\n}\n\n.tl_select_trigger {\n\tmargin-top: -9px;\n\tpadding: 0 6px 3px 0;\n\ttext-align: right;\n}\n\n.tl_radio_reset {\n\tmargin-top: 6px;\n\tpadding: 0 6px 3px 0;\n\ttext-align: right;\n}\n\n.tl_select_label, .tl_radio_label {\n\tmargin-right: 2px;\n\tcolor: var(--gray);\n\tfont-size: .75rem;\n}\n\n/* Parent view */\n.tl_header {\n\tmargin-bottom: 18px;\n\tpadding: 10px;\n\tbackground: var(--table-header);\n}\n\n.tl_header_table {\n\tline-height: 1.3;\n}\n\n.tl_content_header {\n\tpadding: 7px 6px;\n\tborder-bottom: 1px solid var(--border);\n\tbackground: var(--table-header);\n\tfont-weight: 600;\n}\n\n.tl_header + .tl_content_header {\n\tborder-top: 1px solid var(--border);\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.tl_content_header {\n\t\tfont-weight: 500;\n\t}\n}\n\n.as-grid .tl_content_header {\n\tmargin-top: 24px;\n\tpadding: 0 1px;\n\tborder: 0;\n\tbackground-color: transparent;\n\tfont-size: 1rem;\n}\n\n.tl_content {\n\tborder-bottom: 1px solid var(--border);\n\tposition: relative;\n}\n\n.tl_content .inside {\n\tpadding: 6px;\n\tbackground-color: var(--content-bg);\n}\n\n.tl_content.draft .inside {\n\tmin-height: 16px;\n}\n\n.tl_content.draft > *, .tl_folder.draft > *, .tl_file.draft > *, .hover-row.draft > td {\n\topacity: 0.5;\n}\n\n.as-grid .tl_content {\n\tmargin-top: 18px;\n\tpadding: 0;\n\tborder: 1px solid var(--border);\n\tbackground-color: var(--content-bg);\n}\n\n.as-grid .tl_content .inside {\n\tdisplay: grid;\n\tgrid-template-columns: 1fr auto;\n}\n\n.as-grid .tl_content_header + .tl_content {\n\tmargin-top: 12px;\n}\n\n.parent_view > ul {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n.parent_view:not(.as-grid) > ul {\n\tbackground-color: var(--table-header);\n}\n\n.tl_content.indent_1 {\n\tmargin-left: 20px;\n}\n\n.tl_content.indent_2 {\n\tmargin-left: 40px;\n}\n\n.tl_content.indent_3 {\n\tmargin-left: 60px;\n}\n\n.tl_content.indent_4 {\n\tmargin-left: 80px;\n}\n\n.tl_content.indent_5 {\n\tmargin-left: 100px;\n}\n\n.as-grid .tl_content .inside {\n\tpadding: 0;\n}\n\n.as-grid .tl_content.indent {\n\tmargin: 0;\n\tpadding: 15px 15px 0;\n\tborder-width: 0 1px;\n\tbackground: var(--nested-bg);\n}\n\n.as-grid .tl_content.indent_2 {\n\tpadding-left: 30px;\n\tpadding-right: 30px;\n}\n\n.as-grid .tl_content.indent_3 {\n\tpadding-left: 45px;\n\tpadding-right: 45px;\n}\n\n.as-grid .tl_content.indent_4 {\n\tpadding-left: 60px;\n\tpadding-right: 60px;\n}\n\n.as-grid .tl_content.indent_5 {\n\tpadding-left: 75px;\n\tpadding-right: 75px;\n}\n\n.as-grid .tl_content.indent_last {\n\tpadding-bottom: 15px;\n}\n\n.as-grid .tl_content.indent .inside {\n\tborder: 1px solid var(--border);\n}\n\n.as-grid .tl_content.wrapper_stop {\n\tmargin-top: 0;\n}\n\n.as-grid .tl_content.indent.wrapper_stop {\n\tpadding-top: 0;\n}\n\n.tl_content_left {\n\tline-height: 16px;\n}\n\n.as-grid .tl_content_left {\n\tpadding: 8px 10px;\n}\n\n.tl_content_right {\n\tposition: relative;\n\tz-index: 1;\n\tfloat: right;\n\ttext-align: right;\n\tmargin-left: 12px;\n\tmargin-bottom: -1px;\n}\n\n.as-grid .tl_content .tl_content_right {\n\torder: 2;\n\tfloat: none;\n\tmargin-left: 0;\n\tmargin-bottom: 0;\n\tpadding: 8px 10px;\n\tborder-left: 1px solid var(--border);\n\tbackground: var(--table-header);\n}\n\n.tl_right button, .tl_content_right button {\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\theight: 16px;\n\tbackground: none;\n}\n\n.tl_right img, .tl_content_right img, .tl_right_nowrap img,\n.tl_right button, .tl_content_right button, .tl_right_nowrap button {\n\tmargin-left: 1px;\n}\n\n.cte_type {\n\tmargin: 0 0 4px;\n\tfont-size: .75rem;\n\tcolor: var(--info);\n\tline-height: 16px;\n}\n\n.as-grid .cte_type {\n\torder: 1;\n\tmargin-bottom: 0;\n\tpadding: 8px 10px;\n\tbackground-color: var(--table-header);\n\tfont-size: .8rem;\n}\n\n.cte_type.published, .cte_type.published a {\n\tcolor: var(--green);\n}\n\n.cte_type.unpublished, .cte_type.unpublished a {\n\tcolor: var(--red);\n}\n\n.cte_type.icon-protected {\n\tpadding-left: 27px;\n\tbackground: var(--table-header) url(\"icons/protected.svg\") 8px 8px no-repeat;\n}\n\n.cte_type .visibility {\n\tcolor: var(--gray);\n}\n\n.cte_preview {\n\tline-height: 1.25;\n\tposition: relative;\n}\n\n.cte_preview h1 {\n\tfont-size: 1.25rem;\n\tmargin-bottom: 6px;\n}\n\n.cte_preview h2 {\n\tfont-size: 1rem;\n\tmargin-bottom: 6px;\n}\n\n.cte_preview h3 {\n\tfont-size: .9rem;\n\tmargin-bottom: 6px;\n}\n\n.cte_preview h4, .cte_preview h5, .cte_preview h6 {\n\tfont-size: .875rem;\n\tmargin-bottom: 6px;\n}\n\n.cte_preview p, .cte_preview figure, .cte_preview ol, .cte_preview ul, .cte_preview table, .cte_preview div.tl_gray, .content-hyperlink, .content-toplink, .cte_preview table caption {\n\tmargin-bottom: 6px;\n}\n\n.cte_preview img {\n\tmax-width: 320px;\n\theight: auto;\n\tpadding: 6px 0;\n}\n\n.cte_preview th, .cte_preview td {\n\tpadding: 3px 6px;\n\tborder-bottom: 1px solid var(--border);\n}\n\n.cte_preview th {\n\tpadding: 6px;\n\tbackground: var(--table-header);\n}\n\n.cte_preview td {\n\tbackground: var(--content-bg);\n}\n\n.cte_preview table caption {\n\ttext-align: left;\n\tfont-size: .75rem;\n}\n\n.cte_preview pre {\n\tmargin-top: 0;\n\tmargin-bottom: 6px;\n\tword-break: break-all;\n\twhite-space: pre-wrap;\n}\n\n.cte_preview pre.disabled {\n\tcolor: var(--pre-disabled);\n}\n\n.cte_preview .content-gallery ul {\n\tmargin: 0;\n\tpadding: 0;\n\tdisplay: grid;\n\tgrid-template-columns: 1fr 1fr 1fr;\n\tlist-style: none;\n}\n\n.cte_preview a {\n\tcolor: var(--green);\n}\n\n.cte_preview div.tl_gray a {\n\tcolor: var(--gray);\n}\n\n.cte_preview span.comment {\n\tcolor: var(--blue);\n\tdisplay: inline-block;\n\tmargin-bottom: 3px;\n}\n\n.cte_preview input, .cte_preview select, .cte_preview textarea, .cte_preview button {\n\tbackground: var(--form-bg);\n\tborder: 1px solid var(--form-border);\n}\n\n.cte_preview input[type=\"file\"] {\n\tposition: relative;\n}\n\n.cte_preview select {\n\t-moz-appearance: menulist;\n\t-webkit-appearance: menulist;\n}\n\n.cte_preview label, .cte_preview .checkbox_container legend, .cte_preview .radio_container legend {\n\tdisplay: block;\n\tmargin-bottom: 6px;\n}\n\n.cte_preview .widget {\n\tmargin: 0 0 6px;\n}\n\n.cte_preview .checkbox_container label, .cte_preview .radio_container label {\n\tdisplay: initial;\n}\n\n.cte_preview .widget-captcha {\n\tdisplay: block !important;\n}\n\n.cte_preview .widget-captcha .captcha_text {\n\tpadding-left: 3px;\n\tvertical-align: middle;\n}\n\n.cte_preview.empty {\n\tdisplay: none;\n}\n\n.as-grid .cte_preview {\n\torder: 3;\n\tgrid-column: 1 / span 2;\n\tpadding: 10px 10px 6px;\n\tborder-top: 1px solid var(--border);\n}\n\n/* Backwards compatibility */\n.limit_height {\n\toverflow: hidden;\n}\n\n.limit_toggler {\n\twidth: 100%;\n\tposition: absolute;\n\tbottom: 0;\n\tleft: 0;\n\tbackground: var(--content-bg);\n\tline-height: 11px;\n\ttext-align: center;\n}\n\n.limit_toggler button {\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tbackground: var(--content-bg);\n\twidth: 24px;\n\tline-height: 8px;\n\tcolor: var(--gray);\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n}\n\n.limit_toggler button span {\n\tposition: relative;\n\ttop: -4px;\n\tz-index: 1;\n}\n\n/* Tree view */\n.tl_folder_top {\n\tmin-height: 18px;\n\tpadding: 5px 6px;\n\tborder: solid var(--tree-header-border);\n\tborder-width: 1px 0;\n\tbackground: var(--tree-header);\n}\n\n.tl_folder {\n\tpadding: 5px 6px;\n\tborder-bottom: 1px solid var(--border);\n\tbackground: var(--table-header);\n}\n\n.tl_folder.tl_folder_dropping, .tl_folder_top.tl_folder_dropping {\n\tbackground-color: var(--drag-bg) !important;\n\tcolor: var(--text) !important;\n}\n\n.tl_folder.tl_folder_dropping a, .tl_folder_top.tl_folder_dropping a {\n\tcolor: inherit;\n}\n\n.tl_listing .tl_left {\n\tflex-grow: 1;\n\tbox-sizing: border-box;\n\twhite-space: nowrap;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\tline-height: 18px;\n}\n\n.tl_listing .tl_left.tl_left_dragging {\n\tposition: absolute;\n\tbackground: var(--drag-bg);\n\tborder-radius: 10px;\n\tcolor: var(--text);\n\tpadding: 5px 10px !important;\n\tmargin-left: 0;\n\ttext-indent: 0;\n\twhite-space: nowrap;\n}\n\n.tl_listing .tl_left.tl_left_dragging .preview-image, .tl_listing .tl_left.tl_left_dragging a img {\n\tdisplay: none;\n}\n\n.tl_listing .tl_left.tl_left_dragging a, .tl_listing .tl_left.tl_left_dragging .tl_gray {\n\tcolor: inherit;\n}\n\n.tl_listing_dragging .hover-div:not(.tl_folder):hover {\n\tbackground-color: transparent !important;\n}\n\n.tl_listing .tl_left a:hover {\n\tcolor: var(--text);\n}\n\n.tl_listing .tl_left img:not(.preview-image, .preview-important) {\n\tmargin-top: -3px;\n}\n\n.tl_file_manager .preview-image {\n\tmax-width: 100px;\n\tmax-height: 75px;\n\twidth: auto;\n\theight: auto;\n\tmargin: 3px 0 2px 22px;\n}\n\n.tl_file_manager .preview-important {\n\tmax-width: 80px;\n\tmax-height: 60px;\n\twidth: auto;\n\theight: auto;\n\tmargin: 3px 0 2px 0;\n\tvertical-align: bottom;\n}\n\n.tl_listing .tl_right {\n\tpadding: 1px 0 0 9px;\n\twhite-space: nowrap;\n}\n\n@-moz-document url-prefix() {\n\t.tl_listing .tl_right {\n\t\tpadding-top: 0;\n\t}\n}\n\n.tl_listing, .tl_listing ul {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.tl_listing li {\n\tdisplay: flex;\n\tmargin: 0;\n\tlist-style-type: none;\n}\n\n.tl_listing li.parent {\n\tdisplay: inline;\n\tpadding-left: 0;\n\tpadding-right: 0;\n}\n\nlabel.tl_change_selected {\n\tmargin-right: 2px;\n\tcolor: var(--gray);\n\tfont-size: .75rem;\n}\n\n/* Breadcrumb */\n#tl_breadcrumb {\n\tmargin: 0 0 12px;\n\tpadding: 4px 6px;\n\tdisplay: flow-root;\n\tbackground: var(--active-bg);\n\tborder: 1px solid var(--active-border);\n\tborder-radius: 2px;\n\tline-height: 24px;\n}\n\n#tl_breadcrumb li {\n\tmargin: 0;\n\tpadding: 0 3px;\n\tlist-style-type: none;\n\tfloat: left;\n}\n\n#tl_breadcrumb li a {\n\tdisplay: inline-block;\n}\n\n#tl_breadcrumb li img {\n\twidth: 16px;\n\theight: 16px;\n\tvertical-align: -3px;\n}\n\n/* Picker */\n.selector_container {\n\tmargin-top: 1px;\n\tposition: relative;\n}\n\n.selector_container > ul {\n\tmargin: 0 0 1px;\n\tpadding: 0;\n\tlist-style-type: none;\n}\n\n.selector_container > ul > li {\n\tmargin: 0 9px 0 0;\n\tpadding: 2px 0;\n}\n\n.selector_container p {\n\tmargin-bottom: 1px;\n}\n\n.selector_container ul:not(.sgallery) img {\n\tmargin-right: 1px;\n\tvertical-align: text-top;\n}\n\n.selector_container img {\n\tmax-width: 320px;\n\theight: auto;\n}\n\n.selector_container .limit_height {\n\theight: auto !important;\n\tmax-height: 190px;\n}\n\n.selector_container .limit_toggler {\n\tdisplay: none;\n}\n\n.selector_container h1, .selector_container h2, .selector_container h3, .selector_container h4 {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.selector_container pre {\n\twhite-space: pre-wrap;\n}\n\n.selector_container table.showColumns {\n\tmargin: 2px 0 3px;\n}\n\n.selector_container table.sortable td {\n\tcursor: move;\n}\n\nul.sgallery {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fill, 100px);\n\tgrid-auto-rows: 75px;\n\tgap: 4px;\n\tpadding: 2px 0;\n}\n\nul.sgallery li {\n\tmin-width: 100px;\n\tmin-height: 75px;\n\tmargin: 0;\n\tpadding: 0;\n\tbackground: var(--form-button);\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n\t-webkit-align-items: center;\n\talign-items: center;\n\t-webkit-justify-content: center;\n\tjustify-content: center;\n}\n\n/* Welcome screen */\n.popup #tl_soverview {\n\tmargin-top: 15px;\n}\n\n#tl_soverview > div {\n\tpadding: 5px 15px;\n\tborder-bottom: 1px solid var(--border);\n}\n\n#tl_soverview > div:last-child {\n\tborder-bottom: 0;\n}\n\n#tl_messages h2, #tl_shortcuts h2 {\n\tmargin: 14px 0 10px;\n}\n\n#tl_versions h2 {\n\tmargin: 14px 0 12px;\n}\n\n#tl_messages p {\n\tmargin-bottom: .5em;\n}\n\n#tl_messages p:last-child {\n\tmargin-bottom: 1em;\n}\n\n#tl_messages .tl_error, #tl_messages .tl_confirm, #tl_messages .tl_info, #tl_messages .tl_new {\n\tpadding: 0 0 0 21px;\n\tbackground-position: left 1px;\n\tbackground-color: transparent;\n}\n\n#tl_shortcuts p a {\n\ttext-decoration: underline;\n}\n\n#tl_versions {\n\tmargin-bottom: 0;\n}\n\n#tl_versions table {\n\twidth: 100%;\n\tmargin-bottom: 18px;\n}\n\n#tl_versions th, #tl_versions td {\n\tpadding: 6px;\n}\n\n#tl_versions th {\n\tline-height: 16px;\n}\n\n#tl_versions td:first-child {\n\twhite-space: nowrap;\n}\n\n#tl_versions td:last-child {\n\twidth: 32px;\n\twhite-space: nowrap;\n\ttext-align: right;\n}\n\n#tl_versions .pagination {\n\tmargin-top: 18px;\n\tmargin-bottom: 14px;\n\tpadding: 12px 6px;\n\tbackground: var(--table-header);\n}\n\n/* CHMOD table */\n.tl_chmod {\n\twidth: 100%;\n}\n\n.tl_chmod th {\n\theight: 18px;\n\ttext-align: center;\n\tfont-weight: 400;\n\tbackground: var(--tree-header);\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.tl_chmod th {\n\t\tfont-weight: 300;\n\t}\n}\n\n.tl_chmod td {\n\ttext-align: center;\n\tbackground: var(--table-header);\n}\n\n.tl_chmod th, .tl_chmod td {\n\twidth: 14.2857%;\n\tpadding: 6px;\n\tborder: 1px solid var(--content-bg);\n}\n\n/* Wizards */\n.tl_modulewizard button, .tl_optionwizard button, .tl_key_value_wizard button, .tl_tablewizard button, .tl_listwizard button, .tl_checkbox_wizard button, .tl_metawizard button, .tl_sectionwizard button, .tl_image_size + button {\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tbackground: none;\n\tvertical-align: middle;\n}\n\n/* Module wizard */\n.tl_modulewizard {\n\twidth: 100%;\n\tmax-width: 800px;\n\tmargin-top: 2px;\n}\n\n.tl_modulewizard td {\n\tposition: relative;\n\tpadding: 0 3px 0 0;\n}\n\n.tl_modulewizard th {\n\tfont-size: .75rem;\n\tfont-weight: 400;\n\tpadding: 0 6px 1px 0;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.tl_modulewizard th {\n\t\tfont-weight: 300;\n\t}\n}\n\n.tl_modulewizard td:last-child {\n\twidth: 1%;\n\twhite-space: nowrap;\n}\n\n.tl_modulewizard .tl_select, .tl_modulewizard .tl_select_column {\n\tmargin: 2px 0;\n}\n\n.tl_modulewizard input.mw_enable + button, .js .tl_modulewizard input.mw_enable {\n\tdisplay: none;\n}\n\n.js .tl_modulewizard input.mw_enable + button {\n\tdisplay: inline;\n\twidth: 16px;\n\theight: 16px;\n\tbackground: var(--icon-invisible) 0 0 no-repeat;\n}\n\n.js .tl_modulewizard input.mw_enable:checked + button {\n\tbackground-image: var(--icon-visible);\n}\n\n.tl_modulewizard img.mw_enable {\n\tdisplay: none;\n}\n\n.js .tl_modulewizard img.mw_enable {\n\tdisplay: inline;\n\tmargin-right: 1px;\n}\n\n/* Options and key/value wizard */\n.tl_optionwizard {\n\twidth: 100%;\n\tmax-width: 600px;\n}\n\n.tl_key_value_wizard {\n\twidth: 100%;\n\tmax-width: 450px;\n}\n\n.tl_optionwizard, .tl_key_value_wizard {\n\tmargin-top: 2px;\n}\n\n.tl_optionwizard label, .tl_key_value_wizard label {\n\tmargin-right: 3px;\n}\n\n.tl_optionwizard td, .tl_key_value_wizard td {\n\tpadding: 0 3px 0 0;\n}\n\n.tl_optionwizard th, .tl_key_value_wizard th {\n\tfont-size: .75rem;\n\tfont-weight: 400;\n\tpadding: 0 6px 1px 0;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.tl_optionwizard th, .tl_key_value_wizard th {\n\t\tfont-weight: 300;\n\t}\n}\n\n.tl_optionwizard td:nth-child(n+3), .tl_key_value_wizard td:nth-child(n+3) {\n\twidth: 1%;\n\twhite-space: nowrap;\n}\n\n.tl_optionwizard .tl_text {\n\tmargin: 2px 0;\n}\n\n.tl_optionwizard img, .tl_key_value_wizard img {\n\tposition: relative;\n\ttop: 1px;\n}\n\n.tl_optionwizard .fw_checkbox, .tl_key_value_wizard .fw_checkbox {\n\tmargin: 0 1px;\n}\n\n#ctrl_allowedAttributes {\n\tmax-width: none;\n}\n\n#ctrl_allowedAttributes td:first-child {\n\twidth: 100px;\n}\n\n/* Table wizard */\n#tl_tablewizard {\n\tmargin-top: 2px;\n\tpadding-bottom: 2px;\n\toverflow: auto;\n}\n\n.tl_tablewizard td {\n\tpadding: 0 3px 0 0;\n}\n\n.tl_tablewizard thead td {\n\tpadding-bottom: 3px;\n\ttext-align: center;\n\twhite-space: nowrap;\n}\n\n.tl_tablewizard tbody td:last-child {\n\twhite-space: nowrap;\n}\n\n.tl_tablewizard td.tcontainer {\n\tvertical-align: top;\n}\n\n.tl_tablewizard .tl_textarea {\n\tmargin: 2px 0;\n}\n\n/* List wizard */\n.tl_listwizard {\n\tmargin: 1px 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n.tl_listwizard .tl_text {\n\twidth: 78%;\n\tmargin: 2px 0;\n}\n\n.tl_listwizard button {\n\tmargin-left: 1px;\n}\n\n/* Checkbox wizard */\n.tl_checkbox_wizard .sortable img {\n\tvertical-align: bottom;\n}\n\n/* Meta wizard */\n.tl_metawizard {\n\tmargin: 3px 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n.tl_metawizard li {\n\tmargin-bottom: 2px;\n\tpadding: 9px;\n}\n\n.tl_metawizard li:nth-child(odd) {\n\tbackground: var(--table-header);\n}\n\n.tl_metawizard li:nth-child(even) {\n\tbackground: var(--table-even);\n}\n\n.tl_metawizard label {\n\tfloat: left;\n\twidth: 18%;\n\tmargin-top: 9px;\n}\n\n.tl_metawizard .tl_text, .tl_metawizard .tl_textarea {\n\tfloat: left;\n\twidth: calc(82% - 20px);\n\tmargin: 1px 0;\n}\n\n.tl_metawizard .tl_textarea {\n\tresize: vertical;\n}\n\n.tl_metawizard .tl_text + a {\n\tposition: relative;\n\ttop: 7px;\n\tmargin-left: 4px;\n}\n\n.tl_metawizard br {\n\tclear: left;\n}\n\n.tl_metawizard .lang {\n\tdisplay: block;\n\tmargin: 3px 0 9px;\n\tfont-weight: 600;\n\tposition: relative;\n}\n\n.tl_metawizard .lang button {\n\tposition: absolute;\n\tright: 0;\n\ttop: -1px;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.tl_metawizard .lang {\n\t\tfont-weight: 500;\n\t}\n}\n\n/* Section wizard */\n.tl_sectionwizard {\n\tmargin-top: 2px;\n\twidth: 100%;\n\tmax-width: 680px;\n}\n\n.tl_sectionwizard td {\n\twidth: 25%;\n\tposition: relative;\n\tpadding: 0 3px 0 0;\n}\n\n.tl_sectionwizard th {\n\tfont-size: .75rem;\n\tfont-weight: 400;\n\tpadding: 0 4px 1px 0;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t.tl_sectionwizard th {\n\t\tfont-weight: 300;\n\t}\n}\n\n.tl_sectionwizard td:last-child {\n\twhite-space: nowrap;\n}\n\n/* Paste/sort hint */\n#paste_hint {\n\tposition: relative;\n\tz-index: 1;\n}\n\n.tl_message + #paste_hint {\n\tmargin-top: -12px;\n}\n\n#paste_hint p {\n\tposition: absolute;\n\tfont-family: \"Architects Daughter\", cursive;\n\tfont-size: 1rem;\n\tcolor: var(--paste-hint);\n\ttop: 0;\n\tright: 30px;\n\tpadding: 0 36px 24px 0;\n\tbackground: var(--icon-arrow-right) bottom right no-repeat;\n\ttransform: rotate(-1deg);\n}\n\n.sort_hint {\n\tposition: absolute;\n\tfont-family: \"Architects Daughter\", cursive;\n\tfont-size: 1rem;\n\tcolor: var(--paste-hint);\n\ttop: -50px;\n\tleft: 160px;\n\tpadding: 0 6px 24px 42px;\n\tbackground: var(--icon-arrow-left) 6px bottom no-repeat;\n\ttransform: rotate(-2deg);\n}\n\n.widget + .subpal .sort_hint {\n\tleft: 260px;\n}\n\n.widget + .widget .sort_hint {\n\tleft: 320px;\n}\n\n/* SERP preview */\n.serp-preview {\n\tmax-width: 600px;\n\tmargin: 2px 0;\n\tpadding: 5px 7px;\n\tfont-family: Arial, sans-serif;\n\tfont-weight: 400;\n\tcolor: var(--serp-preview);\n\tbackground: var(--panel-bg);\n\tborder-radius: 3px;\n}\n\n.serp-preview p {\n\tmargin: 0;\n}\n\n.serp-preview .url, .serp-preview .description {\n\tline-height: 18px;\n}\n\n.serp-preview .url:not(:empty) {\n\tmargin-top: 3px;\n}\n\n.serp-preview .description:not(:empty) {\n\tmargin-bottom: 3px;\n}\n\n.serp-preview .title {\n\tmargin: 5px 0 4px;\n\tfont-size: 18px;\n\tcolor: var(--serp-preview-title);\n}\n\n.serp-preview .tl_info {\n\tbackground-color: transparent;\n}\n\n/* Ajax box */\n#tl_ajaxBox {\n\twidth: 300px;\n\tpadding: 2em;\n\tbox-sizing: border-box;\n\tposition: absolute;\n\tleft: 50%;\n\tmargin-left: -150px;\n\tbackground: var(--white) var(--icon-loading) no-repeat right 2em center;\n\tborder: 2px solid var(--black);\n\tborder-radius: 2px;\n\tfont-size: 1rem;\n\ttext-align: left;\n}\n\n#tl_ajaxOverlay {\n\twidth: 100%;\n\theight: 100%;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tbackground: var(--white);\n\topacity: 0.5;\n}\n\n/* Misc */\n.ce_gallery ul {\n\tdisplay: flow-root;\n}\n\n.ce_gallery li {\n\tfloat: left;\n\tmargin: 0 6px 6px 0;\n}\n\n.drag-handle {\n\tcursor: move;\n}\n\nul.sortable li {\n\tcursor: move;\n\tposition: relative;\n}\n\nul.sortable li .dirname {\n\tdisplay: none;\n}\n\nul.sortable li:hover .dirname {\n\tdisplay: inline;\n}\n\nul.sortable button {\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tborder: 0;\n\tborder-radius: 2px;\n\tbackground: var(--form-button);\n\tmargin: 0;\n\tpadding: 0 0 3px;\n\tfont-size: 22px;\n\tline-height: 9px;\n\tcursor: pointer;\n\ttransition: all .1s linear;\n}\n\nul.sortable button:hover {\n\tbackground: var(--form-button-hover);\n}\n\nul.sortable button[disabled] {\n\tcolor: var(--gray);\n\tcursor: not-allowed;\n}\n\nul.sortable button[disabled]:hover {\n\tbackground: rgba(255,255,255,.7);\n}\n\n#picker-menu {\n\tpadding: 9px 6px 0;\n\tborder-bottom: 1px solid var(--content-border);\n}\n\n#picker-menu > ul {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n#picker-menu li {\n\tdisplay: inline-block;\n\tpadding: 8px 0;\n\tbackground-color: var(--table-even);\n\tborder: 1px solid var(--content-border);\n\tborder-radius: 2px 2px 0 0;\n\tposition: relative;\n\ttop: 1px;\n}\n\n#picker-menu li:hover {\n\tbackground-color: var(--panel-bg);\n}\n\n#picker-menu li.current {\n\tbackground-color: var(--panel-bg);\n\tborder-bottom-color: var(--panel-bg);\n}\n\n#picker-menu a {\n\tpadding: 3px 12px 3px 32px;\n\tbackground: url(\"icons/mover.svg\") 12px center no-repeat;\n}\n\n#picker-menu a:hover {\n\tcolor: var(--text);\n}\n\n#picker-menu a.pagePicker {\n\tbackground-image: url(\"icons/pagemounts.svg\");\n\tbackground-size: 16px;\n}\n\n#picker-menu a.filePicker {\n\tbackground-image: url(\"icons/filemounts.svg\");\n\tbackground-size: 14px;\n}\n\n#picker-menu a.articlePicker {\n\tbackground-image: url(\"icons/articles.svg\");\n\tbackground-size: 16px;\n}\n\n#picker-menu a.close {\n\tbackground-image: url(\"icons/back.svg\");\n}\n\n.ace_editor {\n\tpadding: 3px;\n\tz-index: 0;\n}\n\n.ace_editor, .ace_editor * {\n\tfont-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n\tfont-size: .75rem !important;\n\tcolor: var(--text);\n}\n\n.ace-fullsize {\n\toverflow: hidden !important;\n}\n\n.ace-fullsize .ace_editor {\n\tposition: fixed !important;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\twidth: auto !important;\n\theight: auto !important;\n\tmargin: 0;\n\tborder: 0;\n\tz-index: 10000;\n}\n\ndiv.mce-edit-area {\n\twidth: 99.9%;\n}\n\ntime[title] {\n\tcursor: help;\n}\n\n.float_left {\n\tfloat: left;\n}\n\n.float_right {\n\tfloat: right;\n}\n\n.foldable img {\n\ttransition: transform .2s ease;\n\ttransform: none;\n\twill-change: transform;\n}\n\n.foldable--open img {\n\ttransform: rotateZ(90deg);\n}\n\n.foldable--loading {\n\tposition: relative;\n\tpointer-events: none;\n}\n\n.foldable--loading img {\n\tvisibility: hidden;\n}\n\n.foldable--loading::after {\n\tcontent: \"\";\n\tposition: absolute;\n\tinset: 2px auto auto 2px;\n\twidth: 14px;\n\theight: 14px;\n\tbackground: var(--icon-loading) 0 0/contain no-repeat\n}\n\n/* Default icon classes */\n.header_icon, .header_clipboard, .header_back, .header_new, .header_rss, .header_edit_all, .header_delete_all,\n.header_new_folder, .header_css_import, .header_theme_import, .header_store, .header_toggle, .header_sync {\n\tdisplay: inline-block;\n\tpadding: 3px 0 3px 22px;\n\tbackground-color: transparent;\n\tbackground-position: left center;\n\tbackground-repeat: no-repeat;\n\tborder: none;\n\tmargin-left: 15px;\n}\n\n.list_icon {\n\tmargin-left: -3px;\n\tpadding-left: 24px;\n\tbackground-position: left center;\n\tbackground-repeat: no-repeat;\n}\n\n.list_icon_new {\n\twidth: 16px;\n\tbackground-position: 1px center;\n\tbackground-repeat: no-repeat;\n}\n\n/* Header icons */\n.header_clipboard {\n\tbackground-image: url(\"icons/clipboard.svg\");\n}\n\n.header_back {\n\tbackground-image: url(\"icons/back.svg\");\n}\n\n.header_new {\n\tbackground-image: url(\"icons/new.svg\");\n}\n\n.header_rss {\n\tbackground-image: url(\"icons/rss.svg\");\n}\n\n.header_edit_all {\n\tbackground-image: url(\"icons/all.svg\");\n}\n\n.header_new_folder {\n\tbackground-image: url(\"icons/newfolder.svg\");\n}\n\n.header_css_import {\n\tbackground-image: url(\"icons/cssimport.svg\");\n}\n\n.header_theme_import {\n\tbackground-image: url(\"icons/theme_import.svg\");\n}\n\n.header_store {\n\tbackground-image: url(\"icons/store.svg\");\n}\n\n.header_toggle {\n\tpadding-left: 18px;\n\tbackground-image: var(--icon-toggle-all);\n}\n\n.header_sync {\n\tbackground-image: url(\"icons/sync.svg\");\n}\n\n/* Visual hint for TRBL fields - thanks to Eugene Rybyakov */\n.tl_text_trbl, .tl_imageSize_0, .tl_imageSize_1, #ctrl_playerSize input {\n\tbackground: var(--form-bg) url(\"icons/hints.svg\") no-repeat right 1px top 2px;\n}\n\n#ctrl_playerSize_1, .tl_imageSize_1 {\n\tbackground-position: right 1px top -28px !important;\n}\n\n.trbl_top {\n\tbackground-position: right 1px top -59px !important;\n}\n\n.trbl_right {\n\tbackground-position: right 1px top -89px !important;\n}\n\n.trbl_bottom {\n\tbackground-position: right 1px top -119px !important;\n}\n\n.trbl_left {\n\tbackground-position: right 1px top -149px !important;\n}\n\n#ctrl_shadowsize_top {\n\tbackground-position: right 1px top -179px !important;\n}\n\n#ctrl_shadowsize_right {\n\tbackground-position: right 1px top -209px !important;\n}\n\n#ctrl_shadowsize_bottom {\n\tbackground-position: right 1px top -238px !important;\n}\n\n#ctrl_shadowsize_left {\n\tbackground-position: right 1px top -269px !important;\n}\n\n#ctrl_borderradius_top {\n\tbackground-position: left -299px !important;\n}\n\n#ctrl_borderradius_right {\n\tbackground-position: right 1px top -329px !important;\n}\n\n#ctrl_borderradius_bottom {\n\tbackground-position: right 1px top -352px !important;\n}\n\n#ctrl_borderradius_left {\n\tbackground-position: left -382px !important;\n}\n\n/* Error messages */\nlabel.error, legend.error, .tl_checkbox_container.error legend {\n\tcolor: var(--red);\n}\n\n.tl_tbox .tl_error, .tl_box .tl_error {\n\tbackground: none;\n\tpadding: 0;\n\tmargin-bottom: 0;\n\tfont-size: .75rem;\n}\n\n.tl_formbody_edit > .tl_error {\n\tmargin-top: 9px;\n}\n\n.broken-image {\n\tdisplay: inline-block;\n\tpadding: 12px 12px 12px 30px;\n\tbackground: var(--error-bg) url(\"icons/error.svg\") no-repeat 9px center;\n\tcolor: var(--red);\n\ttext-indent: 0;\n}\n\n/* Fieldsets */\nfieldset.tl_tbox, fieldset.tl_box {\n\tmargin-top: 5px;\n\tpadding-top: 0;\n\tborder-top: none;\n\tborder-left: 0;\n\tborder-right: 0;\n\tmargin-inline: 0;\n}\n\nfieldset.tl_tbox.nolegend, fieldset.tl_box.nolegend {\n\tborder-top: 0;\n}\n\nfieldset.tl_tbox > legend, fieldset.tl_box > legend {\n\tbox-sizing: border-box;\n\tcolor: var(--legend);\n\tpadding: 9px 12px 9px 28px;\n\tbackground: url(\"icons/navcol.svg\") 13px 10px no-repeat;\n\tcursor: pointer;\n}\n\nfieldset.collapsed {\n\tmargin-bottom: 0;\n\tpadding-bottom: 5px;\n}\n\nfieldset.collapsed div {\n\tdisplay: none !important;\n}\n\nfieldset.collapsed > legend {\n\tbackground: url(\"icons/navexp.svg\") 13px 10px no-repeat;\n}\n\n/* Maintenance */\n#tl_maintenance_cache table {\n\twidth: 100%;\n}\n\n#tl_maintenance_cache td {\n\tline-height: 1.2;\n\tpadding: 9px 6px;\n}\n\n#tl_maintenance_cache td span {\n\tcolor: var(--gray);\n}\n\n#tl_maintenance_cache td:first-child {\n\twidth: 16px;\n}\n\n#tl_maintenance_cache .nw {\n\twhite-space: nowrap;\n}\n\n#tl_maintenance_cache .tl_checkbox_container {\n\tmargin-top: 3px;\n}\n\n#tl_maintenance_cache .tl_checkbox_container label {\n\tvertical-align: initial;\n\tfont-weight: 600;\n}\n\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n\t#tl_maintenance_cache .tl_checkbox_container label {\n\t\tfont-weight: 500;\n\t}\n}\n\n/* Pagination */\n.pagination {\n\tdisplay: flow-root;\n\tbackground: var(--panel-bg);\n\tmargin-bottom: 18px;\n\tborder: solid var(--border);\n\tborder-width: 1px 0;\n\tpadding: 12px 15px;\n}\n\n.pagination ul {\n\twidth: 60%;\n\tfloat: right;\n\ttext-align: right;\n}\n\n.pagination p {\n\twidth: 30%;\n\tfloat: left;\n\tmargin-bottom: 0;\n}\n\n.pagination li {\n\tdisplay: inline;\n\tpadding-left: 3px;\n}\n\n.pagination .active {\n\tcolor: var(--gray);\n}\n\n.pagination-lp {\n\tmargin-bottom: 0;\n\tborder-bottom: 0;\n\tpadding: 15px 12px;\n}\n\n/* File synchronization */\n#result-list {\n\tmargin: 15px;\n}\n\n#result-list .tl_error, #result-list .tl_confirm, #result-list .tl_info, #result-list .tl_new {\n\tpadding: 3px 0;\n\tbackground: none;\n}\n\n/* DropZone */\n.dropzone {\n\tmargin: 2px 0;\n\tmin-height: auto !important;\n\tborder: 3px dashed var(--border) !important;\n\tborder-radius: 2px;\n\tbackground: var(--form-bg) !important;\n}\n\n.dropzone-filetree {\n\tdisplay: none;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\topacity: .8;\n\tz-index: 1;\n}\n\n.dropzone-filetree-enabled {\n\tdisplay: block;\n}\n\n.dz-message span {\n\tfont-size: 1.3125rem;\n\tcolor: var(--gray);\n}\n\n/* TinyMCE */\n.tox-tinymce {\n\tmargin: 3px 0;\n\tborder-radius: 2px !important;\n}\n\n/* Undo */\n.tl_undo_header {\n\tmax-width: 880px;\n\tmargin-top: 2px;\n\tdisplay: grid;\n\tgrid-template-columns:2fr 2fr 3fr 3fr;\n\tgrid-column-gap: 24px;\n}\n\n.hover-row:hover .tl_undo_header {\n\tbackground-color: var(--hover-row) !important;\n}\n\n.tl_undo_preview {\n\tmargin-top: 5px;\n\tpadding: 6px 0 3px;\n\tfont-size: .75rem;\n\tposition: relative;\n}\n\n.tl_undo_preview td {\n\tpadding-left: 0 !important;\n\tpadding-right: 32px !important;\n}\n\n.tl_undo_preview td:empty {\n\tdisplay: none;\n}\n\n.tl_undo_preview img {\n\tmax-width: 320px;\n\theight: auto;\n}\n\n.tl_undo_preview a img {\n\tmargin-top: -3px;\n}\n\n.tl_undo_preview .cte_preview h1 {\n\tfont-size: 1.15rem;\n}\n\n.tl_undo_preview .cte_preview h2 {\n\tfont-size: .9rem;\n}\n\n.tl_undo_preview .cte_preview h3 {\n\tfont-size: .8rem;\n}\n\n.tl_undo_preview .cte_preview h4, .tl_undo_preview .cte_preview h5, .tl_undo_preview .cte_preview h6 {\n\tfont-size: .775rem;\n}\n\n\n/* Tablet */\n@media (max-width: 991px) {\n\t#container {\n\t\tdisplay: block;\n\t}\n\n\t#main, #left {\n\t\tfloat: none;\n\t}\n\n\t#main {\n\t\twidth: 100% !important;\n\t\tposition: relative;\n\t\ttransition: transform .2s ease;\n\t\t-webkit-transform: none;\n\t\ttransform: none;\n\t\twill-change: transform;\n\t}\n\n\t.show-navigation #main {\n\t\t-webkit-transform: translateX(240px);\n\t\ttransform: translateX(240px);\n\t}\n\n\t#left {\n\t\tvisibility: hidden;\n\t\tposition: absolute;\n\t\ttop: 40px;\n\t\twidth: 240px;\n\t\ttransition: transform .2s ease, visibility .2s ease;\n\t\t-webkit-transform: translateX(-240px);\n\t\ttransform: translateX(-240px);\n\t\twill-change: transform, visibility;\n\t}\n\n\t.show-navigation #left {\n\t\tvisibility: visible;\n\t\t-webkit-transform: none;\n\t\ttransform: none;\n\t}\n\n\t#tmenu .burger {\n\t\tdisplay: inline;\n\t}\n}\n\n/* Handheld */\n@media (max-width: 767px) {\n\t#header h1 a {\n\t\tmin-width: 22px;\n\t\tpadding: 12px;\n\t}\n\n\t#header h1 a .app-title {\n\t\tdisplay: none;\n\t}\n\n\t#header h1 a .badge-title {\n\t\tmargin-left: 32px;\n\t}\n\n\t#tmenu > li > a {\n\t\twidth: 16px;\n\t\tmargin-bottom: -2px;\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-indent: 28px; /* 16px width + 12px padding */\n\t\tbackground-size: 18px !important;\n\t}\n\n\t#tmenu sup {\n\t\ttop: 6px;\n\t\tfont-size: .5rem;\n\t}\n\n\t#tmenu .icon-debug {\n\t\tbackground: url(\"icons/debug.svg\") center center no-repeat;\n\t}\n\n\t#tmenu .icon-preview {\n\t\tbackground: url(\"icons/preview.svg\") center center no-repeat;\n\t}\n\n\t#tmenu .profile button {\n\t\twidth: 40px;\n\t\tmargin: 0 0 -2px;\n\t\tpadding-right: 12px;\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-indent: 28px; /* 16px width + 12px padding */\n\t\tbackground: url(\"icons/profile.svg\") center center no-repeat;\n\t\tbackground-size: 18px;\n\t}\n\n\t#main .content {\n\t\tmargin: 15px 10px;\n\t}\n\n\t#main_headline {\n\t\tmargin: 13px 0;\n\t\tpadding: 0 11px;\n\t}\n\n\tdiv.tl_tbox, div.tl_box {\n\t\tposition: relative;\n\t}\n\n\t.tl_content_left {\n\t\twidth: 100%;\n\t\tfloat: none;\n\t}\n\n\t.showColumns th, .showColumns td {\n\t\tdisplay: block;\n\t}\n\n\t.showColumns th:empty {\n\t\tdisplay: none;\n\t}\n\n\t.tl_label {\n\t\twhite-space: normal;\n\t}\n\n\t.list_view .tl_listing img.theme_preview {\n\t\tdisplay: none;\n\t}\n\n\t.tl_filter {\n\t\tbox-sizing: border-box;\n\t\tpadding: 0 3px 0 7px;\n\t}\n\n\t.tl_filter strong {\n\t\tdisplay: none;\n\t}\n\n\t.tl_filter .tl_select {\n\t\tdisplay: block;\n\t\tmax-width: 100%;\n\t}\n\n\t.tl_search {\n\t\twidth: 76%;\n\t\tmax-width: 283px;\n\t}\n\n\t.tl_search .tl_select {\n\t\twidth: 36%;\n\t}\n\n\t.tl_search .tl_text {\n\t\twidth: 26%;\n\t}\n\n\t.tl_sorting {\n\t\twidth: 60%;\n\t\tmax-width: 212px;\n\t}\n\n\t.tl_limit {\n\t\twidth: 50%;\n\t\tmax-width: 177px;\n\t}\n\n\t.tl_submit_panel {\n\t\tfloat: right;\n\t\tz-index: 1;\n\t}\n\n\tinput.tl_submit {\n\t\tmargin-top: 3px;\n\t\tmargin-bottom: 3px;\n\t\tpadding-left: 6px !important;\n\t\tpadding-right: 7px !important;\n\t}\n\n\t.tl_listing .tl_left, .tl_show td {\n\t\tword-break: break-word;\n\t}\n\n\t#tl_breadcrumb li {\n\t\tpadding: 3px;\n\t}\n\n\t#tl_versions {\n\t\tdisplay: none;\n\t}\n\n\t.tl_version_panel .tl_select {\n\t\twidth: 44%;\n\t}\n\n\t.tl_modulewizard td:first-child {\n\t\twidth: 1%;\n\t}\n\n\t.tl_modulewizard td:first-child .tl_select {\n\t\tmax-width: 52vw;\n\t}\n\n\t#paste_hint, .sort_hint {\n\t\tdisplay: none;\n\t}\n\n\t#tl_maintenance_cache table {\n\t\twidth: 100%;\n\t}\n\n\t#tl_maintenance_cache tr th:last-child, #tl_maintenance_cache tr td:last-child {\n\t\tdisplay: none;\n\t}\n\n\t.tl_file_list .ellipsis {\n\t\tpadding-right: 10px;\n\t}\n\n\t.tl_undo_header {\n\t\tgrid-template-columns:2fr 3fr;\n\t}\n\n\t.tl_undo_header div:not(.tstamp, .source) {\n\t\tdisplay: none;\n\t}\n}\n\n/* Phones */\n@media (max-width: 599px) {\n\t.tl_metawizard label {\n\t\twidth: auto;\n\t\tfloat: none;\n\t\tfont-size: .9em;\n\t\tdisplay: block;\n\t\tmargin-top: 3px;\n\t}\n\n\t.tl_metawizard .tl_text {\n\t\twidth: 100%;\n\t}\n}\n\n@media (max-width: 479px) {\n\t.tl_modulewizard td:first-child .tl_select {\n\t\tmax-width: 48vw;\n\t}\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/contao/themes/flexible/entrypoints.json b/contao/themes/flexible/entrypoints.json index 0f72fdd919..e330da840b 100644 --- a/contao/themes/flexible/entrypoints.json +++ b/contao/themes/flexible/entrypoints.json @@ -2,7 +2,7 @@ "entrypoints": { "backend": { "css": [ - "/system/themes/flexible/backend.0e6e4e98.css" + "/system/themes/flexible/backend.ec1d4638.css" ] }, "confirm": { diff --git a/contao/themes/flexible/icons/manifest.json b/contao/themes/flexible/icons/manifest.json index 29153bbb3c..7ba64b4674 100644 --- a/contao/themes/flexible/icons/manifest.json +++ b/contao/themes/flexible/icons/manifest.json @@ -78,21 +78,26 @@ "delete_--dark.svg": "/system/themes/flexible/icons/delete_--dark.svg", "delete_.svg": "/system/themes/flexible/icons/delete_.svg", "placeholder--dark.svg": "/system/themes/flexible/icons/placeholder--dark.svg", + "feed_2--dark.svg": "/system/themes/flexible/icons/feed_2--dark.svg", "feed_2.svg": "/system/themes/flexible/icons/feed_2.svg", "feed_3--dark.svg": "/system/themes/flexible/icons/feed_3--dark.svg", "feed_3.svg": "/system/themes/flexible/icons/feed_3.svg", "placeholder.svg": "/system/themes/flexible/icons/placeholder.svg", + "logout_6--dark.svg": "/system/themes/flexible/icons/logout_6--dark.svg", "logout_6.svg": "/system/themes/flexible/icons/logout_6.svg", "logout_7--dark.svg": "/system/themes/flexible/icons/logout_7--dark.svg", "logout_7.svg": "/system/themes/flexible/icons/logout_7.svg", + "forward_6--dark.svg": "/system/themes/flexible/icons/forward_6--dark.svg", "forward_6.svg": "/system/themes/flexible/icons/forward_6.svg", "forward_7--dark.svg": "/system/themes/flexible/icons/forward_7--dark.svg", "forward_7.svg": "/system/themes/flexible/icons/forward_7.svg", + "redirect_6--dark.svg": "/system/themes/flexible/icons/redirect_6--dark.svg", "redirect_6.svg": "/system/themes/flexible/icons/redirect_6.svg", "redirect_7--dark.svg": "/system/themes/flexible/icons/redirect_7--dark.svg", "redirect_7.svg": "/system/themes/flexible/icons/redirect_7.svg", "loading--dark.svg": "/system/themes/flexible/icons/loading--dark.svg", "loading.svg": "/system/themes/flexible/icons/loading.svg", + "regular_6--dark.svg": "/system/themes/flexible/icons/regular_6--dark.svg", "regular_6.svg": "/system/themes/flexible/icons/regular_6.svg", "regular_7--dark.svg": "/system/themes/flexible/icons/regular_7--dark.svg", "regular_7.svg": "/system/themes/flexible/icons/regular_7.svg", @@ -106,10 +111,13 @@ "member_two_factor--disabled.svg": "/system/themes/flexible/icons/member_two_factor--disabled.svg", "user_two_factor--disabled--dark.svg": "/system/themes/flexible/icons/user_two_factor--disabled--dark.svg", "user_two_factor--disabled.svg": "/system/themes/flexible/icons/user_two_factor--disabled.svg", + "forward_4--dark.svg": "/system/themes/flexible/icons/forward_4--dark.svg", "forward_4.svg": "/system/themes/flexible/icons/forward_4.svg", "forward_5--dark.svg": "/system/themes/flexible/icons/forward_5--dark.svg", "forward_5.svg": "/system/themes/flexible/icons/forward_5.svg", + "parent--dark.svg": "/system/themes/flexible/icons/parent--dark.svg", "parent.svg": "/system/themes/flexible/icons/parent.svg", + "redirect_4--dark.svg": "/system/themes/flexible/icons/redirect_4--dark.svg", "redirect_4.svg": "/system/themes/flexible/icons/redirect_4.svg", "redirect_5--dark.svg": "/system/themes/flexible/icons/redirect_5--dark.svg", "redirect_5.svg": "/system/themes/flexible/icons/redirect_5.svg", @@ -120,6 +128,7 @@ "modules.svg": "/system/themes/flexible/icons/modules.svg", "articles_2.svg": "/system/themes/flexible/icons/articles_2.svg", "content.svg": "/system/themes/flexible/icons/content.svg", + "logout_4--dark.svg": "/system/themes/flexible/icons/logout_4--dark.svg", "logout_4.svg": "/system/themes/flexible/icons/logout_4.svg", "logout_5--dark.svg": "/system/themes/flexible/icons/logout_5--dark.svg", "logout_5.svg": "/system/themes/flexible/icons/logout_5.svg", @@ -142,6 +151,7 @@ "down.svg": "/system/themes/flexible/icons/down.svg", "sizes--disabled--dark.svg": "/system/themes/flexible/icons/sizes--disabled--dark.svg", "sizes--disabled.svg": "/system/themes/flexible/icons/sizes--disabled.svg", + "regular_4--dark.svg": "/system/themes/flexible/icons/regular_4--dark.svg", "regular_4.svg": "/system/themes/flexible/icons/regular_4.svg", "regular_5--dark.svg": "/system/themes/flexible/icons/regular_5--dark.svg", "regular_5.svg": "/system/themes/flexible/icons/regular_5.svg", @@ -155,15 +165,18 @@ "debug.svg": "/system/themes/flexible/icons/debug.svg", "filemounts.svg": "/system/themes/flexible/icons/filemounts.svg", "color_scheme--dark.svg": "/system/themes/flexible/icons/color_scheme--dark.svg", + "logout_2--dark.svg": "/system/themes/flexible/icons/logout_2--dark.svg", "logout_2.svg": "/system/themes/flexible/icons/logout_2.svg", "logout_3--dark.svg": "/system/themes/flexible/icons/logout_3--dark.svg", "logout_3.svg": "/system/themes/flexible/icons/logout_3.svg", "store.svg": "/system/themes/flexible/icons/store.svg", "sync.svg": "/system/themes/flexible/icons/sync.svg", "clipboard.svg": "/system/themes/flexible/icons/clipboard.svg", + "forward_2--dark.svg": "/system/themes/flexible/icons/forward_2--dark.svg", "forward_2.svg": "/system/themes/flexible/icons/forward_2.svg", "forward_3--dark.svg": "/system/themes/flexible/icons/forward_3--dark.svg", "forward_3.svg": "/system/themes/flexible/icons/forward_3.svg", + "redirect_2--dark.svg": "/system/themes/flexible/icons/redirect_2--dark.svg", "redirect_2.svg": "/system/themes/flexible/icons/redirect_2.svg", "redirect_3--dark.svg": "/system/themes/flexible/icons/redirect_3--dark.svg", "redirect_3.svg": "/system/themes/flexible/icons/redirect_3.svg", @@ -179,6 +192,7 @@ "children--disabled--dark.svg": "/system/themes/flexible/icons/children--disabled--dark.svg", "children--disabled.svg": "/system/themes/flexible/icons/children--disabled.svg", "children.svg": "/system/themes/flexible/icons/children.svg", + "regular_2--dark.svg": "/system/themes/flexible/icons/regular_2--dark.svg", "regular_2.svg": "/system/themes/flexible/icons/regular_2.svg", "regular_3--dark.svg": "/system/themes/flexible/icons/regular_3--dark.svg", "regular_3.svg": "/system/themes/flexible/icons/regular_3.svg", @@ -207,6 +221,7 @@ "folderC.svg": "/system/themes/flexible/icons/folderC.svg", "unfeatured--dark.svg": "/system/themes/flexible/icons/unfeatured--dark.svg", "unfeatured.svg": "/system/themes/flexible/icons/unfeatured.svg", + "root--dark.svg": "/system/themes/flexible/icons/root--dark.svg", "root.svg": "/system/themes/flexible/icons/root.svg", "root_1--dark.svg": "/system/themes/flexible/icons/root_1--dark.svg", "root_1.svg": "/system/themes/flexible/icons/root_1.svg", @@ -237,9 +252,11 @@ "favorites_small--dark.svg": "/system/themes/flexible/icons/favorites_small--dark.svg", "favorites_small.svg": "/system/themes/flexible/icons/favorites_small.svg", "filter-reset.svg": "/system/themes/flexible/icons/filter-reset.svg", + "forward--dark.svg": "/system/themes/flexible/icons/forward--dark.svg", "forward.svg": "/system/themes/flexible/icons/forward.svg", "forward_1--dark.svg": "/system/themes/flexible/icons/forward_1--dark.svg", "forward_1.svg": "/system/themes/flexible/icons/forward_1.svg", + "redirect--dark.svg": "/system/themes/flexible/icons/redirect--dark.svg", "redirect.svg": "/system/themes/flexible/icons/redirect.svg", "redirect_1--dark.svg": "/system/themes/flexible/icons/redirect_1--dark.svg", "redirect_1.svg": "/system/themes/flexible/icons/redirect_1.svg", @@ -264,6 +281,7 @@ "admin.svg": "/system/themes/flexible/icons/admin.svg", "article--dark.svg": "/system/themes/flexible/icons/article--dark.svg", "article.svg": "/system/themes/flexible/icons/article.svg", + "logout--dark.svg": "/system/themes/flexible/icons/logout--dark.svg", "logout.svg": "/system/themes/flexible/icons/logout.svg", "logout_1--dark.svg": "/system/themes/flexible/icons/logout_1--dark.svg", "logout_1.svg": "/system/themes/flexible/icons/logout_1.svg", @@ -271,18 +289,23 @@ "person.svg": "/system/themes/flexible/icons/person.svg", "root_2.svg": "/system/themes/flexible/icons/root_2.svg", "user.svg": "/system/themes/flexible/icons/user.svg", + "error_401--dark.svg": "/system/themes/flexible/icons/error_401--dark.svg", "error_401.svg": "/system/themes/flexible/icons/error_401.svg", "error_401_1--dark.svg": "/system/themes/flexible/icons/error_401_1--dark.svg", "error_401_1.svg": "/system/themes/flexible/icons/error_401_1.svg", + "error_403--dark.svg": "/system/themes/flexible/icons/error_403--dark.svg", "error_403.svg": "/system/themes/flexible/icons/error_403.svg", "error_403_1--dark.svg": "/system/themes/flexible/icons/error_403_1--dark.svg", "error_403_1.svg": "/system/themes/flexible/icons/error_403_1.svg", + "error_404--dark.svg": "/system/themes/flexible/icons/error_404--dark.svg", "error_404.svg": "/system/themes/flexible/icons/error_404.svg", "error_404_1--dark.svg": "/system/themes/flexible/icons/error_404_1--dark.svg", "error_404_1.svg": "/system/themes/flexible/icons/error_404_1.svg", + "error_503--dark.svg": "/system/themes/flexible/icons/error_503--dark.svg", "error_503.svg": "/system/themes/flexible/icons/error_503.svg", "error_503_1--dark.svg": "/system/themes/flexible/icons/error_503_1--dark.svg", "error_503_1.svg": "/system/themes/flexible/icons/error_503_1.svg", + "feed--dark.svg": "/system/themes/flexible/icons/feed--dark.svg", "feed.svg": "/system/themes/flexible/icons/feed.svg", "feed_1--dark.svg": "/system/themes/flexible/icons/feed_1--dark.svg", "feed_1.svg": "/system/themes/flexible/icons/feed_1.svg", @@ -302,11 +325,13 @@ "edit--disabled.svg": "/system/themes/flexible/icons/edit--disabled.svg", "edit.svg": "/system/themes/flexible/icons/edit.svg", "diff.svg": "/system/themes/flexible/icons/diff.svg", + "regular--dark.svg": "/system/themes/flexible/icons/regular--dark.svg", "regular.svg": "/system/themes/flexible/icons/regular.svg", "regular_1--dark.svg": "/system/themes/flexible/icons/regular_1--dark.svg", "regular_1.svg": "/system/themes/flexible/icons/regular_1.svg", "exit--dark.svg": "/system/themes/flexible/icons/exit--dark.svg", "exit.svg": "/system/themes/flexible/icons/exit.svg", + "error--dark.svg": "/system/themes/flexible/icons/error--dark.svg", "error.svg": "/system/themes/flexible/icons/error.svg", "info.svg": "/system/themes/flexible/icons/info.svg", "show.svg": "/system/themes/flexible/icons/show.svg", diff --git a/contao/themes/flexible/manifest.json b/contao/themes/flexible/manifest.json index f860ed2292..5044f0edc9 100644 --- a/contao/themes/flexible/manifest.json +++ b/contao/themes/flexible/manifest.json @@ -1,5 +1,5 @@ { - "backend.css": "/system/themes/flexible/backend.0e6e4e98.css", + "backend.css": "/system/themes/flexible/backend.ec1d4638.css", "confirm.css": "/system/themes/flexible/confirm.0b0092f5.css", "conflict.css": "/system/themes/flexible/conflict.faeff2ad.css", "diff.css": "/system/themes/flexible/diff.b2a77ae2.css", @@ -8,7 +8,7 @@ "popup.css": "/system/themes/flexible/popup.d0cc9fc6.css", "tinymce.css": "/system/themes/flexible/tinymce.e5009f94.css", "tinymce-dark.css": "/system/themes/flexible/tinymce-dark.596023db.css", - "backend.0e6e4e98.css.map": "/system/themes/flexible/backend.0e6e4e98.css.map", + "backend.ec1d4638.css.map": "/system/themes/flexible/backend.ec1d4638.css.map", "confirm.0b0092f5.css.map": "/system/themes/flexible/confirm.0b0092f5.css.map", "conflict.faeff2ad.css.map": "/system/themes/flexible/conflict.faeff2ad.css.map", "diff.b2a77ae2.css.map": "/system/themes/flexible/diff.b2a77ae2.css.map", diff --git a/contao/themes/flexible/styles/main.css b/contao/themes/flexible/styles/main.css index a105393524..afc6beb59f 100644 --- a/contao/themes/flexible/styles/main.css +++ b/contao/themes/flexible/styles/main.css @@ -1176,7 +1176,6 @@ table.tl_listing { } .tl_file, .tl_file_list { - position: relative; padding: 5px 6px; border-bottom: 1px solid var(--border); background: var(--content-bg); diff --git a/src/Command/SuperviseWorkersCommand.php b/src/Command/SuperviseWorkersCommand.php index d8921e6914..368d524728 100644 --- a/src/Command/SuperviseWorkersCommand.php +++ b/src/Command/SuperviseWorkersCommand.php @@ -20,6 +20,7 @@ use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Style\SymfonyStyle; use Symfony\Component\Messenger\Transport\Receiver\MessageCountAwareInterface; +use Symfony\Component\Process\Process; use Toflar\CronjobSupervisor\BasicCommand; use Toflar\CronjobSupervisor\CommandInterface; use Toflar\CronjobSupervisor\Supervisor; @@ -79,11 +80,17 @@ private function createCommandForWorker(string $identifier, array $worker): Comm return new BasicCommand( $identifier, $desiredWorkers, - fn () => $this->processUtil->createSymfonyConsoleProcess( - 'messenger:consume', - ...$worker['options'], - ...$worker['transports'], - ), + function () use ($worker): Process { + $process = $this->processUtil->createSymfonyConsoleProcess( + 'messenger:consume', + ...$worker['options'], + ...$worker['transports'], + ); + + $process->setTimeout(null); + + return $process; + }, ); } diff --git a/src/Cron/SuperviseWorkersCron.php b/src/Cron/SuperviseWorkersCron.php index 16761c5828..958688e8ff 100644 --- a/src/Cron/SuperviseWorkersCron.php +++ b/src/Cron/SuperviseWorkersCron.php @@ -30,8 +30,9 @@ public function __invoke(string $scope): PromiseInterface throw new CronExecutionSkippedException(); } - return $this->processUtil->createPromise( - $this->processUtil->createSymfonyConsoleProcess('contao:supervise-workers'), - ); + $process = $this->processUtil->createSymfonyConsoleProcess('contao:supervise-workers'); + $process->setTimeout(null); + + return $this->processUtil->createPromise($process); } } diff --git a/src/DependencyInjection/Compiler/IntlInstalledLocalesAndCountriesPass.php b/src/DependencyInjection/Compiler/IntlInstalledLocalesAndCountriesPass.php index 55c5cb3747..3cdb8c0daf 100644 --- a/src/DependencyInjection/Compiler/IntlInstalledLocalesAndCountriesPass.php +++ b/src/DependencyInjection/Compiler/IntlInstalledLocalesAndCountriesPass.php @@ -53,6 +53,7 @@ private function getEnabledLocales(ContainerBuilder $container): array } // The default locale must be the first supported language (see contao/core#6533) + /** @var array $languages */ $languages = [$defaultLocale]; $finder = Finder::create()->directories()->depth(0)->name('/^[a-z]{2,}/')->in($dirs); diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php index abf070236c..163780e29c 100644 --- a/src/DependencyInjection/Configuration.php +++ b/src/DependencyInjection/Configuration.php @@ -129,6 +129,34 @@ private function addMessengerNode(): NodeDefinition ->addDefaultsIfNotSet() ->info('Allows to define Symfony Messenger workers (messenger:consume). Workers are started every minute using the Contao cron job framework.') ->children() + ->arrayNode('web_worker') + ->addDefaultsIfNotSet() + ->info('Contao provides a way to work on Messenger transports in the web process (kernel.terminate) if there is no real "messenger:consume" worker. You can configure its behavior here.') + ->children() + ->arrayNode('transports') + ->info('The transports to apply the web worker logic to.') + ->scalarPrototype()->end() + ->defaultValue([]) + ->end() + ->scalarNode('grace_period') + ->defaultValue('PT10M') + ->validate() + ->ifTrue( + static function (string $period) { + try { + new \DateInterval($period); + } catch (\Exception) { + return true; + } + + return false; + }, + ) + ->thenInvalid('Must be a valid string for \DateInterval(). %s given.') + ->end() + ->end() + ->end() + ->end() ->arrayNode('workers') ->performNoDeepMerging() ->arrayPrototype() diff --git a/src/DependencyInjection/ContaoCoreExtension.php b/src/DependencyInjection/ContaoCoreExtension.php index 55db388f88..107885858a 100644 --- a/src/DependencyInjection/ContaoCoreExtension.php +++ b/src/DependencyInjection/ContaoCoreExtension.php @@ -243,6 +243,19 @@ public function configureFilesystem(FilesystemConfiguration $config): void private function handleMessengerConfig(array $config, ContainerBuilder $container): void { + if ($container->hasDefinition('contao.messenger.web_worker')) { + $definition = $container->getDefinition('contao.messenger.web_worker'); + + // Remove the entire service and all its listeners if there are no web worker + // transports configured + if ([] === $config['messenger']['web_worker']['transports']) { + $container->removeDefinition('contao.messenger.web_worker'); + } else { + $definition->setArgument(2, $config['messenger']['web_worker']['transports']); + $definition->setArgument(3, $config['messenger']['web_worker']['grace_period']); + } + } + if ( !$container->hasDefinition('contao.cron.supervise_workers') || !$container->hasDefinition('contao.command.supervise_workers') diff --git a/src/EventListener/CsrfTokenCookieSubscriber.php b/src/EventListener/CsrfTokenCookieSubscriber.php index e955a5d1dc..5c41d9b88a 100644 --- a/src/EventListener/CsrfTokenCookieSubscriber.php +++ b/src/EventListener/CsrfTokenCookieSubscriber.php @@ -22,8 +22,6 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\ResponseHeaderBag; -use Symfony\Component\HttpFoundation\Session\Session; -use Symfony\Component\HttpFoundation\Session\SessionInterface; use Symfony\Component\HttpKernel\Event\RequestEvent; use Symfony\Component\HttpKernel\Event\ResponseEvent; use Symfony\Component\HttpKernel\KernelEvents; @@ -93,8 +91,9 @@ public static function getSubscribedEvents(): array // (defaults to 32) KernelEvents::REQUEST => ['onKernelRequest', 36], // The priority must be higher than the one of the make-response-private listener - // (defaults to -896) - KernelEvents::RESPONSE => ['onKernelResponse', -832], + // (defaults to -1012) and lower than the one of the session listener (defaults + // to -1000) + KernelEvents::RESPONSE => ['onKernelResponse', -1006], ConsoleEvents::COMMAND => ['onCommand', 36], ]; } @@ -111,34 +110,7 @@ private function requiresCsrf(Request $request, Response $response): bool return true; } - if ($request->getUserInfo()) { - return true; - } - - return $request->hasSession() && !$this->isSessionEmpty($request->getSession()); - } - - private function isSessionEmpty(SessionInterface $session): bool - { - foreach (headers_list() as $header) { - if ( - str_starts_with($header, "Set-Cookie: {$session->getName()}=") - && !str_starts_with($header, "Set-Cookie: {$session->getName()}=deleted;") - ) { - return false; - } - } - - if (!$session->isStarted()) { - return true; - } - - if ($session instanceof Session) { - // Marked @internal but no other way to check all attribute bags - return $session->isEmpty(); - } - - return [] === $session->all(); + return (bool) $request->getUserInfo(); } private function setCookies(Request $request, Response $response): void diff --git a/src/EventListener/MakeResponsePrivateListener.php b/src/EventListener/MakeResponsePrivateListener.php index 69d2eee559..5652ba1667 100644 --- a/src/EventListener/MakeResponsePrivateListener.php +++ b/src/EventListener/MakeResponsePrivateListener.php @@ -16,20 +16,12 @@ use Symfony\Component\EventDispatcher\Attribute\AsEventListener; use Symfony\Component\HttpFoundation\Cookie; use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\HttpFoundation\Session\Session; -use Symfony\Component\HttpFoundation\Session\SessionInterface; use Symfony\Component\HttpKernel\Event\ResponseEvent; use Symfony\Component\HttpKernel\EventListener\AbstractSessionListener; /** - * The priority must be lower than the one of MergeHttpHeadersListener (defaults - * to 256) and must be lower than the one of the ClearSessionDataListener listener - * (defaults to -768) and must be lower than the one of the - * CsrfTokenCookieSubscriber listener (defaults to -832). - * * @internal */ -#[AsEventListener(priority: -896)] class MakeResponsePrivateListener { final public const DEBUG_HEADER = 'Contao-Private-Response-Reason'; @@ -38,20 +30,41 @@ public function __construct(private readonly ScopeMatcher $scopeMatcher) { } + /** + * The priority must be higher than the one of the session listener (defaults to -1000). + */ + #[AsEventListener(priority: -896)] + public function disableSymfonyAutoCacheControl(ResponseEvent $event): void + { + if (!$this->scopeMatcher->isContaoMainRequest($event)) { + return; + } + + // Disable the default Symfony auto cache control + $event->getResponse()->headers->set(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER, '1'); + } + /** * Make sure that the current response becomes a private response if any of the * following conditions are true. * * 1. An Authorization header is present and not empty - * 2. The session was started - * 3. The response sets a cookie (same reason as 2 but for other cookies than the session cookie) + * 2. The session was started by a request header + * 3. The response sets a cookie (including session cookies as this listener comes after the session listener) * 4. The response has a "Vary: Cookie" header and the request provides at least one cookie * * Some of this logic is also already implemented in the HttpCache (1, 2 and 3), * but we want to make sure it works for any reverse proxy without having to * configure too much. + * + * The priority must be lower than the one of MergeHttpHeadersListener (defaults + * to 256) and must be lower than the one of the ClearSessionDataListener listener + * (defaults to -768) and must be lower than the one of the + * CsrfTokenCookieSubscriber listener (defaults to -1006) and must be higher than + * the one of the StreamedResponseListener listener (defaults to -1024) */ - public function __invoke(ResponseEvent $event): void + #[AsEventListener(priority: -1012)] + public function makeResponsePrivate(ResponseEvent $event): void { if (!$this->scopeMatcher->isContaoMainRequest($event)) { return; @@ -60,9 +73,6 @@ public function __invoke(ResponseEvent $event): void $request = $event->getRequest(); $response = $event->getResponse(); - // Disable the default Symfony auto cache control - $response->headers->set(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER, '1'); - // If the response is not cacheable for a reverse proxy, we don't have to do // anything anyway if (!$response->isCacheable()) { @@ -76,15 +86,15 @@ public function __invoke(ResponseEvent $event): void return; } - // 2) The session was started and is not empty - if ($request->hasSession() && !$this->isSessionEmpty($request->getSession())) { + // 2) The session was started by a request header + if ($request->hasSession(true) && $request->hasPreviousSession()) { $this->makePrivate($response, 'session-cookie'); return; } - // 3) The response sets a cookie (same reason as 2 but for other cookies than the - // session cookie) + // 3) The response sets a cookie (including session cookies as this listener + // comes after the session listener) if ($cookies = $response->headers->getCookies()) { $this->makePrivate( $response, @@ -112,27 +122,4 @@ private function makePrivate(Response $response, string $reason): void $response->setPrivate(); $response->headers->set(self::DEBUG_HEADER, $reason); } - - private function isSessionEmpty(SessionInterface $session): bool - { - foreach (headers_list() as $header) { - if ( - str_starts_with($header, "Set-Cookie: {$session->getName()}=") - && !str_starts_with($header, "Set-Cookie: {$session->getName()}=deleted;") - ) { - return false; - } - } - - if (!$session->isStarted()) { - return true; - } - - if ($session instanceof Session) { - // Marked @internal but no other way to check all attribute bags - return $session->isEmpty(); - } - - return [] === $session->all(); - } } diff --git a/src/EventListener/RequestTokenListener.php b/src/EventListener/RequestTokenListener.php index a6176c728e..a8dcc09426 100644 --- a/src/EventListener/RequestTokenListener.php +++ b/src/EventListener/RequestTokenListener.php @@ -50,7 +50,7 @@ public function __invoke(RequestEvent $event): void // Only check the request token if a) the request is a POST request, b) the // request is not an Ajax request, c) the _token_check attribute is not false, d) - // the _token_check attribute is set or the request is a Contao request and e) + // the _token_check attribute is true or the request is a Contao request and e) // the request has cookies, an authenticated user or the session has been started if ( 'POST' !== $request->getRealMethod() diff --git a/src/EventListener/SearchIndexListener.php b/src/EventListener/SearchIndexListener.php index 817efa4177..8a31e85a99 100644 --- a/src/EventListener/SearchIndexListener.php +++ b/src/EventListener/SearchIndexListener.php @@ -58,19 +58,24 @@ public function __invoke(TerminateEvent $event): void $document = Document::createFromRequestResponse($request, $response); $needsIndex = $this->needsIndex($request, $response, $document); - $success = $event->getResponse()->isSuccessful(); + $needsDelete = $this->needsDelete($response, $document); - if ($needsIndex && $success && $this->enabledFeatures & self::FEATURE_INDEX) { + if ($needsIndex && $this->enabledFeatures & self::FEATURE_INDEX) { $this->messageBus->dispatch(SearchIndexMessage::createWithIndex($document)); } - if (!$success && $this->enabledFeatures & self::FEATURE_DELETE) { + if ($needsDelete && $this->enabledFeatures & self::FEATURE_DELETE) { $this->messageBus->dispatch(SearchIndexMessage::createWithDelete($document)); } } private function needsIndex(Request $request, Response $response, Document $document): bool { + // Do not index if response was not successful + if (!$response->isSuccessful()) { + return false; + } + // Do not index if called by crawler if (Factory::USER_AGENT === $request->headers->get('User-Agent')) { return false; @@ -100,4 +105,36 @@ private function needsIndex(Request $request, Response $response, Document $docu // If there are no json ld scripts at all, this should not be handled by our indexer return [] !== $document->extractJsonLdScripts(); } + + private function needsDelete(Response $response, Document $document): bool + { + // Always delete on 404 and 410 responses + if (\in_array($response->getStatusCode(), [Response::HTTP_NOT_FOUND, Response::HTTP_GONE], true)) { + return true; + } + + // Do not delete if the response was not successful + if (!$response->isSuccessful()) { + return false; + } + + // Delete if the X-Robots-Tag header contains "noindex" + if (str_contains($response->headers->get('X-Robots-Tag', ''), 'noindex')) { + return true; + } + + try { + $robots = $document->getContentCrawler()->filterXPath('//head/meta[@name="robots"]')->first()->attr('content'); + + // Delete if the meta robots tag contains "noindex" + if (str_contains($robots, 'noindex')) { + return true; + } + } catch (\Exception) { + // No meta robots tag found + } + + // Otherwise do not delete + return false; + } } diff --git a/src/Image/Studio/FigureBuilder.php b/src/Image/Studio/FigureBuilder.php index ad0320f184..30762d46d6 100644 --- a/src/Image/Studio/FigureBuilder.php +++ b/src/Image/Studio/FigureBuilder.php @@ -330,6 +330,18 @@ public function from(FilesModel|ImageInterface|int|string|null $identifier): sel */ public function fromStorage(VirtualFilesystemInterface $storage, Uuid|string $location): self { + // TODO: After contao/image supports a virtual storage, remove this workaround + // and replace it with something that can use $storage->generatePublicUri(). This + // workaround is currently required to support paths to symlinked folders inside + // the files directory. + if ($storage === $this->locator->get('contao.filesystem.virtual.files')) { + $path = Path::join($this->webDir, $this->uploadPath, $storage->get($location)->getPath()); + + if ($this->filesystem->exists($path)) { + return $this->fromPath($path); + } + } + try { $stream = $storage->readStream($location); } catch (VirtualFilesystemException|UnableToResolveUuidException $e) { diff --git a/src/InsertTag/Resolver/IfLanguageInsertTag.php b/src/InsertTag/Resolver/IfLanguageInsertTag.php index c05489f047..81d6ca9a62 100644 --- a/src/InsertTag/Resolver/IfLanguageInsertTag.php +++ b/src/InsertTag/Resolver/IfLanguageInsertTag.php @@ -18,13 +18,13 @@ use Contao\CoreBundle\InsertTag\ResolvedInsertTag; use Contao\CoreBundle\Util\LocaleUtil; use Contao\StringUtil; -use Symfony\Component\HttpFoundation\RequestStack; +use Symfony\Contracts\Translation\TranslatorInterface; #[AsBlockInsertTag('iflng', endTag: 'iflng')] #[AsBlockInsertTag('ifnlng', endTag: 'ifnlng')] class IfLanguageInsertTag implements BlockInsertTagResolverNestedResolvedInterface { - public function __construct(private readonly RequestStack $requestStack) + public function __construct(private readonly TranslatorInterface $translator) { } @@ -36,20 +36,16 @@ public function __invoke(ResolvedInsertTag $insertTag, ParsedSequence $wrappedCo throw new InvalidInsertTagException(sprintf('Missing language parameter in %s insert tag', $insertTag->getName())); } - if ($this->languageMatchesPage($language)) { + if ($this->languageMatchesTranslatorLocale($language)) { return $inverse ? new ParsedSequence([]) : $wrappedContent; } return $inverse ? $wrappedContent : new ParsedSequence([]); } - private function languageMatchesPage(string $language): bool + private function languageMatchesTranslatorLocale(string $language): bool { - if (!$request = $this->requestStack->getCurrentRequest()) { - return false; - } - - $pageLanguage = LocaleUtil::formatAsLocale($request->getLocale()); + $pageLanguage = LocaleUtil::formatAsLocale($this->translator->getLocale()); foreach (StringUtil::trimsplit(',', $language) as $lang) { if ($pageLanguage === LocaleUtil::formatAsLocale($lang)) { diff --git a/src/InsertTag/Resolver/LegacyInsertTag.php b/src/InsertTag/Resolver/LegacyInsertTag.php index ae2655947a..2ee07c861a 100644 --- a/src/InsertTag/Resolver/LegacyInsertTag.php +++ b/src/InsertTag/Resolver/LegacyInsertTag.php @@ -623,17 +623,21 @@ public function __invoke(ResolvedInsertTag $insertTag): InsertTagResult trigger_deprecation('contao/core-bundle', '5.0', 'Using the file insert tag to include templates has been deprecated and will no longer work in Contao 6. Use the "Template" content element instead.'); + $requestStack = $this->container->get('request_stack'); + $subRequest = null; $arrGet = $_GET; $strFile = $insertTag->getParameters()->get(0); // Take arguments and add them to the $_GET array if (str_contains($strFile, '?')) { + $subRequest = $requestStack->getCurrentRequest()->duplicate(); $arrChunks = explode('?', urldecode($strFile)); $strSource = StringUtil::decodeEntities($arrChunks[1]); $arrParams = explode('&', $strSource); foreach ($arrParams as $strParam) { $arrParam = explode('=', $strParam); + $subRequest->query->set($arrParam[0], $arrParam[1]); $_GET[$arrParam[0]] = $arrParam[1]; } @@ -647,6 +651,10 @@ public function __invoke(ResolvedInsertTag $insertTag): InsertTagResult // Include .php, .tpl, .xhtml and .html5 files if (preg_match('/\.(php|tpl|xhtml|html5)$/', $strFile) && (new Filesystem())->exists($this->container->getParameter('kernel.project_dir').'/templates/'.$strFile)) { + if ($subRequest) { + $requestStack->push($subRequest); + } + ob_start(); try { @@ -654,6 +662,10 @@ public function __invoke(ResolvedInsertTag $insertTag): InsertTagResult $result = ob_get_contents(); } finally { ob_end_clean(); + + if ($subRequest) { + $requestStack->pop(); + } } } diff --git a/src/InsertTag/Resolver/LinkInsertTag.php b/src/InsertTag/Resolver/LinkInsertTag.php index 22bb2f9596..3b2905f107 100644 --- a/src/InsertTag/Resolver/LinkInsertTag.php +++ b/src/InsertTag/Resolver/LinkInsertTag.php @@ -92,10 +92,20 @@ public function replaceInsertTag(ResolvedInsertTag $insertTag): InsertTagResult $strUrl = StringUtil::encodeEmail($strUrl); } } catch (ExceptionInterface) { - // Use empty URL defined above + // Replace with empty string (#7250) + switch ($insertTag->getName()) { + case 'link': + case 'link_open': + case 'link_url': return new InsertTagResult(''); + } } } + // Use "/" for the index page (#2394) + if ('' === $strUrl) { + $strUrl = '/'; + } + $strName = $objNextPage->title; $strTarget = $objNextPage->target ? ' target="_blank" rel="noreferrer noopener"' : ''; $strClass = $objNextPage->cssClass ? sprintf(' class="%s"', $objNextPage->cssClass) : ''; @@ -107,9 +117,9 @@ public function replaceInsertTag(ResolvedInsertTag $insertTag): InsertTagResult } return match ($insertTag->getName()) { - 'link' => new InsertTagResult(sprintf('%s', $strUrl ?: './', StringUtil::specialcharsAttribute($strTitle), $strClass, $strTarget, $strName), OutputType::html), - 'link_open' => new InsertTagResult(sprintf('', $strUrl ?: './', StringUtil::specialcharsAttribute($strTitle), $strClass, $strTarget), OutputType::html), - 'link_url' => new InsertTagResult($strUrl ?: './', OutputType::url), + 'link' => new InsertTagResult(sprintf('%s', $strUrl, StringUtil::specialcharsAttribute($strTitle), $strClass, $strTarget, $strName), OutputType::html), + 'link_open' => new InsertTagResult(sprintf('', $strUrl, StringUtil::specialcharsAttribute($strTitle), $strClass, $strTarget), OutputType::html), + 'link_url' => new InsertTagResult($strUrl, OutputType::url), 'link_title' => new InsertTagResult(StringUtil::specialcharsAttribute($strTitle), OutputType::html), 'link_name' => new InsertTagResult(StringUtil::specialcharsAttribute($strName), OutputType::html), default => throw new InvalidInsertTagException(), diff --git a/src/Messenger/AutoFallbackNotifier.php b/src/Messenger/AutoFallbackNotifier.php deleted file mode 100644 index f39899ec13..0000000000 --- a/src/Messenger/AutoFallbackNotifier.php +++ /dev/null @@ -1,64 +0,0 @@ -isAutoFallbackTransport($transportName)) { - return; - } - - $item = $this->getCacheItemForTransportName($transportName); - $item->expiresAfter(60); - - $this->cache->save($item); - } - - public function isWorkerRunning(string $transportName): bool - { - if (!$this->isAutoFallbackTransport($transportName)) { - return false; - } - - return $this->getCacheItemForTransportName($transportName)->isHit(); - } - - private function isAutoFallbackTransport(string $transportName): bool - { - if (!$this->messengerTransportLocator->has($transportName)) { - return false; - } - - $transport = $this->messengerTransportLocator->get($transportName); - - return $transport instanceof AutoFallbackTransport; - } - - private function getCacheItemForTransportName(string $transportName): CacheItemInterface - { - return $this->cache->getItem('auto-fallback-transport-notifier-'.$transportName); - } -} diff --git a/src/Messenger/EventListener/WorkerListener.php b/src/Messenger/EventListener/WorkerListener.php deleted file mode 100644 index ac80b4441c..0000000000 --- a/src/Messenger/EventListener/WorkerListener.php +++ /dev/null @@ -1,41 +0,0 @@ -getWorker()->getMetadata()->getTransportNames() as $transportName) { - $this->autoFallbackNotifier->ping($transportName); - } - } - - #[AsEventListener] - public function onWorkerStarted(WorkerStartedEvent $event): void - { - foreach ($event->getWorker()->getMetadata()->getTransportNames() as $transportName) { - $this->autoFallbackNotifier->ping($transportName); - } - } -} diff --git a/src/Messenger/Transport/AutoFallbackTransport.php b/src/Messenger/Transport/AutoFallbackTransport.php deleted file mode 100644 index 3570b879a3..0000000000 --- a/src/Messenger/Transport/AutoFallbackTransport.php +++ /dev/null @@ -1,100 +0,0 @@ -isWorkerRunning()) { - return $this->target->get(); - } - - return $this->fallback->get(); - } - - public function ack(Envelope $envelope): void - { - if ($this->isWorkerRunning()) { - $this->target->ack($envelope); - - return; - } - - $this->fallback->ack($envelope); - } - - public function reject(Envelope $envelope): void - { - if ($this->isWorkerRunning()) { - $this->target->reject($envelope); - - return; - } - - $this->fallback->reject($envelope); - } - - public function send(Envelope $envelope): Envelope - { - if ($this->isWorkerRunning()) { - return $this->target->send($envelope); - } - - return $this->fallback->send($envelope); - } - - public function getMessageCount(): int - { - $transport = $this->isWorkerRunning() ? $this->target : $this->fallback; - - if ($transport instanceof MessageCountAwareInterface) { - return $transport->getMessageCount(); - } - - return 0; - } - - public function getSelfTransportName(): string - { - return $this->selfTransportName; - } - - public function getTarget(): TransportInterface - { - return $this->target; - } - - public function getFallback(): TransportInterface - { - return $this->fallback; - } - - private function isWorkerRunning(): bool - { - return $this->autoFallbackNotifier->isWorkerRunning($this->selfTransportName); - } -} diff --git a/src/Messenger/Transport/AutoFallbackTransportFactory.php b/src/Messenger/Transport/AutoFallbackTransportFactory.php deleted file mode 100644 index 8868c372ad..0000000000 --- a/src/Messenger/Transport/AutoFallbackTransportFactory.php +++ /dev/null @@ -1,68 +0,0 @@ - - */ -class AutoFallbackTransportFactory implements TransportFactoryInterface -{ - public function __construct( - private readonly AutoFallbackNotifier $autoFallbackNotifier, - private readonly ContainerInterface $messengerTransportLocator, - ) { - } - - public function createTransport(string $dsn, array $options, SerializerInterface $serializer): AutoFallbackTransport - { - if (!$parsedUrl = parse_url($dsn)) { - throw new InvalidArgumentException(sprintf('The given Auto Fallback DSN "%s" is invalid.', $dsn)); - } - - parse_str($parsedUrl['query'] ?? '', $parsedQuery); - - $self = $parsedUrl['host'] ?? ''; - $target = $parsedQuery['target'] ?? ''; - $fallback = $parsedQuery['fallback'] ?? ''; - - if (!$this->messengerTransportLocator->has($self)) { - throw new InvalidArgumentException(sprintf('The given Auto Fallback Transport self "%s" is invalid.', $self)); - } - - if (!$this->messengerTransportLocator->has($target)) { - throw new InvalidArgumentException(sprintf('The given Auto Fallback Transport target "%s" is invalid.', $target)); - } - - if (!$this->messengerTransportLocator->has($fallback)) { - throw new InvalidArgumentException(sprintf('The given Auto Fallback Transport fallback "%s" is invalid.', $fallback)); - } - - return new AutoFallbackTransport( - $this->autoFallbackNotifier, - $self, - $this->messengerTransportLocator->get($target), - $this->messengerTransportLocator->get($fallback), - ); - } - - public function supports(string $dsn, array $options): bool - { - return str_starts_with($dsn, 'contao-auto-fallback://'); - } -} diff --git a/src/Messenger/WebWorker.php b/src/Messenger/WebWorker.php new file mode 100644 index 0000000000..fb21d8b9e2 --- /dev/null +++ b/src/Messenger/WebWorker.php @@ -0,0 +1,130 @@ +transports as $transportName) { + $this->processTransport($transportName); + } + } + + #[AsEventListener] + public function onWorkerStarted(WorkerStartedEvent $event): void + { + foreach ($event->getWorker()->getMetadata()->getTransportNames() as $transportName) { + $this->ping($transportName); + } + } + + #[AsEventListener] + public function onWorkerRunning(WorkerRunningEvent $event): void + { + // Stop idle web workers to free the web process. + if ($this->webWorkerRunning && $event->isWorkerIdle()) { + $event->getWorker()->stop(); + + return; + } + + foreach ($event->getWorker()->getMetadata()->getTransportNames() as $transportName) { + $this->ping($transportName); + } + } + + public function ping(string $transportName): void + { + // If we are running in our web worker process, we never ping (otherwise we + // would self-disable) + if ($this->webWorkerRunning) { + return; + } + + // If this is a transport we don't care about, we don't do anything either + if (!\in_array($transportName, $this->transports, true)) { + return; + } + + $item = $this->getCacheItemForTransportName($transportName); + $item->expiresAfter(new \DateInterval($this->gracePeriod)); + + $this->cache->save($item); + } + + private function getCacheItemForTransportName(string $transportName): CacheItemInterface + { + return $this->cache->getItem('contao-web-worker-'.$transportName); + } + + private function processTransport(string $transportName): void + { + // Real worker is running, abort + if ($this->getCacheItemForTransportName($transportName)->isHit()) { + return; + } + + $this->webWorkerRunning = true; + + $input = new ArrayInput([ + 'receivers' => [$transportName], + '--time-limit' => 30, + '--sleep' => 0, + ]); + + // No need to log anything because this is done by the messenger:consume command + // already and would only cause log duplication. + $this->consumeMessagesCommand->run($input, new NullOutput()); + + $this->webWorkerRunning = false; + } +} diff --git a/src/OptIn/OptIn.php b/src/OptIn/OptIn.php index 16bf46d6a6..d1c326270a 100644 --- a/src/OptIn/OptIn.php +++ b/src/OptIn/OptIn.php @@ -42,6 +42,8 @@ public function create(string $prefix, string $email, array $related): OptInToke $token = $prefix.'-'.substr($token, \strlen($prefix) + 1); } + $this->framework->initialize(); + $optIn = $this->framework->createInstance(OptInModel::class); $optIn->tstamp = time(); $optIn->token = $token; @@ -60,6 +62,8 @@ public function create(string $prefix, string $email, array $related): OptInToke public function find(string $identifier): OptInTokenInterface|null { + $this->framework->initialize(); + $adapter = $this->framework->getAdapter(OptInModel::class); if (!$model = $adapter->findByToken($identifier)) { @@ -71,6 +75,8 @@ public function find(string $identifier): OptInTokenInterface|null public function purgeTokens(): void { + $this->framework->initialize(); + $adapter = $this->framework->getAdapter(OptInModel::class); if (!$tokens = $adapter->findExpiredTokens()) { diff --git a/tests/Contao/InsertTagsTest.php b/tests/Contao/InsertTagsTest.php index b6912b4da8..accea117e8 100644 --- a/tests/Contao/InsertTagsTest.php +++ b/tests/Contao/InsertTagsTest.php @@ -30,9 +30,9 @@ use Psr\Log\LoggerInterface; use Symfony\Bridge\PhpUnit\ExpectDeprecationTrait; use Symfony\Component\Config\FileLocatorInterface; -use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpKernel\Fragment\FragmentHandler; +use Symfony\Contracts\Translation\TranslatorInterface; class InsertTagsTest extends TestCase { @@ -779,18 +779,12 @@ public static function encodeHtmlAttributesProvider(): iterable * * @group legacy */ - public function testRemovesLanguageInsertTags(string $source, string $expected, string $pageLanguage = 'en'): void + public function testRemovesLanguageInsertTags(string $source, string $expected, string $translatorLocale = 'en'): void { - $request = $this->createMock(Request::class); - $request + $translator = $this->createMock(TranslatorInterface::class); + $translator ->method('getLocale') - ->willReturn($pageLanguage) - ; - - $requestStack = $this->createMock(RequestStack::class); - $requestStack - ->method('getCurrentRequest') - ->willReturn($request) + ->willReturn($translatorLocale) ; $reflectionClass = new \ReflectionClass(InsertTags::class); @@ -801,7 +795,7 @@ public function testRemovesLanguageInsertTags(string $source, string $expected, System::getContainer()->set('contao.insert_tag.parser', $insertTagParser); $insertTagParser->addBlockSubscription(new InsertTagSubscription( - new IfLanguageInsertTag($requestStack), + new IfLanguageInsertTag($translator), '__invoke', 'iflng', 'iflng', @@ -810,7 +804,7 @@ public function testRemovesLanguageInsertTags(string $source, string $expected, )); $insertTagParser->addBlockSubscription(new InsertTagSubscription( - new IfLanguageInsertTag($requestStack), + new IfLanguageInsertTag($translator), '__invoke', 'ifnlng', 'ifnlng', diff --git a/tests/Contao/StringUtilTest.php b/tests/Contao/StringUtilTest.php index 1c377b845c..a0ad06eec5 100644 --- a/tests/Contao/StringUtilTest.php +++ b/tests/Contao/StringUtilTest.php @@ -558,6 +558,7 @@ public function testResolvesReferencesInArrays(): void $this->assertNotSame($ref, $dereferenced[0]); $this->assertSame($ref, $array[0]); + /** @phpstan-ignore method.impossibleType */ $this->assertSame( [ ['a'], diff --git a/tests/DependencyInjection/Compiler/AddInsertTagsPassTest.php b/tests/DependencyInjection/Compiler/AddInsertTagsPassTest.php index 80897ec6b2..6cbe264682 100644 --- a/tests/DependencyInjection/Compiler/AddInsertTagsPassTest.php +++ b/tests/DependencyInjection/Compiler/AddInsertTagsPassTest.php @@ -176,10 +176,10 @@ public static function getAddsExpectedMethodCalls(): iterable yield [ [ - 'service_a' => (new Definition(IfLanguageInsertTag::class))->addTag('contao.insert_tag', get_object_vars(new AsInsertTag('date', method: 'languageMatchesPage'))), + 'service_a' => (new Definition(IfLanguageInsertTag::class))->addTag('contao.insert_tag', get_object_vars(new AsInsertTag('date', method: 'languageMatchesTranslatorLocale'))), ], [], - new InvalidDefinitionException('The contao.insert_tag definition for service "service_a" is invalid. The "Contao\CoreBundle\InsertTag\Resolver\IfLanguageInsertTag::languageMatchesPage" method exists but is not public.'), + new InvalidDefinitionException('The contao.insert_tag definition for service "service_a" is invalid. The "Contao\CoreBundle\InsertTag\Resolver\IfLanguageInsertTag::languageMatchesTranslatorLocale" method exists but is not public.'), ]; yield [ diff --git a/tests/DependencyInjection/ConfigurationTest.php b/tests/DependencyInjection/ConfigurationTest.php index 32d1d77baa..32356fd5f6 100644 --- a/tests/DependencyInjection/ConfigurationTest.php +++ b/tests/DependencyInjection/ConfigurationTest.php @@ -310,6 +310,10 @@ public function testMessengerConfiguration(): void ], ], ], + 'web_worker' => [ + 'transports' => [], + 'grace_period' => 'PT10M', + ], ], $configuration['messenger'], ); @@ -362,6 +366,24 @@ public function testMessengerConfiguration(): void } } + public function testFailsOnInvalidWebWorkerGracePeriod(): void + { + $params = [ + [ + 'messenger' => [ + 'web_worker' => [ + 'grace_period' => 'nonsense', + ], + ], + ], + ]; + + $this->expectException(InvalidConfigurationException::class); + $this->expectExceptionMessage('Invalid configuration for path "contao.messenger.web_worker.grace_period": Must be a valid string for \DateInterval(). "nonsense" given.'); + + (new Processor())->processConfiguration($this->configuration, $params); + } + /** * @dataProvider invalidAllowedInlineStylesRegexProvider */ diff --git a/tests/DependencyInjection/ContaoCoreExtensionTest.php b/tests/DependencyInjection/ContaoCoreExtensionTest.php index ff7c36c7d0..f5d9d74bcc 100644 --- a/tests/DependencyInjection/ContaoCoreExtensionTest.php +++ b/tests/DependencyInjection/ContaoCoreExtensionTest.php @@ -83,7 +83,7 @@ public function testRegistersTheMakeResponsePrivateListenerAtTheEnd(): void $container = $this->getContainerBuilder(); $makeResponsePrivateDefinition = $container->getDefinition('contao.listener.make_response_private'); - $attribute = (new \ReflectionClass($makeResponsePrivateDefinition->getClass()))->getAttributes()[0]; + $attribute = (new \ReflectionClass($makeResponsePrivateDefinition->getClass()))->getMethod('makeResponsePrivate')->getAttributes()[0]; $makeResponsePrivatePriority = $attribute->getArguments()['priority']; $mergeHeadersListenerDefinition = $container->getDefinition('contao.listener.merge_http_headers'); @@ -444,6 +444,27 @@ public function testDoesNotRegisterTheDefaultSearchIndexerIfItIsDisabled(): void $this->assertFalse($container->hasDefinition('contao.search.default_indexer')); } + public function testRemovesWebWorkerIfNoTransportsAreConfigured(): void + { + $container = $this->getContainerBuilder(); + + $extension = new ContaoCoreExtension(); + $extension->load( + [ + 'contao' => [ + 'messenger' => [ + 'web_worker' => [ + 'transports' => [], + ], + ], + ], + ], + $container, + ); + + $this->assertFalse($container->hasDefinition('contao.messenger.web_worker')); + } + public function testSetsTheCorrectFeatureFlagOnTheSearchIndexListener(): void { $container = $this->getContainerBuilder(); diff --git a/tests/EventListener/LocaleSubscriberTest.php b/tests/EventListener/LocaleSubscriberTest.php index 724d502c6b..2c16fd96fc 100644 --- a/tests/EventListener/LocaleSubscriberTest.php +++ b/tests/EventListener/LocaleSubscriberTest.php @@ -12,9 +12,9 @@ namespace Contao\CoreBundle\Tests\EventListener; -use Contao\CoreBundle\ContaoCoreBundle; use Contao\CoreBundle\EventListener\LocaleSubscriber; use Contao\CoreBundle\Intl\Locales; +use Contao\CoreBundle\Routing\ScopeMatcher; use Contao\CoreBundle\Tests\TestCase; use PHPUnit\Framework\MockObject\MockObject; use Symfony\Component\HttpFoundation\ParameterBag; @@ -31,22 +31,39 @@ class LocaleSubscriberTest extends TestCase */ public function testReadsTheLocaleFromTheRequest(string|null $locale, string $expected): void { - $request = Request::create('/'); - $request->attributes->set('_locale', $locale); - $request->attributes->set('_scope', ContaoCoreBundle::SCOPE_FRONTEND); + $request = $this->createMock(Request::class); + $request->attributes = $this->createMock(ParameterBag::class); + $request->attributes + ->expects($this->atLeastOnce()) + ->method('get') + ->with('_locale') + ->willReturn($expected) + ; + + $request->attributes + ->expects($this->once()) + ->method('set') + ->with('_locale', $expected) + ; + + $scopeMatcher = $this->createMock(ScopeMatcher::class); + $scopeMatcher + ->expects($this->once()) + ->method('isContaoRequest') + ->with($request) + ->willReturn(true) + ; $kernel = $this->createMock(KernelInterface::class); $event = new RequestEvent($kernel, $request, HttpKernelInterface::MAIN_REQUEST); $listener = new LocaleSubscriber( $this->createMock(LocaleAwareInterface::class), - $this->mockScopeMatcher(), + $scopeMatcher, $this->mockLocales(['en']), ); $listener->onKernelRequest($event); - - $this->assertSame($expected, $request->attributes->get('_locale')); } public static function getLocaleRequestData(): iterable @@ -64,9 +81,23 @@ public static function getLocaleRequestData(): iterable */ public function testReadsTheLocaleFromTheAcceptLanguageHeader(string|null $locale, string $expected, array $available): void { - $request = Request::create('/'); - $request->headers->set('Accept-Language', $locale); - $request->attributes->set('_scope', ContaoCoreBundle::SCOPE_FRONTEND); + $request = $this->createMock(Request::class); + $request->attributes = new ParameterBag(); + + $request + ->expects($this->once()) + ->method('getPreferredLanguage') + ->with($available) + ->willReturn($expected) + ; + + $scopeMatcher = $this->createMock(ScopeMatcher::class); + $scopeMatcher + ->expects($this->once()) + ->method('isContaoRequest') + ->with($request) + ->willReturn(true) + ; $event = new RequestEvent( $this->createMock(KernelInterface::class), @@ -76,7 +107,7 @@ public function testReadsTheLocaleFromTheAcceptLanguageHeader(string|null $local $listener = new LocaleSubscriber( $this->createMock(LocaleAwareInterface::class), - $this->mockScopeMatcher(), + $scopeMatcher, $this->mockLocales($available), ); @@ -121,8 +152,13 @@ public function testDoesNothingIfThereIsNoRequestScope(): void public function testSetsTheTranslatorLocale(): void { - $request = Request::create('/'); - $request->headers->set('Accept-Language', 'de'); + $request = $this->createMock(Request::class); + $request + ->expects($this->once()) + ->method('getPreferredLanguage') + ->with(['en', 'de']) + ->willReturn('de') + ; $event = new RequestEvent( $this->createMock(KernelInterface::class), diff --git a/tests/EventListener/MakeResponsePrivateListenerTest.php b/tests/EventListener/MakeResponsePrivateListenerTest.php index bd0f4e982b..71a89f33cf 100644 --- a/tests/EventListener/MakeResponsePrivateListenerTest.php +++ b/tests/EventListener/MakeResponsePrivateListenerTest.php @@ -45,7 +45,7 @@ public function testIgnoresNonContaoMainRequests(): void ); $listener = new MakeResponsePrivateListener($this->createScopeMatcher(false)); - $listener($event); + $listener->makeResponsePrivate($event); $this->assertTrue($response->headers->getCacheControlDirective('public')); $this->assertFalse($response->headers->has(MakeResponsePrivateListener::DEBUG_HEADER)); @@ -65,10 +65,9 @@ public function testIgnoresRequestsThatMatchNoCondition(): void ); $listener = new MakeResponsePrivateListener($this->createScopeMatcher(true)); - $listener($event); + $listener->makeResponsePrivate($event); $this->assertTrue($response->headers->getCacheControlDirective('public')); - $this->assertTrue($response->headers->has(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER)); $this->assertSame('600', $response->headers->getCacheControlDirective('max-age')); $this->assertFalse($response->headers->has(MakeResponsePrivateListener::DEBUG_HEADER)); } @@ -90,9 +89,8 @@ public function testMakesResponsePrivateWhenAnAuthorizationHeaderIsPresent(): vo ); $listener = new MakeResponsePrivateListener($this->createScopeMatcher(true)); - $listener($event); + $listener->makeResponsePrivate($event); - $this->assertTrue($response->headers->has(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER)); $this->assertTrue($response->headers->getCacheControlDirective('private')); $this->assertSame('authorization', $response->headers->get(MakeResponsePrivateListener::DEBUG_HEADER)); } @@ -114,9 +112,8 @@ public function testIgnoresTheResponseWhenAnAuthorizationHeaderIsEmpty(): void ); $listener = new MakeResponsePrivateListener($this->createScopeMatcher(true)); - $listener($event); + $listener->makeResponsePrivate($event); - $this->assertTrue($response->headers->has(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER)); $this->assertTrue($response->headers->getCacheControlDirective('public')); $this->assertFalse($response->headers->has(MakeResponsePrivateListener::DEBUG_HEADER)); } @@ -138,9 +135,8 @@ public function testIgnoresTheResponseWhenAnAuthorizationHeaderIsNull(): void ); $listener = new MakeResponsePrivateListener($this->createScopeMatcher(true)); - $listener($event); + $listener->makeResponsePrivate($event); - $this->assertTrue($response->headers->has(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER)); $this->assertTrue($response->headers->getCacheControlDirective('public')); $this->assertFalse($response->headers->has(MakeResponsePrivateListener::DEBUG_HEADER)); } @@ -166,9 +162,8 @@ public function testIgnoresTheResponseWhenTheSessionWasStartedButIsEmpty(): void ); $listener = new MakeResponsePrivateListener($this->createScopeMatcher(true)); - $listener($event); + $listener->makeResponsePrivate($event); - $this->assertTrue($response->headers->has(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER)); $this->assertTrue($response->headers->getCacheControlDirective('public')); $this->assertFalse($response->headers->has(MakeResponsePrivateListener::DEBUG_HEADER)); } @@ -185,6 +180,8 @@ public function testMakesResponsePrivateWhenTheSessionIsStartedAndNotEmpty(): vo $request = new Request(); $request->setSession($session); + $request->cookies->set($session->getName(), $session->getId()); + $event = new ResponseEvent( $this->createMock(KernelInterface::class), $request, @@ -193,9 +190,8 @@ public function testMakesResponsePrivateWhenTheSessionIsStartedAndNotEmpty(): vo ); $listener = new MakeResponsePrivateListener($this->createScopeMatcher(true)); - $listener($event); + $listener->makeResponsePrivate($event); - $this->assertTrue($response->headers->has(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER)); $this->assertTrue($response->headers->getCacheControlDirective('private')); $this->assertSame('session-cookie', $response->headers->get(MakeResponsePrivateListener::DEBUG_HEADER)); } @@ -217,9 +213,8 @@ public function testMakesResponsePrivateWhenTheResponseContainsACookie(): void ); $listener = new MakeResponsePrivateListener($this->createScopeMatcher(true)); - $listener($event); + $listener->makeResponsePrivate($event); - $this->assertTrue($response->headers->has(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER)); $this->assertTrue($response->headers->getCacheControlDirective('private')); $this->assertSame('response-cookies (foobar, foobar2)', $response->headers->get(MakeResponsePrivateListener::DEBUG_HEADER)); } @@ -239,9 +234,8 @@ public function testMakesResponsePrivateWhenItContainsVaryCookieAndTheRequestPro ); $listener = new MakeResponsePrivateListener($this->createScopeMatcher(true)); - $listener($event); + $listener->makeResponsePrivate($event); - $this->assertTrue($response->headers->has(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER)); $this->assertTrue($response->headers->getCacheControlDirective('private')); $this->assertSame('request-cookies (super-cookie)', $response->headers->get(MakeResponsePrivateListener::DEBUG_HEADER)); } @@ -261,13 +255,46 @@ public function testIgnoresTheResponseWhenItContainsVaryCookieButTheRequestDoesN ); $listener = new MakeResponsePrivateListener($this->createScopeMatcher(true)); - $listener($event); + $listener->makeResponsePrivate($event); - $this->assertTrue($response->headers->has(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER)); $this->assertTrue($response->headers->getCacheControlDirective('public')); $this->assertFalse($response->headers->has(MakeResponsePrivateListener::DEBUG_HEADER)); } + public function testDisablesSymfonyAutoCache(): void + { + $response = new Response(); + + $event = new ResponseEvent( + $this->createMock(KernelInterface::class), + new Request(), + HttpKernelInterface::MAIN_REQUEST, + $response, + ); + + $listener = new MakeResponsePrivateListener($this->createScopeMatcher(true)); + $listener->disableSymfonyAutoCacheControl($event); + + $this->assertTrue($response->headers->has(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER)); + } + + public function testDoesNotDisableSymfonyAutoCache(): void + { + $response = new Response(); + + $event = new ResponseEvent( + $this->createMock(KernelInterface::class), + new Request(), + HttpKernelInterface::MAIN_REQUEST, + $response, + ); + + $listener = new MakeResponsePrivateListener($this->createScopeMatcher(false)); + $listener->disableSymfonyAutoCacheControl($event); + + $this->assertFalse($response->headers->has(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER)); + } + private function createScopeMatcher(bool $isContaoMainRequest): ScopeMatcher { $scopeMatcher = $this->createMock(ScopeMatcher::class); diff --git a/tests/EventListener/SearchIndexListenerTest.php b/tests/EventListener/SearchIndexListenerTest.php index 8e79bdf187..df31f7bcc4 100644 --- a/tests/EventListener/SearchIndexListenerTest.php +++ b/tests/EventListener/SearchIndexListenerTest.php @@ -104,7 +104,7 @@ public static function getRequestResponse(): iterable false, ]; - yield 'Should be deleted because the response was not successful (404)' => [ + yield 'Should be deleted because the response was "not found" (404)' => [ Request::create('/foobar'), new Response('', 404), SearchIndexListener::FEATURE_DELETE | SearchIndexListener::FEATURE_INDEX, @@ -112,26 +112,26 @@ public static function getRequestResponse(): iterable true, ]; - yield 'Should be deleted because the response was not successful (403)' => [ + yield 'Should be deleted because the response was "gone" (410)' => [ Request::create('/foobar'), - new Response('', 403), + new Response('', 404), SearchIndexListener::FEATURE_DELETE | SearchIndexListener::FEATURE_INDEX, false, true, ]; - yield 'Should not be deleted because even though the response was not successful (403), it was disabled by the feature flag ' => [ + yield 'Should not be deleted because even though the response was "not found" (404), it was disabled by the feature flag' => [ Request::create('/foobar'), - new Response('', 403), + new Response('', 404), SearchIndexListener::FEATURE_INDEX, false, false, ]; - $response = new Response('', 403); + $response = new Response('', 200); $response->headers->set('X-Robots-Tag', 'noindex'); - yield 'Should not be handled because the X-Robots-Tag header contains "noindex" ' => [ + yield 'Should not index but should delete because the X-Robots-Tag header contains "noindex"' => [ Request::create('/foobar'), $response, SearchIndexListener::FEATURE_DELETE | SearchIndexListener::FEATURE_INDEX, @@ -139,12 +139,47 @@ public static function getRequestResponse(): iterable true, ]; - yield 'Should not be handled because the meta robots tag contains "noindex" ' => [ + $response = new Response('', 500); + $response->headers->set('X-Robots-Tag', 'noindex'); + + yield 'Should not index and delete because the X-Robots-Tag header contains "noindex" and response is unsuccessful' => [ Request::create('/foobar'), - new Response('', 403), + $response, + SearchIndexListener::FEATURE_DELETE | SearchIndexListener::FEATURE_INDEX, + false, + false, + ]; + + yield 'Should not index but should delete because the meta robots tag contains "noindex"' => [ + Request::create('/foobar'), + new Response('', 200), SearchIndexListener::FEATURE_DELETE | SearchIndexListener::FEATURE_INDEX, false, true, ]; + + yield 'Should not index and delete because the meta robots tag contains "noindex" and response is unsuccessful' => [ + Request::create('/foobar'), + new Response('', 500), + SearchIndexListener::FEATURE_DELETE | SearchIndexListener::FEATURE_INDEX, + false, + false, + ]; + + // From the unsuccessful responses only the 404 and 410 status codes should + // execute a deletion. + for ($status = 400; $status < 600; ++$status) { + if (\in_array($status, [Response::HTTP_NOT_FOUND, Response::HTTP_GONE], true)) { + continue; + } + + yield 'Should be skipped because the response status ('.$status.') is not successful and not a "not found" or "gone" response' => [ + Request::create('/foobar'), + new Response('', $status), + SearchIndexListener::FEATURE_DELETE | SearchIndexListener::FEATURE_INDEX, + false, + false, + ]; + } } } diff --git a/tests/Filesystem/VirtualFilesystemTest.php b/tests/Filesystem/VirtualFilesystemTest.php index 4970d25e5e..f6b1e0d453 100644 --- a/tests/Filesystem/VirtualFilesystemTest.php +++ b/tests/Filesystem/VirtualFilesystemTest.php @@ -560,6 +560,7 @@ static function () use (&$handlerInvocationCount) { $this->assertInstanceOf(FilesystemItem::class, $fileB); $this->assertTrue($fileB->isFile()); + /** @phpstan-ignore method.impossibleType */ $this->assertSame(3, $handlerInvocationCount); $this->assertSame(12345, $fileB->getLastModified()); @@ -567,6 +568,7 @@ static function () use (&$handlerInvocationCount) { $this->assertSame('image/png', $fileB->getMimeType()); $this->assertSame(['extra' => 'data'], $fileB->getExtraMetadata()); + /** @phpstan-ignore method.impossibleType */ $this->assertSame(7, $handlerInvocationCount); } diff --git a/tests/InsertTag/InsertTagParserTest.php b/tests/InsertTag/InsertTagParserTest.php index 43df94fb97..ba872a58b7 100644 --- a/tests/InsertTag/InsertTagParserTest.php +++ b/tests/InsertTag/InsertTagParserTest.php @@ -32,6 +32,7 @@ use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpKernel\Controller\ControllerReference; use Symfony\Component\HttpKernel\Fragment\FragmentHandler; +use Symfony\Contracts\Translation\TranslatorInterface; class InsertTagParserTest extends TestCase { @@ -214,7 +215,7 @@ public function __toString(): string $parser = new InsertTagParser($this->createMock(ContaoFramework::class), $this->createMock(LoggerInterface::class), $this->createMock(FragmentHandler::class), $this->createMock(RequestStack::class)); $parser->addSubscription(new InsertTagSubscription(new LegacyInsertTag(System::getContainer()), '__invoke', 'br', null, true, false)); - $parser->addBlockSubscription(new InsertTagSubscription(new IfLanguageInsertTag($this->createMock(RequestStack::class)), '__invoke', 'ifnlng', 'ifnlng', true, false)); + $parser->addBlockSubscription(new InsertTagSubscription(new IfLanguageInsertTag($this->createMock(TranslatorInterface::class)), '__invoke', 'ifnlng', 'ifnlng', true, false)); System::getContainer()->set('contao.insert_tag.parser', $parser); $this->assertSame($expected, $parser->replaceInline($source)); diff --git a/tests/Messenger/AutoFallbackNotifierTest.php b/tests/Messenger/AutoFallbackNotifierTest.php deleted file mode 100644 index 5c9835165e..0000000000 --- a/tests/Messenger/AutoFallbackNotifierTest.php +++ /dev/null @@ -1,88 +0,0 @@ -set('auto-fallback', $this->createMock(AutoFallbackTransport::class)); - $container->set('regular', $this->createMock(TransportInterface::class)); - - $cacheItem = $this->createMock(CacheItemInterface::class); - $cacheItem - ->expects($this->once()) - ->method('expiresAfter') - ->with(60) - ; - - $cache = $this->createMock(CacheItemPoolInterface::class); - $cache - ->expects($this->once()) - ->method('getItem') - ->with('auto-fallback-transport-notifier-auto-fallback') - ->willReturn($cacheItem) - ; - - $cache - ->expects($this->once()) - ->method('save') - ->with($cacheItem) - ; - - $notifier = new AutoFallbackNotifier($cache, $container); - $notifier->ping('auto-fallback'); - $notifier->ping('regular'); - } - - public function testIsWorkerRunning(): void - { - $container = new Container(); - $container->set('running-auto-fallback', $this->createMock(AutoFallbackTransport::class)); - $container->set('not-running-auto-fallback', $this->createMock(AutoFallbackTransport::class)); - $container->set('regular', $this->createMock(TransportInterface::class)); - - $cacheItem = $this->createMock(CacheItemInterface::class); - $cacheItem - ->expects($this->exactly(2)) - ->method('isHit') - ->willReturnOnConsecutiveCalls(true, false) - ; - - $cache = $this->createMock(CacheItemPoolInterface::class); - $cache - ->expects($this->exactly(2)) - ->method('getItem') - ->withConsecutive( - ['auto-fallback-transport-notifier-running-auto-fallback'], - ['auto-fallback-transport-notifier-not-running-auto-fallback'], - ) - ->willReturn($cacheItem) - ; - - $notifier = new AutoFallbackNotifier($cache, $container); - - $this->assertTrue($notifier->isWorkerRunning('running-auto-fallback')); - $this->assertFalse($notifier->isWorkerRunning('not-running-auto-fallback')); - $this->assertFalse($notifier->isWorkerRunning('regular')); - } -} diff --git a/tests/Messenger/EventListener/WorkerListenerTest.php b/tests/Messenger/EventListener/WorkerListenerTest.php deleted file mode 100644 index 0f3c88e039..0000000000 --- a/tests/Messenger/EventListener/WorkerListenerTest.php +++ /dev/null @@ -1,67 +0,0 @@ -mockWorker(), false); - - $listener = new WorkerListener($this->mockNotifier()); - $listener->onWorkerRunning($event); - } - - public function testPingsCorrectlyOnStart(): void - { - $event = new WorkerStartedEvent($this->mockWorker()); - - $listener = new WorkerListener($this->mockNotifier()); - $listener->onWorkerStarted($event); - } - - private function mockWorker(): Worker - { - $worker = $this->createMock(Worker::class); - $worker - ->expects($this->once()) - ->method('getMetadata') - ->willReturn(new WorkerMetadata(['transportNames' => ['foo', 'bar']])) - ; - - return $worker; - } - - private function mockNotifier(): AutoFallbackNotifier - { - $notifier = $this->createMock(AutoFallbackNotifier::class); - $notifier - ->expects($this->exactly(2)) - ->method('ping') - ->withConsecutive( - ['foo'], - ['bar'], - ) - ; - - return $notifier; - } -} diff --git a/tests/Messenger/Transport/AutoFallbackTransportFactoryTest.php b/tests/Messenger/Transport/AutoFallbackTransportFactoryTest.php deleted file mode 100644 index 29b45597d6..0000000000 --- a/tests/Messenger/Transport/AutoFallbackTransportFactoryTest.php +++ /dev/null @@ -1,115 +0,0 @@ -createMock(CacheItemPoolInterface::class), new Container()); - $factory = new AutoFallbackTransportFactory($notifier, new Container()); - - $this->assertTrue($factory->supports('contao-auto-fallback://my_transport_name?target=target_transport&fallback=fallback_transport', [])); - $this->assertFalse($factory->supports('doctrine://default', [])); - } - - public function testCreatesTransport(): void - { - $self = $this->createMock(TransportInterface::class); - $target = $this->createMock(TransportInterface::class); - $fallback = $this->createMock(TransportInterface::class); - - $container = new Container(); - $container->set('my_transport_name', $self); - $container->set('target_transport', $target); - $container->set('fallback_transport', $fallback); - - $notifier = new AutoFallbackNotifier($this->createMock(CacheItemPoolInterface::class), new Container()); - $factory = new AutoFallbackTransportFactory($notifier, $container); - - $transport = $factory->createTransport( - 'contao-auto-fallback://my_transport_name?target=target_transport&fallback=fallback_transport', - [], - $this->createMock(SerializerInterface::class), - ); - - $this->assertSame('my_transport_name', $transport->getSelfTransportName()); - $this->assertSame($target, $transport->getTarget()); - $this->assertSame($fallback, $transport->getFallback()); - } - - public function testFailsIfSelfDoesNotExist(): void - { - $this->expectException(\InvalidArgumentException::class); - $this->expectExceptionMessage('The given Auto Fallback Transport self "my_transport_name" is invalid.'); - - $container = new Container(); - $container->set('target_transport', $this->createMock(TransportInterface::class)); - $container->set('fallback_transport', $this->createMock(TransportInterface::class)); - - $notifier = new AutoFallbackNotifier($this->createMock(CacheItemPoolInterface::class), new Container()); - $factory = new AutoFallbackTransportFactory($notifier, $container); - - $factory->createTransport( - 'contao-auto-fallback://my_transport_name?target=target_transport&fallback=fallback_transport', - [], - $this->createMock(SerializerInterface::class), - ); - } - - public function testFailsIfTargetDoesNotExist(): void - { - $this->expectException(\InvalidArgumentException::class); - $this->expectExceptionMessage('The given Auto Fallback Transport target "target_transport" is invalid.'); - - $container = new Container(); - $container->set('my_transport_name', $this->createMock(TransportInterface::class)); - $container->set('fallback_transport', $this->createMock(TransportInterface::class)); - - $notifier = new AutoFallbackNotifier($this->createMock(CacheItemPoolInterface::class), new Container()); - $factory = new AutoFallbackTransportFactory($notifier, $container); - - $factory->createTransport( - 'contao-auto-fallback://my_transport_name?target=target_transport&fallback=fallback_transport', - [], - $this->createMock(SerializerInterface::class), - ); - } - - public function testFailsIfFallbackDoesNotExist(): void - { - $this->expectException(\InvalidArgumentException::class); - $this->expectExceptionMessage('The given Auto Fallback Transport fallback "fallback_transport" is invalid.'); - - $container = new Container(); - $container->set('my_transport_name', $this->createMock(TransportInterface::class)); - $container->set('target_transport', $this->createMock(TransportInterface::class)); - - $notifier = new AutoFallbackNotifier($this->createMock(CacheItemPoolInterface::class), new Container()); - $factory = new AutoFallbackTransportFactory($notifier, $container); - - $factory->createTransport( - 'contao-auto-fallback://my_transport_name?target=target_transport&fallback=fallback_transport', - [], - $this->createMock(SerializerInterface::class), - ); - } -} diff --git a/tests/Messenger/Transport/AutoFallbackTransportTest.php b/tests/Messenger/Transport/AutoFallbackTransportTest.php deleted file mode 100644 index bb2a96e284..0000000000 --- a/tests/Messenger/Transport/AutoFallbackTransportTest.php +++ /dev/null @@ -1,84 +0,0 @@ -createMock(AutoFallbackNotifier::class); - $notifier - ->expects($this->exactly(4)) - ->method('isWorkerRunning') - ->with('foobar') - ->willReturn($isRunning) - ; - - $target = $this->mockTransport($isRunning); - $fallback = $this->mockTransport(!$isRunning); - - $transport = new AutoFallbackTransport( - $notifier, - 'foobar', - $target, - $fallback, - ); - - $transport->get(); - $transport->ack(new Envelope(new \stdClass())); - $transport->reject(new Envelope(new \stdClass())); - $transport->send(new Envelope(new \stdClass())); - } - - public static function isRunning(): iterable - { - yield [true]; - yield [false]; - } - - private function mockTransport(bool $expectCalls): TransportInterface - { - $transport = $this->createMock(TransportInterface::class); - $transport - ->expects($expectCalls ? $this->once() : $this->never()) - ->method('get') - ; - - $transport - ->expects($expectCalls ? $this->once() : $this->never()) - ->method('ack') - ; - - $transport - ->expects($expectCalls ? $this->once() : $this->never()) - ->method('reject') - ; - - $transport - ->expects($expectCalls ? $this->once() : $this->never()) - ->method('send') - ->willReturn(new Envelope(new \stdClass())) - ; - - return $transport; - } -} diff --git a/tests/Messenger/WebWorkerTest.php b/tests/Messenger/WebWorkerTest.php new file mode 100644 index 0000000000..249e369439 --- /dev/null +++ b/tests/Messenger/WebWorkerTest.php @@ -0,0 +1,166 @@ +logger = new class() extends AbstractLogger { + private array $logs = []; + + public function log($level, $message, array $context = []): void + { + $this->logs[] = $message; + } + + public function getLogs(): array + { + return $this->logs; + } + }; + + $this->eventDispatcher = new EventDispatcher(); + $this->createConsumeCommand(); + } + + public function testPingOnlyAboutConfiguredTransports(): void + { + $cache = $this->createMock(CacheItemPoolInterface::class); + $cache + ->expects($this->atLeastOnce()) // Tests that transport-2 is not called + ->method('getItem') + ->with('contao-web-worker-transport-1') + ; + + $webWorker = new WebWorker( + $cache, + $this->command, + ['transport-1'], + ); + + $this->addEventsToEventDispatcher($webWorker); + $this->triggerRealWorkers(['transport-1', 'transport-2']); + } + + public function testWorkerIsStoppedIfIdle(): void + { + $cache = new ArrayAdapter(); // No real workers running + + $webWorker = new WebWorker( + $cache, + $this->command, + ['transport-1'], + ); + + $this->addEventsToEventDispatcher($webWorker); + $this->triggerWebWorker(); + + // This test would run for 30 seconds if it failed. If the worker is correctly + // stopped, it will return immediately and log "Stopping worker.". + // @phpstan-ignore method.notFound + $this->assertContains('Stopping worker.', $this->logger->getLogs()); + } + + private function triggerWebWorker(): void + { + $this->eventDispatcher->dispatch(new TerminateEvent( + $this->createMock(HttpKernelInterface::class), + new Request(), + new Response(), + )); + } + + private function triggerRealWorkers(array $transports): void + { + $listener = static function (WorkerRunningEvent $event): void { + if ($event->isWorkerIdle()) { + $event->getWorker()->stop(); + } + }; + + $this->eventDispatcher->addListener(WorkerRunningEvent::class, $listener); + + $input = new ArrayInput([ + 'receivers' => $transports, + ]); + + $this->command->run($input, new NullOutput()); + $this->eventDispatcher->removeListener(WorkerRunningEvent::class, $listener); + } + + private function createConsumeCommand(): void + { + $receiverLocator = new Container(); + $receiverLocator->set('transport-1', $this->createMock(ReceiverInterface::class)); + $receiverLocator->set('transport-2', $this->createMock(ReceiverInterface::class)); + $receiverLocator->set('transport-3', $this->createMock(ReceiverInterface::class)); + + $this->command = new ConsumeMessagesCommand( + $this->createMock(RoutableMessageBus::class), + $receiverLocator, + $this->eventDispatcher, + $this->logger, + ); + } + + private function addEventsToEventDispatcher(WebWorker $webWorker): void + { + $this->eventDispatcher->addListener( + WorkerStartedEvent::class, + static function (WorkerStartedEvent $event) use ($webWorker): void { + $webWorker->onWorkerStarted($event); + }, + ); + + $this->eventDispatcher->addListener( + WorkerRunningEvent::class, + static function (WorkerRunningEvent $event) use ($webWorker): void { + $webWorker->onWorkerRunning($event); + }, + ); + + $this->eventDispatcher->addListener( + TerminateEvent::class, + static function (TerminateEvent $event) use ($webWorker): void { + $webWorker->onKernelTerminate($event); + }, + ); + } +} diff --git a/tests/PhpunitExtension/GlobalStateWatcher.php b/tests/PhpunitExtension/GlobalStateWatcher.php index f4b0620fd3..c594fd8600 100644 --- a/tests/PhpunitExtension/GlobalStateWatcher.php +++ b/tests/PhpunitExtension/GlobalStateWatcher.php @@ -158,6 +158,7 @@ private function buildStaticMembers(): string 'SebastianBergmann\\', 'Symfony\Bridge\PhpUnit\\', 'Symfony\Component\Cache\Adapter\\', + 'Symfony\Component\Clock\Clock', 'Symfony\Component\Config\Resource\ComposerResource', 'Symfony\Component\Console\Helper\\', 'Symfony\Component\Console\Terminal',