diff --git a/Build/Sources/Sass/typo3/_element_tree.scss b/Build/Sources/Sass/typo3/_element_tree.scss index fd0bfb94bbb4542293717894ac1d1b7ee713029f..bf830e5f95ce954e83f26fd2b6da4c7e20b5cf19 100644 --- a/Build/Sources/Sass/typo3/_element_tree.scss +++ b/Build/Sources/Sass/typo3/_element_tree.scss @@ -70,6 +70,11 @@ $tree-control-icon-size: 12px; left: 2px; } + &.list-tree-comment:before, + &.list-tree-constant-substitution:before { + width: 0; + } + &:last-child:before { background: $tree-bg; height: auto; diff --git a/Build/Sources/TypeScript/backend/page-tsconfig.ts b/Build/Sources/TypeScript/backend/page-tsconfig.ts deleted file mode 100644 index f4c7859f7da32eccc3e282d2442b03e905f96eaa..0000000000000000000000000000000000000000 --- a/Build/Sources/TypeScript/backend/page-tsconfig.ts +++ /dev/null @@ -1,161 +0,0 @@ -/* - * This file is part of the TYPO3 CMS project. - * - * It is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, either version 2 - * of the License, or any later version. - * - * For the full copyright and license information, please read the - * LICENSE.txt file that was distributed with this source code. - * - * The TYPO3 project - inspiring people to share! - */ - -import BrowserSession from '@typo3/backend/storage/browser-session'; -import {Collapse as BootstrapCollapse} from 'bootstrap'; -import '@typo3/backend/input/clearable'; -import DocumentService from '@typo3/core/document-service'; -import DebounceEvent from '@typo3/core/event/debounce-event'; -import RegularEvent from '@typo3/core/event/regular-event'; -import Mark from '@typo3/backend/contrib/mark'; - -/** - * Module: @typo3/backend/page-tsconfig - * JavaScript for Page TSconfig - * @exports @typo3/backend/page-tsconfig - */ -class PageTSconfigBrowser { - private readonly termSessionStorageKey = 'pagets-search-term'; - private searchField: HTMLInputElement; - private searchForm: HTMLFormElement; - private pageTsTreeContainer: HTMLElement|null; - private markInstance: any; - - constructor() { - DocumentService.ready().then(() => { - this.pageTsTreeContainer = document.querySelector('.t3js-pagets-tree'); - if (this.pageTsTreeContainer === null) { - return; - } - - this.searchField = document.querySelector('input[name="searchValue"]'); - this.searchForm = this.searchField.closest('form'); - - this.registerEvents(); - - this.markInstance = new Mark(this.pageTsTreeContainer); - - const searchTermInSession = BrowserSession.get(this.termSessionStorageKey); - if (searchTermInSession) { - this.searchField.value = searchTermInSession; - // Trigger "keyup" event to update clearable status - this.searchField.dispatchEvent(new Event('keyup')); - this.searchForm.requestSubmit(); - } - }); - } - - private registerEvents(): void { - this.searchField.clearable({ - onClear: (input: HTMLInputElement): void => { - input.closest('form').requestSubmit(); - }, - }); - - new DebounceEvent('input', (): void => { - this.searchForm.requestSubmit(); - }).bindTo(this.searchField); - - new RegularEvent('submit', (e: SubmitEvent): void => { - e.preventDefault(); - - this.filterTree(this.searchField.value); - }).bindTo(this.searchForm); - } - - private filterTree(term: string): void { - // Normalize search term - term = term.toLowerCase(); - - this.markInstance.unmark(); - BrowserSession.set(this.termSessionStorageKey, term); - if (term.length < 3) { - return; - } - - const matchingCollapsibleIds = new Set(); - const matchingNodes = [...this.findNodesByIdentifier(term), ...this.findNodesByValue(term)]; - matchingNodes.forEach((match: Element|null): void => { - if (match === null) { - return; - } - - const collapsibleIdentifier = (match.parentElement.querySelector('[data-bs-toggle="collapse"]') as HTMLElement|null)?.dataset.bsTarget; - if (collapsibleIdentifier !== undefined) { - matchingCollapsibleIds.add(collapsibleIdentifier.substring(1)); - } - - const parentElements = this.parents(match, '.collapse'); - for (let parentEl of parentElements) { - matchingCollapsibleIds.add(parentEl.id); - } - }); - - const allNodes = Array.from(this.pageTsTreeContainer.querySelectorAll('.collapse')) as HTMLElement[]; - for (let node of allNodes) { - const collapsible = BootstrapCollapse.getOrCreateInstance(node, { toggle: false }); - if (matchingCollapsibleIds.has(node.id)) { - collapsible.show(); - } else { - collapsible.hide(); - } - } - - this.markInstance.mark(term, { - element: 'strong', - className: 'text-danger' - }); - } - - private findNodesByIdentifier(term: string): Element[] { - const matches = []; - // Search for nodes identifiers matching the term - const exactMatches = this.pageTsTreeContainer.querySelectorAll('[data-pagets-identifier="' + term + '"]'); - matches.push(...exactMatches); - - if (exactMatches.length === 0) { - const nearestMatches = Array.from(this.pageTsTreeContainer.querySelectorAll('[data-pagets-identifier*="' + term + '"]')).filter((element: HTMLElement) => { - // Search the nearest node available (e.g. "mod.wiz" resolves to "mod.wizards", but no "mod.wizards.newContentElement") - const substrStart = element.dataset.pagetsIdentifier.indexOf(term) + term.length; - return !element.dataset.pagetsIdentifier.substring(substrStart).includes('.'); - }); - - matches.push(...nearestMatches); - } - - return matches; - } - - private findNodesByValue(term: string): Element[] { - const matchingValueNodes = Array.from(this.pageTsTreeContainer.querySelectorAll('.list-tree-value')).filter((el: Element): boolean => { - return el.textContent.toLowerCase().includes(term); - }); - - return matchingValueNodes.map((node: Element): Element => { - return node.previousElementSibling; - }); - } - - private parents(el: Element, selector: string) { - const parents = []; - let closest; - while ((closest = el.parentElement.closest(selector)) !== null) { - el = closest; - parents.push(closest); - } - - return parents; - } -} - -export default new PageTSconfigBrowser(); diff --git a/Build/Sources/TypeScript/backend/utility/collapse-state-persister.ts b/Build/Sources/TypeScript/backend/utility/collapse-state-persister.ts index 85665385f9422e90ec8a4ed5c57a062ec92b5598..ce95801b469e390df14e53932bfda9cf00678f7b 100644 --- a/Build/Sources/TypeScript/backend/utility/collapse-state-persister.ts +++ b/Build/Sources/TypeScript/backend/utility/collapse-state-persister.ts @@ -13,83 +13,161 @@ import {Collapse as BootstrapCollapse} from 'bootstrap'; import Client from '@typo3/backend/storage/client'; -import BrowserSession from '@typo3/backend/storage/browser-session'; import DocumentService from '@typo3/core/document-service'; import RegularEvent from '@typo3/core/event/regular-event'; /** - * Utility class to store a collapsible's state in the localStorage and to re-apply the states on load. - * Uses the collapsible's id to store the keys. + * Utility class to store a collapsible state in the localStorage and to re-apply states. + * It uses the collapsible id to store the keys, which must be unique. + * + * Trigger state persisting by adding 'data-persist-collapse-state="true"' to a collapsible element. + * + * To improve performance when dealing with bigger trees: + * * A 'data-persist-collapse-state-suffix="some-suffix"' on each collapsible element can be defined: This + * specifies a local storage key instead of "general", states are then stored in this key. This is useful + * when bigger tree states are stored, moving them to a dedicated local storage key. Default is suffix "global". + * * A 'data-persist-collapse-state-if-state="shown"' (allowed values "shown" and "hidden"): + * Usually, both "collapsed" and "shown" states are stored in local storage. However, when a tree is rendered + * "hidden" or "shown" by default from Fluid, we only need the "opposite" state in local storage. It is good practice + * to set this to safe local storage space. + * + * When dealing with bigger treas, some of them may be search-aware: This is related to 'collapse-state-search.ts', + * which expands search matches in a tree. We usually do not want to persist collapse / expand state when a search is + * performed, since this is done by the search javascript. Instead, we want to go back to the previous expand/collapse + * state when a search value is cleared. To do this, an expand/collapse field can set 'data-persist-collapse-state-not-if-search="true"', + * which will suppress storing expand/collapse state from/to local storage if a search value is given. + * When the search value is cleared (empty string), the current expand/collapse state are applied again due to + * a submit event fired by 'collapse-state-search.ts', so this state class can re-create the expand/collapse state before + * a search keyword has been given. A search input field needs the attribute 'data-persist-collapse-search-key="some-search-key"' + * which points to the local storage key of the search term, plus class "t3js-collapse-search-term" to trigger all this search magic. * * @internal */ export class CollapseStatePersister { - private readonly localStorageKey: string = 'collapse-states'; + private readonly localStorageKey: string = 'collapse-states-'; + private readonly localStorageKeyDefaultSuffix: string = 'general'; + private readonly searchValueSelector: string = '.t3js-collapse-search-term'; + private searchField: HTMLInputElement|null = null; + private searchForm: HTMLFormElement|null = null; public constructor() { DocumentService.ready().then((): void => { + this.searchField = document.querySelector(this.searchValueSelector); + if (this.searchField !== null) { + this.searchForm = this.searchField.closest('form'); + this.searchField.value = Client.get(this.searchField.dataset.persistCollapseSearchKey) ?? ''; + } this.registerEventListener(); this.recoverStates(); }); } private registerEventListener(): void { - const delegateEventTo = '.collapse[data-persist-collapse-state="true"]'; + const delegateEventTo: string = '.collapse[data-persist-collapse-state="true"]'; new RegularEvent('show.bs.collapse', (e: Event): void => { - this.toStorage((e.target as HTMLElement).id, true); + const element: HTMLElement = e.target as HTMLElement; + if (element.dataset.persistCollapseState === 'true' + && ((this.searchField !== null && this.searchField.value === '') || element.dataset.persistCollapseStateNotIfSearch === undefined) + ) { + // Persist state only, if there is no search input field, or no search is performed + this.toStorage(element, true); + } }).delegateTo(document, delegateEventTo); new RegularEvent('hide.bs.collapse', (e: Event): void => { - this.toStorage((e.target as HTMLElement).id, false); + const element: HTMLElement = e.target as HTMLElement; + if (element.dataset.persistCollapseState === 'true' + && ((this.searchField !== null && this.searchField.value === '') || element.dataset.persistCollapseStateNotIfSearch === undefined) + ) { + // Persist state only, if there is no search input field, or no search is performed + this.toStorage(element, false); + } }).delegateTo(document, delegateEventTo); + + if (this.searchForm !== null) { + new RegularEvent('submit', (e: SubmitEvent): void => { + e.preventDefault(); + if (this.searchField !== null && this.searchField.value === '') { + this.recoverStates(); + } + }).bindTo(this.searchForm); + } } private recoverStates(): void { - const currentStates = this.fromStorage(); - - for (const [identifier, isExpanded] of Object.entries(currentStates)) { - const element = document.getElementById(identifier) as HTMLElement; - if (element === null || !this.shallRecoverState(element)) { - continue; + const collapseStateElements: NodeListOf<HTMLElement>|null = document.querySelectorAll('.collapse[data-persist-collapse-state="true"]'); + collapseStateElements.forEach((element: HTMLElement) => { + const suffix: string = element.dataset.persistCollapseStateSuffix ?? this.localStorageKeyDefaultSuffix; + const currentStates = this.fromStorage(suffix); + const id: string = element.id; + if (id === '' || !this.shallRecoverState(element)) { + return; } const collapsible = BootstrapCollapse.getOrCreateInstance(element, { toggle: false }); - - if (isExpanded) { - collapsible.show(); - } else { - collapsible.hide(); + const storeExpandedState = (element.dataset.persistCollapseStateIfState ?? 'shown') === 'shown'; + const storeHiddenState = (element.dataset.persistCollapseStateIfState ?? 'hidden') === 'hidden'; + if (storeExpandedState === true) { + if (currentStates[id] === true) { + collapsible.show(); + } else { + collapsible.hide(); + } } - } + if (storeHiddenState === true) { + if (currentStates[id] === false) { + collapsible.hide(); + } else { + collapsible.show(); + } + } + }); } private shallRecoverState(element: HTMLElement): boolean { - if (element.dataset.persistCollapseStateNotIf === undefined) { + if (element.dataset.persistCollapseStateNotIfSearch === undefined + || element.dataset.persistCollapseStateNotIfSearch === 'false' + ) { return true; } - - const storageKey = element.dataset.persistCollapseStateNotIf; - const storageValue = Client.get(storageKey) ?? BrowserSession.get(storageKey); - - return storageValue === null || storageValue === ''; + return this.searchField !== null && this.searchField.value === ''; } - private fromStorage(): { [key: string]: boolean } { - const currentStates = Client.get(this.localStorageKey); + private fromStorage(suffix: string): { [key: string]: boolean } { + const currentStates = Client.get(this.localStorageKey + suffix); if (currentStates === null) { return {}; } - + // We may store currentStates in a class variable to not trigger JSON.parse() each time, and update + // a class variable instead in toStorage() when changed? However, maybe browsers "optimize-away" repeated + // JSON.parse() of the same string already, so repeating this every time here may be cost-free? return JSON.parse(currentStates); } - private toStorage(key: string, expanded: boolean) { - const currentStates = this.fromStorage(); - currentStates[key] = expanded; - - Client.set(this.localStorageKey, JSON.stringify(currentStates)); + private toStorage(element: HTMLElement, expanded: boolean) { + const key = element.id; + const suffix = element.dataset.persistCollapseStateSuffix ?? this.localStorageKeyDefaultSuffix; + const currentStates = this.fromStorage(suffix); + const storeExpandedState = (element.dataset.persistCollapseStateIfState ?? 'shown') === 'shown'; + const storeHiddenState = (element.dataset.persistCollapseStateIfState ?? 'hidden') === 'hidden'; + if (expanded === true && storeExpandedState === true && currentStates[key] !== true) { + currentStates[key] = true; + Client.set(this.localStorageKey + suffix, JSON.stringify(currentStates)); + } + if (expanded === true && storeHiddenState === true && currentStates[key] === false) { + delete currentStates[key]; + Client.set(this.localStorageKey + suffix, JSON.stringify(currentStates)); + } + if (expanded === false && storeHiddenState === true && currentStates[key] !== false) { + currentStates[key] = false; + Client.set(this.localStorageKey + suffix, JSON.stringify(currentStates)); + } + if (expanded === false && storeExpandedState === true && currentStates[key] === true) { + delete currentStates[key]; + Client.set(this.localStorageKey + suffix, JSON.stringify(currentStates)); + } } } diff --git a/Build/Sources/TypeScript/backend/utility/collapse-state-search.ts b/Build/Sources/TypeScript/backend/utility/collapse-state-search.ts new file mode 100644 index 0000000000000000000000000000000000000000..73000c6774b2c11ba2e320a26b8d884ef39bce66 --- /dev/null +++ b/Build/Sources/TypeScript/backend/utility/collapse-state-search.ts @@ -0,0 +1,182 @@ +/* + * This file is part of the TYPO3 CMS project. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + * + * For the full copyright and license information, please read the + * LICENSE.txt file that was distributed with this source code. + * + * The TYPO3 project - inspiring people to share! + */ + +import Client from '@typo3/backend/storage/client'; +import {Collapse as BootstrapCollapse} from 'bootstrap'; +import '@typo3/backend/input/clearable'; +import DocumentService from '@typo3/core/document-service'; +import DebounceEvent from '@typo3/core/event/debounce-event'; +import RegularEvent from '@typo3/core/event/regular-event'; +import Mark from '@typo3/backend/contrib/mark'; + +/** + * Utility class to perform client side search on ul/li trees. This is used in various + * backend modules that show trees, especially the "Active PageTsConfig" and "Active TypoScript". + * + * This is an add-on to collapse-state-persister.ts: When a search is performed, this search + * result collapse/expand state is not persisted in local storage, so the state without search + * "comes back" when a search word is reset. + * + * @internal + */ +class CollapseStateSearch { + private readonly searchValueSelector: string = '.t3js-collapse-search-term'; + private searchField: HTMLInputElement; + private searchForm: HTMLFormElement; + private searchSessionKey: string; + private searchValue: string = ''; + private treeContainers: NodeListOf<HTMLElement>; + private numberOfSearchMatchesContainer: NodeListOf<HTMLElement>; + private markInstances: Array<any> = []; + + constructor() { + DocumentService.ready().then(() => { + const treeContainers: NodeListOf<HTMLElement>|null = document.querySelectorAll('.t3js-collapse-states-search-tree'); + if (treeContainers === null) { + return; + } + this.treeContainers = treeContainers; + this.numberOfSearchMatchesContainer = document.querySelectorAll('.t3js-collapse-states-search-numberOfSearchMatches'); + this.searchField = document.querySelector(this.searchValueSelector); + this.searchForm = this.searchField.closest('form'); + this.searchSessionKey = this.searchField.dataset.persistCollapseSearchKey + this.searchValue = Client.get(this.searchSessionKey) ?? ''; + + this.registerEvents(); + + for (let i = 0; i < this.treeContainers.length; i++) { + this.markInstances[i] = new Mark(this.treeContainers[i]); + } + + if (this.searchValue !== '') { + this.searchField.value = this.searchValue; + // Trigger "keyup" event to update clearable status + this.searchField.dispatchEvent(new Event('keyup')); + this.searchForm.requestSubmit(); + } + }); + } + + private registerEvents(): void { + this.searchField.clearable({ + onClear: (input: HTMLInputElement): void => { + input.closest('form').requestSubmit(); + }, + }); + + new DebounceEvent('input', (): void => { + this.searchForm.requestSubmit(); + }).bindTo(this.searchField); + + new RegularEvent('submit', (e: SubmitEvent): void => { + e.preventDefault(); + for (let i = 0; i < this.treeContainers.length; i++) { + this.filterTree(this.searchField.value, this.treeContainers[i], this.numberOfSearchMatchesContainer[i], this.markInstances[i]); + } + }).bindTo(this.searchForm); + } + + private filterTree(term: string, treeContainer: HTMLElement, numberOfSearchMatchesContainer: HTMLElement, markInstance: any): void { + // Normalize search term + term = term.toLowerCase(); + + markInstance.unmark(); + Client.set(this.searchSessionKey, term); + if (term.length < 3) { + numberOfSearchMatchesContainer.classList.add('hidden'); + return; + } + + const matchingCollapsibleIds = new Set(); + const matchingNodes = [ + ...this.findNodesByIdentifier(term, treeContainer), + ...this.findNodesByValue(term, treeContainer), + ...this.findNodesByComment(term, treeContainer), + ...this.findNodesByConstantSubstitution(term, treeContainer) + ]; + + numberOfSearchMatchesContainer.innerText = String(TYPO3.lang['collapse-state-search.numberOfSearchMatches']).replace('%s', String(matchingNodes.length)); + numberOfSearchMatchesContainer.classList.remove('hidden'); + + matchingNodes.forEach((match: Element|null): void => { + if (match === null) { + return; + } + + const collapsibleIdentifier = (match.parentElement.querySelector('[data-bs-toggle="collapse"]') as HTMLElement|null)?.dataset.bsTarget; + if (collapsibleIdentifier !== undefined) { + matchingCollapsibleIds.add(collapsibleIdentifier.substring(1)); + } + + const parentElements = this.parents(match, '.collapse'); + for (let parentEl of parentElements) { + matchingCollapsibleIds.add(parentEl.id); + } + }); + + const allNodes = Array.from(treeContainer.querySelectorAll('.collapse')) as HTMLElement[]; + for (let node of allNodes) { + const collapsible = BootstrapCollapse.getOrCreateInstance(node, { toggle: false }); + if (matchingCollapsibleIds.has(node.id)) { + collapsible.show(); + } else { + collapsible.hide(); + } + } + + markInstance.mark(term, { + element: 'strong', + className: 'text-danger' + }); + } + + private findNodesByIdentifier(term: string, treeContainer: HTMLElement): Element[] { + return Array.from(treeContainer.querySelectorAll('.list-tree-label')).filter((el: Element): boolean => { + return el.textContent.toLowerCase().includes(term); + }); + } + + private findNodesByValue(term: string, treeContainer: HTMLElement): Element[] { + const matchingValueNodes = Array.from(treeContainer.querySelectorAll('.list-tree-value')).filter((el: Element): boolean => { + return el.textContent.toLowerCase().includes(term); + }); + return matchingValueNodes.map((node: Element): Element => { + return node.previousElementSibling; + }); + } + + private findNodesByComment(term: string, treeContainer: HTMLElement): Element[] { + return Array.from(treeContainer.querySelectorAll('.list-tree-comment')).filter((el: Element): boolean => { + return el.textContent.toLowerCase().includes(term); + }); + } + + private findNodesByConstantSubstitution(term: string, treeContainer: HTMLElement): Element[] { + return Array.from(treeContainer.querySelectorAll('.list-tree-constant-substitution')).filter((el: Element): boolean => { + return el.textContent.toLowerCase().includes(term); + }); + } + + private parents(el: Element, selector: string) { + const parents = []; + let closest; + while ((closest = el.parentElement.closest(selector)) !== null) { + el = closest; + parents.push(closest); + } + + return parents; + } +} + +export default new CollapseStateSearch(); diff --git a/typo3/sysext/adminpanel/Resources/Public/Css/adminpanel.css b/typo3/sysext/adminpanel/Resources/Public/Css/adminpanel.css index 7d6e95ab29bbdd3a532924ed68adabddab285796..4f54e797479c270048f422816e99fffc3ccbc5d5 100644 --- a/typo3/sysext/adminpanel/Resources/Public/Css/adminpanel.css +++ b/typo3/sysext/adminpanel/Resources/Public/Css/adminpanel.css @@ -10,4 +10,4 @@ * * The TYPO3 project - inspiring people to share! */ -body.typo3-adminPanel-noscroll{overflow:hidden}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel{z-index:99990}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel :not([class*=sf-]){background:0 0;border:0;box-shadow:none;box-sizing:border-box;vertical-align:baseline;letter-spacing:normal;width:auto;height:auto;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:12px;font-weight:400;white-space:normal;margin:0;padding:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel :not([class*=sf-]),#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel :not([class*=sf-]):active,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel :not([class*=sf-]):focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel :not([class*=sf-]):hover{outline:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel :root{--icon-color-primary:currentColor;--icon-size-small:16px;--icon-size-medium:32px;--icon-size-large:48px;--icon-size-mega:64px;--icon-unify-modifier:0.86;--icon-opacity-disabled:0.5}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon{position:relative;display:inline-flex;overflow:hidden;white-space:nowrap;height:var(--icon-size,1em);width:var(--icon-size,1em);line-height:var(--icon-size,1em);flex-shrink:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon img,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon svg{display:block;height:100%;width:100%}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon *{display:block;line-height:inherit}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-markup{position:absolute;display:block;text-align:center;top:0;left:0;right:0;bottom:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-overlay{position:absolute;bottom:0;right:0;height:68.75%;width:68.75%;text-align:center}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-color{fill:var(--icon-color-primary)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-spin .icon-markup{animation:icon-spin 2s infinite linear}@keyframes icon-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-state-disabled .icon-markup{opacity:var(--icon-opacity-disabled)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-small{--icon-size:var(--icon-size-small)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-small .icon-unify{line-height:var(--icon-size);font-size:calc(var(--icon-size) * var(--icon-unify-modifier))}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-small .icon-overlay .icon-unify{line-height:calc(var(--icon-size)/ 1.6);font-size:calc(var(--icon-size)/ 1.6 * var(--icon-unify-modifier))}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-medium{--icon-size:var(--icon-size-medium)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-medium .icon-unify{line-height:var(--icon-size);font-size:calc(var(--icon-size) * var(--icon-unify-modifier))}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-medium .icon-overlay .icon-unify{line-height:calc(var(--icon-size)/ 1.6);font-size:calc(var(--icon-size)/ 1.6 * var(--icon-unify-modifier))}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-large{--icon-size:var(--icon-size-large)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-large .icon-unify{line-height:var(--icon-size);font-size:calc(var(--icon-size) * var(--icon-unify-modifier))}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-large .icon-overlay .icon-unify{line-height:calc(var(--icon-size)/ 1.6);font-size:calc(var(--icon-size)/ 1.6 * var(--icon-unify-modifier))}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-mega{--icon-size:var(--icon-size-mega)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-mega .icon-unify{line-height:var(--icon-size);font-size:calc(var(--icon-size) * var(--icon-unify-modifier))}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-mega .icon-overlay .icon-unify{line-height:calc(var(--icon-size)/ 1.6);font-size:calc(var(--icon-size)/ 1.6 * var(--icon-unify-modifier))}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .btn{display:inline-flex;align-items:center;justify-content:center;gap:.35em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon{vertical-align:-22%}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-actions-edit-copy-release,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-actions-edit-cut-release,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-dialog-error,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-status-current,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-status-permission-denied{--icon-color-primary:#c83c3c}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-status-sorting-light-asc,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-status-sorting-light-desc{--icon-color-primary:#fff}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-status-sorting-asc,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-status-sorting-desc{--icon-color-primary:rgb(115, 115, 115)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-dialog-information{--icon-color-primary:#6daae0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-dialog-ok,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-status-permission-granted{--icon-color-primary:#107c10}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-dialog-notification{--icon-color-primary:rgb(51, 51, 51)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-dialog-warning{--icon-color-primary:#e8a33d}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-emphasized{--icon-emphasized-color:#313131;--icon-emphasized-bg:#fff;color:var(--icon-emphasized-color);background-color:var(--icon-emphasized-bg);display:flex;justify-content:center;align-items:center;width:2rem;height:2rem;border-radius:100%}.alert #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-emphasized{--icon-emphasized-color:var(--bs-alert-color);--icon-emphasized-bg:var(--bs-alert-border-color)}.callout #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-emphasized{--icon-emphasized-color:var(--callout-color);--icon-emphasized-bg:var(--callout-border-color)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree ul{margin-left:8px;padding:0;list-style:none;position:relative}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree ul:before,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree:before{content:"";display:block;width:0;position:absolute;top:0;bottom:11px;left:0;margin-bottom:-2px;border-left:1px dotted #666}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree li{margin:0;padding-left:16px;line-height:21px;position:relative}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree li.active>.list-tree-group:before{content:"";position:absolute;right:-6px;left:-6px;top:-1px;bottom:-1px;display:block;border:1px solid rgba(0,0,0,.25);background-color:rgba(255,255,255,.75);border-radius:2px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree li:before{content:"";display:block;width:9px;height:0;border-top:1px dotted #666;margin-top:-2px;position:absolute;top:12px;left:2px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree li:last-child:before{background:#fff;height:auto;left:0;width:11px;bottom:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree li .list-tree-control .icon{margin-right:-4px;margin-top:4px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree li .list-tree-control .icon svg{width:12px;height:12px;background-color:#fff}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-group{position:relative;display:block;white-space:nowrap}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-group>span{position:relative}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-value{font-weight:700}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-icon{top:-2px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-show{position:relative;display:inline-block;width:20px;text-align:center;margin-left:-2px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-control{position:absolute;top:0;left:0;display:block;margin-left:-26px;text-align:center;line-height:20px;width:20px;height:20px;-webkit-user-select:none;-moz-user-select:none;user-select:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-control:before,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-control:target:before{content:"";position:absolute;top:50%;left:50%;margin-top:-6px;margin-left:-6px;width:12px;height:12px;background-color:#fff}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-control:active,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-control:focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-control:hover{cursor:pointer;outline:0;text-decoration:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-control typo3-backend-icon{display:block}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-control[aria-expanded=true] typo3-backend-icon[identifier=actions-caret-right]{display:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-control[aria-expanded=false] typo3-backend-icon[identifier=actions-caret-down]{display:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-root{margin-left:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-root:before{display:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-root>li{padding-left:20px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-root>li:before{display:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-root>li.list-tree-path{margin-left:-20px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-root>li>.list-tree-group>.list-tree-control{margin-left:-20px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-root>li>.list-tree-group>.list-tree-control:before{background-color:transparent}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-root-clean>li{padding-left:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .panel-tab .list-tree li:last-child:before{background-color:#fafafa}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon{position:relative;display:inline-block;margin-top:-6px;margin-bottom:-6px;margin-right:2px;padding:0;height:31px;width:16px;white-space:nowrap;overflow:hidden;vertical-align:top}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon:after,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon:before{position:absolute;content:"";left:50%}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon:before{top:0;height:100%;width:2px;margin-left:-1px;border-left:1px dotted #666}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon:after{border-top:1px dotted #666;height:2px;width:100%;top:50%;margin-top:-1px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon-jointop:before{top:50%}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon-joinbottom:before{top:-50%}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon-line:after{display:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon-blank{display:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon-clear:after,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon-clear:before{display:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel body#typo3-pagetree{margin:0;padding:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel #typo3-pagetree #typo3-inner-docbody{padding:10px 0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel span.dragIcon{display:inline-block;height:16px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel #dragIcon{position:absolute;visibility:hidden;z-index:20;opacity:.5;white-space:nowrap}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .scaffold-content-navigation-component,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .scaffold-content-navigation-component .navigation-tree-container,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .scaffold-content-navigation-component .svg-tree,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .scaffold-content-navigation-component .svg-tree>div{flex:1 0 0;display:flex;flex-direction:column}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .scaffold-content-navigation-component .svg-tree-wrapper{flex:1 0 0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .scaffold-content-navigation-component .navigation-tree-container{background-color:#f5f5f5}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon{margin-top:-8px;margin-bottom:-8px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-backdrop{z-index:99991;content:"";position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-message{padding:20px;background-color:#fff;border-left:3px solid #cacaca;margin-bottom:1em;box-shadow:0 0 1px rgba(0,0,0,.15)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-message-info{border-left-color:#538bb3}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-bar{z-index:99992;display:flex;flex-flow:row;justify-content:stretch;position:fixed;bottom:0;left:auto;right:0;height:37px;background-color:#424242;color:#fff;border-bottom:1px solid #383838}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel.typo3-adminPanel-active .typo3-adminPanel-bar{left:0}@media (min-width:768px){#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-bar{right:20px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel.typo3-adminPanel-active .typo3-adminPanel-bar{left:20px}}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module{display:flex;padding:0 10px;align-items:center;border-right:1px solid #383838}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-settings{margin-left:auto}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-logo+.typo3-adminPanel-module-toggle{border-left:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-settings .typo3-adminPanel-module-trigger-label{display:none}@media (min-width:768px){#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-settings .typo3-adminPanel-module-trigger-label{display:block}}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-settings{border-left:1px solid #383838;border-right:1px solid #383838}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-toggle{border-right:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-group{width:100%;overflow:hidden;display:flex}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-trigger,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-backend-url{display:flex;align-items:center;padding:0 10px;margin-left:-10px;margin-right:-10px;font-size:12px;color:#fff;text-decoration:none;height:36px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-trigger>span,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-backend-url>span{white-space:nowrap}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-trigger>span+span,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-backend-url>span+span{margin-left:4px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-active .typo3-adminPanel-module-trigger{background-color:#525252}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel [data-typo3-role=typo3-adminPanel-module-trigger],#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel [data-typo3-role=typo3-adminPanel-trigger],#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-backend-url{cursor:pointer}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel [data-typo3-role=typo3-adminPanel-module-trigger]:focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel [data-typo3-role=typo3-adminPanel-module-trigger]:hover,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel [data-typo3-role=typo3-adminPanel-trigger]:focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel [data-typo3-role=typo3-adminPanel-trigger]:hover,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-backend-url:focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-backend-url:hover{background-color:#525252}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-trigger-icon .icon-color{fill:currentColor}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-trigger-icon .icon-actions-edit-hide{color:#629755}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-trigger-icon .icon-actions-edit-unhide{color:#c83c3c}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-trigger-information{display:none;opacity:.5}@media (min-width:768px){#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-trigger-information{display:block}}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content{display:none;flex-direction:column;position:fixed;bottom:37px;top:20vh;left:20px;right:20px;background-color:#fafafa;color:#333;border-bottom:1px solid #383838}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-main{position:relative;padding:20px;height:100%;overflow:auto}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-main>:first-child{margin-top:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-main>:last-child{margin-bottom:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-active .typo3-adminPanel-content{display:flex}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-header{position:relative;display:flex;align-items:center;justify-content:space-between;height:37px;flex-shrink:0;color:#333;background-color:#eaeaea}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-header:before{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background-color:#dadada}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-header-item{display:flex;align-items:center;height:37px;padding:0 10px;border-right:1px solid #dadada;border-bottom:1px solid #dadada}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-content-header-item{color:inherit;text-decoration:none;position:relative}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-content-header-item:focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-content-header-item:hover{background-color:#e1e1e1}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-content-header-item.typo3-adminPanel-content-header-item-active{background-color:#fafafa}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-content-header-item.typo3-adminPanel-content-header-item-active:before{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background-color:#fafafa}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-header-title{position:relative;color:#fff;background-color:#424242;border-right:1px solid #383838}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-header-title:before{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background-color:#5e5e5e}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-header-title>span+span{margin-left:4px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-header-close,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-header-settings{cursor:pointer;border-right:0;border-left:1px solid #dadada}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-nav{width:100%;overflow:hidden;display:flex}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-settings{flex-shrink:0;max-height:50%;overflow-y:auto;display:none;background-color:#fafafa;padding:20px;border-bottom:1px solid #dadada;box-shadow:0 0 1px rgba(0,0,0,.1)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-settings.typo3-adminPanel-content-settings-active{display:block}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-settings-group>:first-child,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-settings>:first-child{margin-top:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-settings-group>:last-child,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-settings>:last-child{margin-bottom:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-settings-group+.typo3-adminPanel-content-settings-group{margin-top:20px;padding-top:20px;border-top:1px solid rgba(0,0,0,.1)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-panes{position:absolute;top:0;bottom:0;left:0;right:0;display:flex}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-panes-item{display:none;overflow:auto;height:100%;width:100%;padding:20px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-panes-item>:first-child{margin-top:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-panes-item>:last-child{margin-bottom:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-panes-item-active{display:block}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-row{display:flex;flex-wrap:wrap;padding:8px 0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-row-nowrap{flex-wrap:nowrap;justify-content:space-between}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-row-header>*{font-weight:700}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-col{padding:0 10px;word-break:break-all}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-col-icon{width:34px;flex-shrink:0;flex-grow:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-col-auto{flex-grow:1}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-col-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-headline{font-weight:700;margin-top:1.5em;margin-bottom:.75em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel h1.typo3-adminPanel-headline{font-weight:400;font-size:1.75em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel h2.typo3-adminPanel-headline{font-weight:400;font-size:1.5em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel h3.typo3-adminPanel-headline{font-size:1.35em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel h4.typo3-adminPanel-headline{font-size:1.25em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-overflow{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #e0e0e0;box-shadow:0 0 1px rgba(0,0,0,.15)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-overflow .typo3-adminPanel-table{border:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table{width:100%;max-width:100%;background-color:#fff;display:table;border-collapse:separate;border-spacing:0;border:1px solid #e0e0e0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table thead tr{background-color:#e0e0e0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table thead td,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table thead th{border-top:none;font-family:Verdana,Arial,Helvetica,sans-serif}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table th{font-weight:700;text-align:inherit}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table th>span{font-weight:700}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table tr{font-family:inherit}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table td,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table th{padding:.75em;vertical-align:top;border-top:1px solid #dee2e6}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-debug tbody{font-family:monospace}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-debug tbody *{font-family:inherit}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-debug tbody td{word-wrap:break-word}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-cell-icon{width:34px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-cell-icon{width:34px;min-width:34px;white-space:nowrap}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-cell-time{width:250px;min-width:250px;white-space:nowrap}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-cell-key{width:19%}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-cell-key-icon{white-space:nowrap;text-decoration:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-cell-key-icon:hover{text-decoration:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-cell-space{width:100%}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-cell-break{word-wrap:break-word}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-cell-nowrap{white-space:nowrap}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-group{display:flex;margin:-5px;margin-bottom:1em;flex-wrap:wrap}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-group .typo3-adminPanel-card{margin:5px;flex-grow:1;flex-shrink:0;max-width:100%}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card{background-color:#fff;margin-bottom:1em;box-shadow:0 0 1px rgba(0,0,0,.15)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-body>:first-child,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-header>:first-child{margin-top:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-body>:last-child,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-header>:last-child{margin-bottom:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-header{display:flex;align-items:center;padding:20px;padding-bottom:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-header-headline{display:flex;align-items:center}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-header-icon{position:relative;height:1em;width:1em;opacity:.75}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-header-icon .icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-header-text{padding-left:.5em;font-size:1.25em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-body{padding:20px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-dump{font-family:monospace;word-wrap:break-word;white-space:pre-wrap;position:relative;z-index:99999;word-break:break-all}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-dump-string{color:#75a75a}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-dump-string:after,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-dump-string:before{color:#bf6500;content:'"'}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-dump-float,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-dump-integer{color:#538bb3}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-group{display:block;margin:1.5em 0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-group-checkbox+.typo3-adminPanel-form-group-checkbox{margin-top:-.5em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-group-disable{opacity:.5}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-checkbox{padding-left:1.75em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-checkbox-label{position:relative;cursor:pointer}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-checkbox-label:before{position:absolute;top:0;left:-1.75em;display:block;width:1.25em;height:1.25em;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:#dadada;border-radius:2px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-checkbox-label:after{position:absolute;top:0;left:-1.75em;display:block;width:1.25em;height:1.25em;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-checkbox-input{display:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-checkbox-input:checked+.typo3-adminPanel-form-checkbox-label:before{background-color:#629755}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-checkbox-input:checked+.typo3-adminPanel-form-checkbox-label:after{background-image:url("data:image/svg+xml;charset=utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><path fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/></svg>")}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-select .typo3-adminPanel-form-select-label{margin-bottom:.5em;display:block}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-select .typo3-adminPanel-form-select-input{padding:.75em 3em .75em 1.25em;display:block;border-radius:2px;border:1px solid #dadada;background:#fff url("data:image/svg+xml;charset=utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'><path fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>") no-repeat right .75em center;background-size:8px 10px;-webkit-appearance:none;-moz-appearance:none;appearance:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-select .typo3-adminPanel-form-select-input:focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-select .typo3-adminPanel-form-select-input:hover{border:1px solid #cacaca}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-datetime .typo3-adminPanel-form-datetime-label{margin-bottom:.5em;display:block}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-datetime .typo3-adminPanel-form-datetime-input-group{margin:-5px;display:flex;flex-wrap:wrap}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-datetime .typo3-adminPanel-form-datetime-input{flex-grow:1;flex-shrink:0;margin:5px;display:block;padding:.75em 1.25em;border-radius:2px;border:1px solid #dadada;background-color:#fff}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-datetime .typo3-adminPanel-form-datetime-input:focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-datetime .typo3-adminPanel-form-datetime-input:hover{border:1px solid #cacaca}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn{position:relative;cursor:pointer;color:inherit;text-decoration:none;padding:.75em 1.25em;display:inline-block;background-color:rgba(0,0,0,.1);border:1px solid #dadada;border-radius:2px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn:focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn:hover{z-index:1;background-color:rgba(0,0,0,.15);border:1px solid #cacaca}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn-primary{color:#fff;background-color:#538bb3;border:1px solid #417092}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn-primary:focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn-primary:hover{background-color:#6597bb;border:1px solid #396381}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn-group:after{content:"";display:table;clear:both}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn-group .typo3-adminPanel-btn{border-radius:0;float:left}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn-group .typo3-adminPanel-btn:first-child{border-radius:2px 0 0 2px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn-group .typo3-adminPanel-btn:last-child{border-radius:0 2px 2px 0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn-group .typo3-adminPanel-btn+.typo3-adminPanel-btn{margin-left:-1px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-progress{position:relative;height:1.5em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-progress-bar{position:absolute;top:0;left:0;height:100%;width:100%;background-color:#333}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-progress-bar-green{background-color:#629755}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-progress-value{text-align:right}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-zoom{position:absolute;z-index:99994;background-color:#fafafa;top:0;left:0;width:100%;height:100%;display:none;flex-direction:column}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-zoom-show{display:flex}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-zoom-header{padding:20px;border-bottom:1px solid #dadada}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-zoom-body{padding:20px;height:100%;overflow:auto}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-zoom-body>:first-child{margin-top:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-zoom-body>:last-child{margin-bottom:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .sf-dump-search-input-next svg,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .sf-dump-search-input-previous svg{height:16px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-col-count{text-align:right;width:90px;flex-shrink:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-col-time{width:250px;flex-shrink:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-header{color:#737373;border-bottom:1px solid #d7d7d7}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-queries-header{color:#737373;border-bottom:1px solid #d7d7d7}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-query-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel>.typo3-adminPanel-sql-panel{border-bottom:1px dashed #d7d7d7}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel>.typo3-adminPanel-sql-panel:nth-child(2n+1){background:#f5f5f5}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-bar{display:flex;height:auto;font-size:11px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-bar .typo3-adminPanel-bar-value{display:flex;flex-direction:column;justify-content:center;color:#1e1e1e;text-align:left;white-space:nowrap;background-color:#fff;transition:all .5s ease;width:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-statement{margin:1em 0;padding:.75em 1em;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;background:#f2f2f2;font-size:11px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-backtrace{margin:1em 0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-backtrace-item{margin:1px 0;padding:.75em 1em;background-color:#f2f2f2;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;word-break:break-word}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-backtrace-item-file,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-backtrace-item-function{display:block}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-backtrace-item-file{opacity:.5;font-size:.8em} \ No newline at end of file +body.typo3-adminPanel-noscroll{overflow:hidden}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel{z-index:99990}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel :not([class*=sf-]){background:0 0;border:0;box-shadow:none;box-sizing:border-box;vertical-align:baseline;letter-spacing:normal;width:auto;height:auto;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:12px;font-weight:400;white-space:normal;margin:0;padding:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel :not([class*=sf-]),#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel :not([class*=sf-]):active,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel :not([class*=sf-]):focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel :not([class*=sf-]):hover{outline:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel :root{--icon-color-primary:currentColor;--icon-size-small:16px;--icon-size-medium:32px;--icon-size-large:48px;--icon-size-mega:64px;--icon-unify-modifier:0.86;--icon-opacity-disabled:0.5}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon{position:relative;display:inline-flex;overflow:hidden;white-space:nowrap;height:var(--icon-size,1em);width:var(--icon-size,1em);line-height:var(--icon-size,1em);flex-shrink:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon img,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon svg{display:block;height:100%;width:100%}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon *{display:block;line-height:inherit}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-markup{position:absolute;display:block;text-align:center;top:0;left:0;right:0;bottom:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-overlay{position:absolute;bottom:0;right:0;height:68.75%;width:68.75%;text-align:center}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-color{fill:var(--icon-color-primary)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-spin .icon-markup{animation:icon-spin 2s infinite linear}@keyframes icon-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-state-disabled .icon-markup{opacity:var(--icon-opacity-disabled)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-small{--icon-size:var(--icon-size-small)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-small .icon-unify{line-height:var(--icon-size);font-size:calc(var(--icon-size) * var(--icon-unify-modifier))}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-small .icon-overlay .icon-unify{line-height:calc(var(--icon-size)/ 1.6);font-size:calc(var(--icon-size)/ 1.6 * var(--icon-unify-modifier))}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-medium{--icon-size:var(--icon-size-medium)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-medium .icon-unify{line-height:var(--icon-size);font-size:calc(var(--icon-size) * var(--icon-unify-modifier))}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-medium .icon-overlay .icon-unify{line-height:calc(var(--icon-size)/ 1.6);font-size:calc(var(--icon-size)/ 1.6 * var(--icon-unify-modifier))}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-large{--icon-size:var(--icon-size-large)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-large .icon-unify{line-height:var(--icon-size);font-size:calc(var(--icon-size) * var(--icon-unify-modifier))}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-large .icon-overlay .icon-unify{line-height:calc(var(--icon-size)/ 1.6);font-size:calc(var(--icon-size)/ 1.6 * var(--icon-unify-modifier))}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-mega{--icon-size:var(--icon-size-mega)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-mega .icon-unify{line-height:var(--icon-size);font-size:calc(var(--icon-size) * var(--icon-unify-modifier))}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-size-mega .icon-overlay .icon-unify{line-height:calc(var(--icon-size)/ 1.6);font-size:calc(var(--icon-size)/ 1.6 * var(--icon-unify-modifier))}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .btn{display:inline-flex;align-items:center;justify-content:center;gap:.35em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon{vertical-align:-22%}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-actions-edit-copy-release,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-actions-edit-cut-release,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-dialog-error,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-status-current,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-status-permission-denied{--icon-color-primary:#c83c3c}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-status-sorting-light-asc,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-status-sorting-light-desc{--icon-color-primary:#fff}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-status-sorting-asc,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-status-sorting-desc{--icon-color-primary:rgb(115, 115, 115)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-dialog-information{--icon-color-primary:#6daae0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-dialog-ok,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-status-permission-granted{--icon-color-primary:#107c10}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-dialog-notification{--icon-color-primary:rgb(51, 51, 51)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-status-dialog-warning{--icon-color-primary:#e8a33d}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-emphasized{--icon-emphasized-color:#313131;--icon-emphasized-bg:#fff;color:var(--icon-emphasized-color);background-color:var(--icon-emphasized-bg);display:flex;justify-content:center;align-items:center;width:2rem;height:2rem;border-radius:100%}.alert #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-emphasized{--icon-emphasized-color:var(--bs-alert-color);--icon-emphasized-bg:var(--bs-alert-border-color)}.callout #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-emphasized{--icon-emphasized-color:var(--callout-color);--icon-emphasized-bg:var(--callout-border-color)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree ul{margin-left:8px;padding:0;list-style:none;position:relative}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree ul:before,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree:before{content:"";display:block;width:0;position:absolute;top:0;bottom:11px;left:0;margin-bottom:-2px;border-left:1px dotted #666}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree li{margin:0;padding-left:16px;line-height:21px;position:relative}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree li.active>.list-tree-group:before{content:"";position:absolute;right:-6px;left:-6px;top:-1px;bottom:-1px;display:block;border:1px solid rgba(0,0,0,.25);background-color:rgba(255,255,255,.75);border-radius:2px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree li:before{content:"";display:block;width:9px;height:0;border-top:1px dotted #666;margin-top:-2px;position:absolute;top:12px;left:2px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree li.list-tree-comment:before,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree li.list-tree-constant-substitution:before{width:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree li:last-child:before{background:#fff;height:auto;left:0;width:11px;bottom:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree li .list-tree-control .icon{margin-right:-4px;margin-top:4px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree li .list-tree-control .icon svg{width:12px;height:12px;background-color:#fff}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-group{position:relative;display:block;white-space:nowrap}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-group>span{position:relative}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-value{font-weight:700}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-icon{top:-2px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-show{position:relative;display:inline-block;width:20px;text-align:center;margin-left:-2px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-control{position:absolute;top:0;left:0;display:block;margin-left:-26px;text-align:center;line-height:20px;width:20px;height:20px;-webkit-user-select:none;-moz-user-select:none;user-select:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-control:before,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-control:target:before{content:"";position:absolute;top:50%;left:50%;margin-top:-6px;margin-left:-6px;width:12px;height:12px;background-color:#fff}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-control:active,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-control:focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-control:hover{cursor:pointer;outline:0;text-decoration:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-control typo3-backend-icon{display:block}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-control[aria-expanded=true] typo3-backend-icon[identifier=actions-caret-right]{display:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-control[aria-expanded=false] typo3-backend-icon[identifier=actions-caret-down]{display:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-root{margin-left:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-root:before{display:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-root>li{padding-left:20px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-root>li:before{display:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-root>li.list-tree-path{margin-left:-20px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-root>li>.list-tree-group>.list-tree-control{margin-left:-20px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-root>li>.list-tree-group>.list-tree-control:before{background-color:transparent}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .list-tree-root-clean>li{padding-left:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .panel-tab .list-tree li:last-child:before{background-color:#fafafa}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon{position:relative;display:inline-block;margin-top:-6px;margin-bottom:-6px;margin-right:2px;padding:0;height:31px;width:16px;white-space:nowrap;overflow:hidden;vertical-align:top}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon:after,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon:before{position:absolute;content:"";left:50%}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon:before{top:0;height:100%;width:2px;margin-left:-1px;border-left:1px dotted #666}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon:after{border-top:1px dotted #666;height:2px;width:100%;top:50%;margin-top:-1px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon-jointop:before{top:50%}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon-joinbottom:before{top:-50%}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon-line:after{display:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon-blank{display:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon-clear:after,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon-clear:before{display:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel body#typo3-pagetree{margin:0;padding:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel #typo3-pagetree #typo3-inner-docbody{padding:10px 0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel span.dragIcon{display:inline-block;height:16px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel #dragIcon{position:absolute;visibility:hidden;z-index:20;opacity:.5;white-space:nowrap}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .scaffold-content-navigation-component,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .scaffold-content-navigation-component .navigation-tree-container,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .scaffold-content-navigation-component .svg-tree,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .scaffold-content-navigation-component .svg-tree>div{flex:1 0 0;display:flex;flex-direction:column}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .scaffold-content-navigation-component .svg-tree-wrapper{flex:1 0 0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .scaffold-content-navigation-component .navigation-tree-container{background-color:#f5f5f5}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon{margin-top:-8px;margin-bottom:-8px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-backdrop{z-index:99991;content:"";position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-message{padding:20px;background-color:#fff;border-left:3px solid #cacaca;margin-bottom:1em;box-shadow:0 0 1px rgba(0,0,0,.15)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-message-info{border-left-color:#538bb3}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-bar{z-index:99992;display:flex;flex-flow:row;justify-content:stretch;position:fixed;bottom:0;left:auto;right:0;height:37px;background-color:#424242;color:#fff;border-bottom:1px solid #383838}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel.typo3-adminPanel-active .typo3-adminPanel-bar{left:0}@media (min-width:768px){#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-bar{right:20px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel.typo3-adminPanel-active .typo3-adminPanel-bar{left:20px}}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module{display:flex;padding:0 10px;align-items:center;border-right:1px solid #383838}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-settings{margin-left:auto}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-logo+.typo3-adminPanel-module-toggle{border-left:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-settings .typo3-adminPanel-module-trigger-label{display:none}@media (min-width:768px){#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-settings .typo3-adminPanel-module-trigger-label{display:block}}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-settings{border-left:1px solid #383838;border-right:1px solid #383838}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-toggle{border-right:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-group{width:100%;overflow:hidden;display:flex}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-trigger,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-backend-url{display:flex;align-items:center;padding:0 10px;margin-left:-10px;margin-right:-10px;font-size:12px;color:#fff;text-decoration:none;height:36px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-trigger>span,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-backend-url>span{white-space:nowrap}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-trigger>span+span,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-backend-url>span+span{margin-left:4px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-active .typo3-adminPanel-module-trigger{background-color:#525252}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel [data-typo3-role=typo3-adminPanel-module-trigger],#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel [data-typo3-role=typo3-adminPanel-trigger],#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-backend-url{cursor:pointer}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel [data-typo3-role=typo3-adminPanel-module-trigger]:focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel [data-typo3-role=typo3-adminPanel-module-trigger]:hover,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel [data-typo3-role=typo3-adminPanel-trigger]:focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel [data-typo3-role=typo3-adminPanel-trigger]:hover,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-backend-url:focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-backend-url:hover{background-color:#525252}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-trigger-icon .icon-color{fill:currentColor}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-trigger-icon .icon-actions-edit-hide{color:#629755}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-trigger-icon .icon-actions-edit-unhide{color:#c83c3c}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-trigger-information{display:none;opacity:.5}@media (min-width:768px){#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-trigger-information{display:block}}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content{display:none;flex-direction:column;position:fixed;bottom:37px;top:20vh;left:20px;right:20px;background-color:#fafafa;color:#333;border-bottom:1px solid #383838}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-main{position:relative;padding:20px;height:100%;overflow:auto}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-main>:first-child{margin-top:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-main>:last-child{margin-bottom:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-module-active .typo3-adminPanel-content{display:flex}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-header{position:relative;display:flex;align-items:center;justify-content:space-between;height:37px;flex-shrink:0;color:#333;background-color:#eaeaea}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-header:before{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background-color:#dadada}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-header-item{display:flex;align-items:center;height:37px;padding:0 10px;border-right:1px solid #dadada;border-bottom:1px solid #dadada}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-content-header-item{color:inherit;text-decoration:none;position:relative}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-content-header-item:focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-content-header-item:hover{background-color:#e1e1e1}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-content-header-item.typo3-adminPanel-content-header-item-active{background-color:#fafafa}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel a.typo3-adminPanel-content-header-item.typo3-adminPanel-content-header-item-active:before{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background-color:#fafafa}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-header-title{position:relative;color:#fff;background-color:#424242;border-right:1px solid #383838}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-header-title:before{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background-color:#5e5e5e}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-header-title>span+span{margin-left:4px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-header-close,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-header-settings{cursor:pointer;border-right:0;border-left:1px solid #dadada}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-nav{width:100%;overflow:hidden;display:flex}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-settings{flex-shrink:0;max-height:50%;overflow-y:auto;display:none;background-color:#fafafa;padding:20px;border-bottom:1px solid #dadada;box-shadow:0 0 1px rgba(0,0,0,.1)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-settings.typo3-adminPanel-content-settings-active{display:block}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-settings-group>:first-child,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-settings>:first-child{margin-top:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-settings-group>:last-child,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-settings>:last-child{margin-bottom:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-settings-group+.typo3-adminPanel-content-settings-group{margin-top:20px;padding-top:20px;border-top:1px solid rgba(0,0,0,.1)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-panes{position:absolute;top:0;bottom:0;left:0;right:0;display:flex}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-panes-item{display:none;overflow:auto;height:100%;width:100%;padding:20px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-panes-item>:first-child{margin-top:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-panes-item>:last-child{margin-bottom:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-content-panes-item-active{display:block}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-row{display:flex;flex-wrap:wrap;padding:8px 0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-row-nowrap{flex-wrap:nowrap;justify-content:space-between}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-row-header>*{font-weight:700}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-col{padding:0 10px;word-break:break-all}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-col-icon{width:34px;flex-shrink:0;flex-grow:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-col-auto{flex-grow:1}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-col-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-headline{font-weight:700;margin-top:1.5em;margin-bottom:.75em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel h1.typo3-adminPanel-headline{font-weight:400;font-size:1.75em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel h2.typo3-adminPanel-headline{font-weight:400;font-size:1.5em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel h3.typo3-adminPanel-headline{font-size:1.35em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel h4.typo3-adminPanel-headline{font-size:1.25em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-overflow{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #e0e0e0;box-shadow:0 0 1px rgba(0,0,0,.15)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-overflow .typo3-adminPanel-table{border:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table{width:100%;max-width:100%;background-color:#fff;display:table;border-collapse:separate;border-spacing:0;border:1px solid #e0e0e0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table thead tr{background-color:#e0e0e0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table thead td,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table thead th{border-top:none;font-family:Verdana,Arial,Helvetica,sans-serif}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table th{font-weight:700;text-align:inherit}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table th>span{font-weight:700}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table tr{font-family:inherit}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table td,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table th{padding:.75em;vertical-align:top;border-top:1px solid #dee2e6}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-debug tbody{font-family:monospace}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-debug tbody *{font-family:inherit}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-debug tbody td{word-wrap:break-word}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-cell-icon{width:34px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-cell-icon{width:34px;min-width:34px;white-space:nowrap}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-cell-time{width:250px;min-width:250px;white-space:nowrap}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-cell-key{width:19%}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-cell-key-icon{white-space:nowrap;text-decoration:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-cell-key-icon:hover{text-decoration:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-cell-space{width:100%}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-cell-break{word-wrap:break-word}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-table-cell-nowrap{white-space:nowrap}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-group{display:flex;margin:-5px;margin-bottom:1em;flex-wrap:wrap}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-group .typo3-adminPanel-card{margin:5px;flex-grow:1;flex-shrink:0;max-width:100%}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card{background-color:#fff;margin-bottom:1em;box-shadow:0 0 1px rgba(0,0,0,.15)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-body>:first-child,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-header>:first-child{margin-top:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-body>:last-child,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-header>:last-child{margin-bottom:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-header{display:flex;align-items:center;padding:20px;padding-bottom:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-header-headline{display:flex;align-items:center}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-header-icon{position:relative;height:1em;width:1em;opacity:.75}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-header-icon .icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-header-text{padding-left:.5em;font-size:1.25em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-card-body{padding:20px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-dump{font-family:monospace;word-wrap:break-word;white-space:pre-wrap;position:relative;z-index:99999;word-break:break-all}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-dump-string{color:#75a75a}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-dump-string:after,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-dump-string:before{color:#bf6500;content:'"'}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-dump-float,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-dump-integer{color:#538bb3}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-group{display:block;margin:1.5em 0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-group-checkbox+.typo3-adminPanel-form-group-checkbox{margin-top:-.5em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-group-disable{opacity:.5}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-checkbox{padding-left:1.75em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-checkbox-label{position:relative;cursor:pointer}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-checkbox-label:before{position:absolute;top:0;left:-1.75em;display:block;width:1.25em;height:1.25em;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:#dadada;border-radius:2px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-checkbox-label:after{position:absolute;top:0;left:-1.75em;display:block;width:1.25em;height:1.25em;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-checkbox-input{display:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-checkbox-input:checked+.typo3-adminPanel-form-checkbox-label:before{background-color:#629755}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-checkbox-input:checked+.typo3-adminPanel-form-checkbox-label:after{background-image:url("data:image/svg+xml;charset=utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><path fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/></svg>")}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-select .typo3-adminPanel-form-select-label{margin-bottom:.5em;display:block}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-select .typo3-adminPanel-form-select-input{padding:.75em 3em .75em 1.25em;display:block;border-radius:2px;border:1px solid #dadada;background:#fff url("data:image/svg+xml;charset=utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'><path fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>") no-repeat right .75em center;background-size:8px 10px;-webkit-appearance:none;-moz-appearance:none;appearance:none}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-select .typo3-adminPanel-form-select-input:focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-select .typo3-adminPanel-form-select-input:hover{border:1px solid #cacaca}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-datetime .typo3-adminPanel-form-datetime-label{margin-bottom:.5em;display:block}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-datetime .typo3-adminPanel-form-datetime-input-group{margin:-5px;display:flex;flex-wrap:wrap}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-datetime .typo3-adminPanel-form-datetime-input{flex-grow:1;flex-shrink:0;margin:5px;display:block;padding:.75em 1.25em;border-radius:2px;border:1px solid #dadada;background-color:#fff}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-datetime .typo3-adminPanel-form-datetime-input:focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-form-datetime .typo3-adminPanel-form-datetime-input:hover{border:1px solid #cacaca}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn{position:relative;cursor:pointer;color:inherit;text-decoration:none;padding:.75em 1.25em;display:inline-block;background-color:rgba(0,0,0,.1);border:1px solid #dadada;border-radius:2px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn:focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn:hover{z-index:1;background-color:rgba(0,0,0,.15);border:1px solid #cacaca}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn-primary{color:#fff;background-color:#538bb3;border:1px solid #417092}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn-primary:focus,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn-primary:hover{background-color:#6597bb;border:1px solid #396381}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn-group:after{content:"";display:table;clear:both}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn-group .typo3-adminPanel-btn{border-radius:0;float:left}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn-group .typo3-adminPanel-btn:first-child{border-radius:2px 0 0 2px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn-group .typo3-adminPanel-btn:last-child{border-radius:0 2px 2px 0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-btn-group .typo3-adminPanel-btn+.typo3-adminPanel-btn{margin-left:-1px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-progress{position:relative;height:1.5em}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-progress-bar{position:absolute;top:0;left:0;height:100%;width:100%;background-color:#333}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-progress-bar-green{background-color:#629755}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-progress-value{text-align:right}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-zoom{position:absolute;z-index:99994;background-color:#fafafa;top:0;left:0;width:100%;height:100%;display:none;flex-direction:column}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-zoom-show{display:flex}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-zoom-header{padding:20px;border-bottom:1px solid #dadada}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-zoom-body{padding:20px;height:100%;overflow:auto}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-zoom-body>:first-child{margin-top:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-zoom-body>:last-child{margin-bottom:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .sf-dump-search-input-next svg,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .sf-dump-search-input-previous svg{height:16px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-col-count{text-align:right;width:90px;flex-shrink:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-col-time{width:250px;flex-shrink:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-header{color:#737373;border-bottom:1px solid #d7d7d7}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-queries-header{color:#737373;border-bottom:1px solid #d7d7d7}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-query-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel>.typo3-adminPanel-sql-panel{border-bottom:1px dashed #d7d7d7}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel>.typo3-adminPanel-sql-panel:nth-child(2n+1){background:#f5f5f5}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-bar{display:flex;height:auto;font-size:11px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-bar .typo3-adminPanel-bar-value{display:flex;flex-direction:column;justify-content:center;color:#1e1e1e;text-align:left;white-space:nowrap;background-color:#fff;transition:all .5s ease;width:0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-statement{margin:1em 0;padding:.75em 1em;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;background:#f2f2f2;font-size:11px}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-backtrace{margin:1em 0}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-backtrace-item{margin:1px 0;padding:.75em 1em;background-color:#f2f2f2;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;word-break:break-word}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-backtrace-item-file,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-backtrace-item-function{display:block}#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-sql-backtrace-item-file{opacity:.5;font-size:.8em} \ No newline at end of file diff --git a/typo3/sysext/backend/Classes/Controller/PageTsConfig/PageTsConfigActiveController.php b/typo3/sysext/backend/Classes/Controller/PageTsConfig/PageTsConfigActiveController.php index 97a80e8fce93885c32355fd37b8534df5ba6f478..cd5617dd25b2e9059245658f0102ed75fa33381b 100644 --- a/typo3/sysext/backend/Classes/Controller/PageTsConfig/PageTsConfigActiveController.php +++ b/typo3/sysext/backend/Classes/Controller/PageTsConfig/PageTsConfigActiveController.php @@ -17,16 +17,34 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Controller\PageTsConfig; +use Psr\Container\ContainerInterface; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use TYPO3\CMS\Backend\Attribute\Controller; +use TYPO3\CMS\Backend\Module\ModuleData; use TYPO3\CMS\Backend\Routing\UriBuilder; use TYPO3\CMS\Backend\Template\ModuleTemplate; use TYPO3\CMS\Backend\Template\ModuleTemplateFactory; use TYPO3\CMS\Backend\Utility\BackendUtility; +use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Http\RedirectResponse; use TYPO3\CMS\Core\Localization\LanguageService; -use TYPO3\CMS\Core\Utility\ArrayUtility; +use TYPO3\CMS\Core\Site\Entity\Site; +use TYPO3\CMS\Core\TypoScript\AST\Traverser\AstTraverser; +use TYPO3\CMS\Core\TypoScript\AST\Visitor\AstSortChildrenVisitor; +use TYPO3\CMS\Core\TypoScript\IncludeTree\IncludeNode\RootInclude; +use TYPO3\CMS\Core\TypoScript\IncludeTree\IncludeNode\SiteInclude; +use TYPO3\CMS\Core\TypoScript\IncludeTree\IncludeNode\TsConfigInclude; +use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\ConditionVerdictAwareIncludeTreeTraverser; +use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\IncludeTreeTraverser; +use TYPO3\CMS\Core\TypoScript\IncludeTree\TsConfigTreeBuilder; +use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeAstBuilderVisitor; +use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeSetupConditionConstantSubstitutionVisitor; +use TYPO3\CMS\Core\TypoScript\Tokenizer\LosslessTokenizer; +use TYPO3\CMS\Core\TypoScript\UserTsConfig; +use TYPO3\CMS\Tstemplate\TypoScript\IncludeTree\Visitor\IncludeTreeCommentAwareAstBuilderVisitor; +use TYPO3\CMS\Tstemplate\TypoScript\IncludeTree\Visitor\IncludeTreeConditionAggregatorVisitor; +use TYPO3\CMS\Tstemplate\TypoScript\IncludeTree\Visitor\IncludeTreeConditionEnforcerVisitor; /** * PageTsConfig > Active Page TsConfig @@ -37,13 +55,16 @@ use TYPO3\CMS\Core\Utility\ArrayUtility; class PageTsConfigActiveController { public function __construct( + private readonly ContainerInterface $container, private readonly UriBuilder $uriBuilder, private readonly ModuleTemplateFactory $moduleTemplateFactory, + private readonly TsConfigTreeBuilder $tsConfigTreeBuilder, ) { } public function handleRequest(ServerRequestInterface $request): ResponseInterface { + $backendUser = $this->getBackendUser(); $languageService = $this->getLanguageService(); $queryParams = $request->getQueryParams(); @@ -58,12 +79,114 @@ class PageTsConfigActiveController // Redirect to records overview if on page 0 or invalid uid. return new RedirectResponse($this->uriBuilder->buildUriFromRoute('pagetsconfig_records')); } + $pageRecord = BackendUtility::readPageAccess($pageUid, '1=1') ?: []; + if (empty($pageRecord)) { + // Redirect to records overview if page could not be determined. + // Edge case if page has been removed meanwhile. + BackendUtility::setUpdateSignal('updatePageTree'); + return new RedirectResponse($this->uriBuilder->buildUriFromRoute('pagetsconfig_records')); + } + + // Force boolean toggles to bool and init further get/post vars + if ($moduleData->clean('displayConstantSubstitutions', [true, false])) { + $backendUser->pushModuleData($currentModuleIdentifier, $moduleData->toArray()); + } + $displayConstantSubstitutions = $moduleData->get('displayConstantSubstitutions'); + if ($moduleData->clean('displayComments', [true, false])) { + $backendUser->pushModuleData($currentModuleIdentifier, $moduleData->toArray()); + } + $displayComments = $moduleData->get('displayComments'); + if ($moduleData->clean('sortAlphabetically', [true, false])) { + $backendUser->pushModuleData($currentModuleIdentifier, $moduleData->toArray()); + } + $sortAlphabetically = $moduleData->get('sortAlphabetically'); + + // Prepare site constants if any + $site = $request->getAttribute('site'); + $siteSettingsAst = null; + $siteSettingsFlat = []; + if ($site instanceof Site && !$site->getSettings()->isEmpty()) { + $siteSettings = $site->getSettings()->getAllFlat(); + $siteConstants = ''; + foreach ($siteSettings as $nodeIdentifier => $value) { + $siteConstants .= $nodeIdentifier . ' = ' . $value . LF; + } + $siteSettingsHash = 'site-settings-flat-' . hash('xxh3', $siteConstants); + $siteSettingsNode = new SiteInclude(); + $siteSettingsNode->setIdentifier($siteSettingsHash); + $siteSettingsNode->setName('Site constants settings of site ' . $site->getIdentifier()); + $siteSettingsNode->setLineStream((new LosslessTokenizer())->tokenize($siteConstants)); + $siteSettingsTreeRoot = new RootInclude(); + $siteSettingsTreeRoot->setIdentifier('Root of site settings ' . $siteSettingsHash); + $siteSettingsTreeRoot->addChild($siteSettingsNode); + /** @var IncludeTreeAstBuilderVisitor $astBuilderVisitor */ + $astBuilderVisitor = $this->container->get(IncludeTreeAstBuilderVisitor::class); + $includeTreeTraverser = new IncludeTreeTraverser(); + $includeTreeTraverser->addVisitor($astBuilderVisitor); + $includeTreeTraverser->traverse($siteSettingsTreeRoot); + $siteSettingsAst = $astBuilderVisitor->getAst(); + // Trigger unique identifier creation for entire tree + $siteSettingsAst->setIdentifier('pageTsConfig-siteSettingsAst'); + $siteSettingsFlat = $siteSettingsAst->flatten(); + if ($sortAlphabetically) { + // Traverse AST to sort if needed + $astTraverser = new AstTraverser(); + $astTraverser->addVisitor(new AstSortChildrenVisitor()); + $astTraverser->traverse($siteSettingsAst); + } + } - $alphaSort = (bool)$moduleData->get('alphaSort'); - $pageTsConfig = BackendUtility::getPagesTSconfig($pageUid); - if ($alphaSort) { - $pageTsConfig = ArrayUtility::sortByKeyRecursive($pageTsConfig); + // Base PageTsConfig tree + $rootLine = BackendUtility::BEgetRootLine($pageUid, '', true); + ksort($rootLine); + $pagesTsConfigTree = $this->tsConfigTreeBuilder->getPagesTsConfigTree($rootLine, new LosslessTokenizer()); + + // Overload tree with userTsConfig if any + $userTsConfig = $backendUser->getUserTsConfig(); + if (!$userTsConfig instanceof UserTsConfig) { + throw new \RuntimeException('UserTsConfig not initialized', 1674609098); + } + $userTsConfigAst = $userTsConfig->getUserTsConfigTree(); + $userTsConfigPageOverrides = ''; + // @todo: Ugly, similar in PageTsConfigFactory. + $userTsConfigFlat = $userTsConfigAst->flatten(); + foreach ($userTsConfigFlat as $userTsConfigIdentifier => $userTsConfigValue) { + if (str_starts_with($userTsConfigIdentifier, 'page.')) { + $userTsConfigPageOverrides .= substr($userTsConfigIdentifier, 5) . ' = ' . $userTsConfigValue . chr(10); + } + } + if (!empty($userTsConfigPageOverrides)) { + $includeNode = new TsConfigInclude(); + $includeNode->setName('pageTsConfig-overrides-by-userTsConfig'); + $includeNode->setIdentifier('pagetsconfig-overrides-by-usertsconfig'); + $includeNode->setLineStream((new LosslessTokenizer())->tokenize($userTsConfigPageOverrides)); + $pagesTsConfigTree->addChild($includeNode); + } + + // Set enabled conditions in pageTsConfig include tree and let it handle constant substitutions in pageTsConfig conditions. + $pageTsConfigConditions = $this->handleToggledPageTsConfigConditions($pagesTsConfigTree, $moduleData, $parsedBody, $siteSettingsFlat); + $conditionEnforcerVisitor = new IncludeTreeConditionEnforcerVisitor(); + $conditionEnforcerVisitor->setEnabledConditions(array_column(array_filter($pageTsConfigConditions, static fn ($condition) => $condition['active']), 'value')); + $treeTraverser = new IncludeTreeTraverser(); + $treeTraverser->addVisitor($conditionEnforcerVisitor); + $treeTraverser->traverse($pagesTsConfigTree); + + // Create AST with constants from site and conditions + $includeTreeTraverser = new ConditionVerdictAwareIncludeTreeTraverser(); + /** @var IncludeTreeCommentAwareAstBuilderVisitor $astBuilderVisitor */ + $astBuilderVisitor = $this->container->get(IncludeTreeCommentAwareAstBuilderVisitor::class); + $astBuilderVisitor->setFlatConstants($siteSettingsFlat); + $includeTreeTraverser->addVisitor($astBuilderVisitor); + $includeTreeTraverser->traverse($pagesTsConfigTree); + $pageTsConfigAst = $astBuilderVisitor->getAst(); + // Trigger unique identifier creation for entire tree + $pageTsConfigAst->setIdentifier('pageTsConfig'); + if ($sortAlphabetically) { + // Traverse AST to sort if needed + $astTraverser = new AstTraverser(); + $astTraverser->addVisitor(new AstSortChildrenVisitor()); + $astTraverser->traverse($pageTsConfigAst); } $view = $this->moduleTemplateFactory->create($request); @@ -73,12 +196,63 @@ class PageTsConfigActiveController $view->makeDocHeaderModuleMenu(['id' => $pageUid]); $view->assignMultiple([ 'pageUid' => $pageUid, - 'alphaSort' => $alphaSort, - 'pageTsConfig' => $pageTsConfig, + 'pageTitle' => $pageRecord['title'], + 'displayConstantSubstitutions' => $displayConstantSubstitutions, + 'displayComments' => $displayComments, + 'sortAlphabetically' => $sortAlphabetically, + 'siteSettingsAst' => $siteSettingsAst, + 'pageTsConfigAst' => $pageTsConfigAst, + 'pageTsConfigConditions' => $pageTsConfigConditions, + 'pageTsConfigConditionsActiveCount' => count(array_filter($pageTsConfigConditions, static fn ($condition) => $condition['active'])), ]); return $view->renderResponse('PageTsConfig/Active'); } + /** + * Align module data active pageTsConfig conditions with toggled conditions from POST, + * write updated active conditions to user's module data if needed and + * prepare a list of active conditions for view. + */ + private function handleToggledPageTsConfigConditions(RootInclude $pageTsConfigTree, ModuleData $moduleData, ?array $parsedBody, array $flattenedConstants): array + { + $treeTraverser = new IncludeTreeTraverser(); + $setupConditionConstantSubstitutionVisitor = new IncludeTreeSetupConditionConstantSubstitutionVisitor(); + $setupConditionConstantSubstitutionVisitor->setFlattenedConstants($flattenedConstants); + $treeTraverser->addVisitor($setupConditionConstantSubstitutionVisitor); + $conditionAggregatorVisitor = new IncludeTreeConditionAggregatorVisitor(); + $treeTraverser->addVisitor($conditionAggregatorVisitor); + $treeTraverser->traverse($pageTsConfigTree); + $pageTsConfigConditions = $conditionAggregatorVisitor->getConditions(); + $conditionsFromPost = $parsedBody['pageTsConfigConditions'] ?? []; + $conditionsFromModuleData = array_flip((array)$moduleData->get('pageTsConfigConditions')); + $conditions = []; + foreach ($pageTsConfigConditions as $condition) { + $conditionHash = hash('xxh3', $condition['value']); + $conditionActive = array_key_exists($conditionHash, $conditionsFromModuleData); + // Note we're not feeding the post values directly to module data, but filter + // them through available conditions to prevent polluting module data with + // manipulated post values. + if (($conditionsFromPost[$conditionHash] ?? null) === '0') { + unset($conditionsFromModuleData[$conditionHash]); + $conditionActive = false; + } elseif (($conditionsFromPost[$conditionHash] ?? null) === '1') { + $conditionsFromModuleData[$conditionHash] = true; + $conditionActive = true; + } + $conditions[] = [ + 'value' => $condition['value'], + 'originalValue' => $condition['originalValue'], + 'hash' => $conditionHash, + 'active' => $conditionActive, + ]; + } + if ($conditionsFromPost) { + $moduleData->set('pageTsConfigConditions', array_keys($conditionsFromModuleData)); + $this->getBackendUser()->pushModuleData($moduleData->getModuleIdentifier(), $moduleData->toArray()); + } + return $conditions; + } + private function addShortcutButtonToDocHeader(ModuleTemplate $view, string $moduleIdentifier, array $pageInfo, int $pageUid): void { $languageService = $this->getLanguageService(); @@ -100,4 +274,9 @@ class PageTsConfigActiveController { return $GLOBALS['LANG']; } + + private function getBackendUser(): BackendUserAuthentication + { + return $GLOBALS['BE_USER']; + } } diff --git a/typo3/sysext/backend/Classes/Utility/BackendUtility.php b/typo3/sysext/backend/Classes/Utility/BackendUtility.php index e39061196a9a6aee4a7a861f06f0fcb96edc82b6..1aad94d2bba742a88c0129fcccdd8ce9950afa4b 100644 --- a/typo3/sysext/backend/Classes/Utility/BackendUtility.php +++ b/typo3/sysext/backend/Classes/Utility/BackendUtility.php @@ -2289,7 +2289,9 @@ class BackendUtility * Call to update the page tree frame (or something else..?) after * use 'updatePageTree' as a first parameter will set the page tree to be updated. * - * @param string $set Key to set the update signal. When setting, this value contains strings telling WHAT to set. At this point it seems that the value "updatePageTree" is the only one it makes sense to set. If empty, all update signals will be removed. + * @param string $set Key to set the update signal. When setting, this value contains strings telling WHAT to set. + * At this point it seems that the value "updatePageTree" is the only one it makes sense to set. + * If empty, all update signals will be removed. * @param mixed $params Additional information for the update signal, used to only refresh a branch of the tree * @see BackendUtility::getUpdateSignalDetails() */ diff --git a/typo3/sysext/backend/Classes/ViewHelpers/HashViewHelper.php b/typo3/sysext/backend/Classes/ViewHelpers/HashViewHelper.php deleted file mode 100644 index e9d55885222b1c51a9729c29084d36020c590779..0000000000000000000000000000000000000000 --- a/typo3/sysext/backend/Classes/ViewHelpers/HashViewHelper.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php - -declare(strict_types=1); - -/* - * This file is part of the TYPO3 CMS project. - * - * It is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, either version 2 - * of the License, or any later version. - * - * For the full copyright and license information, please read the - * LICENSE.txt file that was distributed with this source code. - * - * The TYPO3 project - inspiring people to share! - */ - -namespace TYPO3\CMS\Backend\ViewHelpers; - -use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; -use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper; - -/** - * Temporary VH for PageTsConfig module. Will vanish soon. - * - * @internal - */ -final class HashViewHelper extends AbstractViewHelper -{ - public function initializeArguments(): void - { - $this->registerArgument('value', 'string', 'The string to be hashed', true); - } - - /** - * @param array{value: string} $arguments - */ - public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext): string - { - return hash('xxh3', $arguments['value']); - } -} diff --git a/typo3/sysext/backend/Classes/ViewHelpers/IsArrayViewHelper.php b/typo3/sysext/backend/Classes/ViewHelpers/IsArrayViewHelper.php deleted file mode 100644 index d30422dfa316e902ae0f48e4d585605a9b957cd3..0000000000000000000000000000000000000000 --- a/typo3/sysext/backend/Classes/ViewHelpers/IsArrayViewHelper.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php - -declare(strict_types=1); - -/* - * This file is part of the TYPO3 CMS project. - * - * It is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, either version 2 - * of the License, or any later version. - * - * For the full copyright and license information, please read the - * LICENSE.txt file that was distributed with this source code. - * - * The TYPO3 project - inspiring people to share! - */ - -namespace TYPO3\CMS\Backend\ViewHelpers; - -use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; -use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper; - -/** - * Temporary VH for PageTsConfig module. Will vanish soon. - * - * @internal - */ -final class IsArrayViewHelper extends AbstractViewHelper -{ - public function initializeArguments(): void - { - $this->registerArgument('value', 'mixed', 'The variable being checked', true); - } - - /** - * @param array{value: mixed} $arguments - */ - public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext): bool - { - return is_array($arguments['value']); - } -} diff --git a/typo3/sysext/tstemplate/Classes/ViewHelpers/FineDiffViewHelper.php b/typo3/sysext/backend/Classes/ViewHelpers/TypoScript/FineDiffViewHelper.php similarity index 89% rename from typo3/sysext/tstemplate/Classes/ViewHelpers/FineDiffViewHelper.php rename to typo3/sysext/backend/Classes/ViewHelpers/TypoScript/FineDiffViewHelper.php index b3fb442748be2cbef9aad018605d5f38b48fd1cd..26832b1f6c1dc598f348e4ab35db723486332c19 100644 --- a/typo3/sysext/tstemplate/Classes/ViewHelpers/FineDiffViewHelper.php +++ b/typo3/sysext/backend/Classes/ViewHelpers/TypoScript/FineDiffViewHelper.php @@ -15,7 +15,7 @@ declare(strict_types=1); * The TYPO3 project - inspiring people to share! */ -namespace TYPO3\CMS\Tstemplate\ViewHelpers; +namespace TYPO3\CMS\Backend\ViewHelpers\TypoScript; use cogpowered\FineDiff\Diff; use cogpowered\FineDiff\Granularity\Word; @@ -25,7 +25,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper; /** * Runs two strings through 'FineDiff' on word level. * - * @internal This is not part of TYPO3 Core API. + * @internal This experimental ViewHelper is not part of TYPO3 Core API and may change or vanish any time. */ final class FineDiffViewHelper extends AbstractViewHelper { diff --git a/typo3/sysext/backend/Configuration/Backend/Modules.php b/typo3/sysext/backend/Configuration/Backend/Modules.php index ee81bb51ef45d6ec8ef22602891c558194c494ac..60ae9162ad8ef807f5b02a775bd4362f8c4503e1 100644 --- a/typo3/sysext/backend/Configuration/Backend/Modules.php +++ b/typo3/sysext/backend/Configuration/Backend/Modules.php @@ -124,7 +124,10 @@ return [ ], ], 'moduleData' => [ - 'alphaSort' => false, + 'sortAlphabetically' => true, + 'displayComments' => true, + 'displayConstantSubstitutions' => true, + 'pageTsConfigConditions' => [], ], ], 'pagetsconfig_includes' => [ diff --git a/typo3/sysext/backend/Resources/Private/Language/locallang_pagetsconfig.xlf b/typo3/sysext/backend/Resources/Private/Language/locallang_pagetsconfig.xlf index 87783c1ab38ab7134351d2382ecdb81783c7c5b1..fa42b1beccaa8b4356760ac094426bdf9d047b3a 100644 --- a/typo3/sysext/backend/Resources/Private/Language/locallang_pagetsconfig.xlf +++ b/typo3/sysext/backend/Resources/Private/Language/locallang_pagetsconfig.xlf @@ -4,7 +4,7 @@ <header/> <body> <trans-unit id="module.pagetsconfig.title" resname="module.pagetsconfig.title"> - <source>Page TsConfig</source> + <source>PageTsConfig</source> </trans-unit> <trans-unit id="module.pagetsconfig.description" resname="module.pagetsconfig.description"> <source>The Page TsConfig module lets you manage configuration overrides for editors and option display throughout the Backend.</source> @@ -37,17 +37,50 @@ <source>Active PageTsConfig</source> </trans-unit> <trans-unit id="module.pagetsconfig_active.headline" resname="module.pagetsconfig_active.headline"> - <source>Active PageTsConfig</source> + <source>Active PageTsConfig of page "%s"</source> </trans-unit> <trans-unit id="module.pagetsconfig_active.description" resname="module.pagetsconfig_active.description"> - <source>Overview of the current PageTsConfig of the system. A targeted search for values and names is possible. The list of results can also be filtered according to conditions.</source> + <source>Overview of the current PageTsConfig of the system. A targeted search for values and names is possible. The list of results can also be filtered according to conditions.Overview of the current PageTsConfig of the system. A targeted search for values and names is possible. The list of results can also be filtered according to conditions.</source> + </trans-unit> + <trans-unit id="module.pagetsconfig_active.displayConstantSubstitutions" resname="module.pagetsconfig_active.displayConstantSubstitutions"> + <source>Substitute site settings</source> + </trans-unit> + <trans-unit id="module.pagetsconfig_active.displayComments" resname="module.pagetsconfig_active.displayComments"> + <source>Display comments</source> </trans-unit> <trans-unit id="module.pagetsconfig_active.sortAlphabetically" resname="module.pagetsconfig_active.sortAlphabetically"> - <source>Sort alphabetically</source> + <source>Sort keys alphabetically</source> + </trans-unit> + <trans-unit id="module.pagetsconfig_active.panel.header.conditions" resname="module.pagetsconfig_active.panel.header.conditions"> + <source>Conditions</source> + </trans-unit> + <trans-unit id="module.pagetsconfig_active.panel.header.numberOfSearchMatches" resname="module.pagetsconfig_active.panel.header.numberOfSearchMatches"> + <source>%s search match(es)</source> + </trans-unit> + <trans-unit id="module.pagetsconfig_active.panel.info.conditionActiveCount" resname="module.pagetsconfig_active.panel.info.conditionActiveCount"> + <source>%s active condition(s)</source> + </trans-unit> + <trans-unit id="module.pagetsconfig_active.panel.info.conditionWithConstant" resname="module.pagetsconfig_active.panel.info.conditionWithConstant"> + <source>Site settings usage: [%s]</source> + </trans-unit> + <trans-unit id="module.pagetsconfig_active.panel.header.configuration" resname="module.pagetsconfig_active.panel.header.configuration"> + <source>Configuration</source> + </trans-unit> + <trans-unit id="module.pagetsconfig_active.siteSettings" resname="module.pagetsconfig_active.siteSettings"> + <source>Available constants from site settings</source> + </trans-unit> + <trans-unit id="module.pagetsconfig_active.activePageTsConfig" resname="module.pagetsconfig_active.activePageTsConfig"> + <source>Active PageTsConfig</source> </trans-unit> <trans-unit id="module.pagetsconfig_active.noPageTSconfigAvailable" resname="module.pagetsconfig_active.noPageTSconfigAvailable"> <source>No suitable Page TSconfig available.</source> </trans-unit> + <trans-unit id="module.pagetsconfig_active.tree.comment" resname="module.pagetsconfig_active.tree.comment"> + <source>Comment: </source> + </trans-unit> + <trans-unit id="module.pagetsconfig_active.tree.valueWithConstant" resname="module.pagetsconfig_active.tree.valueWithConstant"> + <source>Constant usage: %s</source> + </trans-unit> <trans-unit id="module.pagetsconfig_includes" resname="module.pagetsconfig_includes"> <source>Included PageTsConfig</source> </trans-unit> diff --git a/typo3/sysext/backend/Resources/Private/Partials/PageTsConfig/Tree.html b/typo3/sysext/backend/Resources/Private/Partials/PageTsConfig/Tree.html deleted file mode 100644 index 5ccc439c451457ed7fe6fa413fe9223934e05a09..0000000000000000000000000000000000000000 --- a/typo3/sysext/backend/Resources/Private/Partials/PageTsConfig/Tree.html +++ /dev/null @@ -1,93 +0,0 @@ -<html - xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" - xmlns:backend="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers" - data-namespace-typo3-fluid="true" -> - -<f:be.pageRenderer - includeJavaScriptModules="{ - 0: '@typo3/backend/element/icon-element.js', - 1: '@typo3/backend/utility/collapse-state-persister.js' - }" -/> - -<f:if condition="{pageTsConfig}"> - <f:then> - <f:if condition="{listIdentifier}"> - <f:then> - <f:variable name="hashedListIdentifier" value="{backend:hash(value: listIdentifier)}" /> - <ul class="list-tree text-monospace collapse" data-persist-collapse-state="true" data-persist-collapse-state-not-if="pagets-search-term" id="collapse-list-{hashedListIdentifier}"> - <f:render - section="listItem" - arguments="{ - pageTsConfig: pageTsConfig, - parentIdentifier: listIdentifier - }" - /> - </ul> - </f:then> - <f:else> - <f:comment><!-- Root level --></f:comment> - <ul class="list-tree text-monospace"> - <f:render section="listItem" arguments="{_all}" /> - </ul> - </f:else> - </f:if> - </f:then> - <f:else> - <f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang_pagetsconfig.xlf:module.pagetsconfig_active.noPageTSconfigAvailable" /> - </f:else> -</f:if> - -<f:section name="listItem"> - <f:for each="{pageTsConfig}" as="configItem" key="configLabel" iteration="configIterator"> - <f:variable name="normalizedConfigLabel" value="{f:format.trim(characters: '.', side: 'both', value: '{configLabel}')}" /> - <f:variable name="pageTsIdentifier" value="{f:format.trim(characters: '.', side: 'both', value: '{parentIdentifier}.{normalizedConfigLabel}') -> f:format.case(mode: 'lower')}" /> - <li> - <f:if condition="{backend:isArray(value: configItem)}"> - <f:then> - <f:comment><!-- Array --></f:comment> - <f:if condition="{parentIdentifier}"> - <f:then> - <f:variable name="listIdentifier" value="{parentIdentifier}.{normalizedConfigLabel}" /> - </f:then> - <f:else> - <f:variable name="listIdentifier" value="{normalizedConfigLabel}" /> - </f:else> - </f:if> - <f:variable name="hashedListIdentifier" value="{backend:hash(value: listIdentifier)}" /> - <span class="list-tree-group"> - <a - class="list-tree-control collapsed" - data-bs-toggle="collapse" - data-bs-target="#collapse-list-{hashedListIdentifier}" - aria-expanded="false" - > - <typo3-backend-icon identifier="actions-caret-right"></typo3-backend-icon> - <typo3-backend-icon identifier="actions-caret-down"></typo3-backend-icon> - </a> - <span class="list-tree-label" title="{normalizedConfigLabel}" data-pagets-identifier="{pageTsIdentifier}">[{normalizedConfigLabel}]</span> - </span> - <f:comment><!-- Recursive child --></f:comment> - <f:render - partial="PageTsConfig/Tree" - arguments="{ - pageTsConfig: configItem, - listIdentifier: listIdentifier - }" - /> - </f:then> - <f:else> - <f:comment><!-- String --></f:comment> - <span class="list-tree-group"> - <span class="list-tree-label" title="{normalizedConfigLabel}" data-pagets-identifier="{pageTsIdentifier}">[{normalizedConfigLabel}]</span> - = - <span class="list-tree-value">{configItem}</span> - </span> - </f:else> - </f:if> - </li> - </f:for> -</f:section> - -</html> diff --git a/typo3/sysext/backend/Resources/Private/Templates/PageTsConfig/Active.html b/typo3/sysext/backend/Resources/Private/Templates/PageTsConfig/Active.html index 45a7b334986a0d183f20071b51da69ca2327508a..4746969190484946425094c481e74b2c3b25969c 100644 --- a/typo3/sysext/backend/Resources/Private/Templates/PageTsConfig/Active.html +++ b/typo3/sysext/backend/Resources/Private/Templates/PageTsConfig/Active.html @@ -1,17 +1,22 @@ <html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" + xmlns:backend="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers" data-namespace-typo3-fluid="true" > <f:layout name="Module"/> <f:section name="Content"> - <f:be.pageRenderer includeJavaScriptModules="{ 0: '@typo3/backend/context-menu.js', 1: '@typo3/backend/element/immediate-action-element.js', - 2: '@typo3/backend/page-tsconfig.js' + 2: '@typo3/backend/element/icon-element.js', + 3: '@typo3/backend/utility/collapse-state-persister.js', + 4: '@typo3/backend/utility/collapse-state-search.js' + }" + addJsInlineLabels="{ + 'collapse-state-search.numberOfSearchMatches': 'LLL:EXT:backend/Resources/Private/Language/locallang_pagetsconfig.xlf:module.pagetsconfig_active.panel.header.numberOfSearchMatches' }" /> @@ -19,55 +24,346 @@ <typo3-immediate-action action="TYPO3.Backend.Storage.ModuleStateStorage.update" args="{args -> f:format.json() -> f:format.htmlspecialchars()}"></typo3-immediate-action> <h1> - <f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang_pagetsconfig.xlf:module.pagetsconfig_active.headline" /> + <f:translate + key="LLL:EXT:backend/Resources/Private/Language/locallang_pagetsconfig.xlf:module.pagetsconfig_active.headline" + arguments="{ + 0: '{pageTitle}' + }" + /> </h1> <div> <p class="lead"><f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang_pagetsconfig.xlf:module.pagetsconfig_active.description" /></p> </div> - <div class="row row-cols-auto align-items-end g-3 mb-3"> + <f:render section="Options" arguments="{_all}" /> + + <f:comment><!-- Constants from Site settings --></f:comment> + <f:if condition="{siteSettingsAst}"> + <h2><f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang_pagetsconfig.xlf:module.pagetsconfig_active.siteSettings" /></h2> + <div class="panel-group"> + <f:render + section="TreePanel" + arguments="{ + type: 'constant', + tree: siteSettingsAst, + pageUid: pageUid, + displayComments: 0 + }" + /> + </div> + </f:if> + + <h2><f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang_pagetsconfig.xlf:module.pagetsconfig_active.activePageTsConfig" /></h2> + <f:if condition="!{pageTsConfigAst.children}"> + <f:then> + <f:be.infobox + message="{f:translate(key: 'LLL:EXT:backend/Resources/Private/Language/locallang_pagetsconfig.xlf:module.pagetsconfig_active.noPageTSconfigAvailable')}" + state="-1" + /> + </f:then> + <f:else> + <div class="panel-group"> + <f:if condition="{pageTsConfigConditions}"> + <f:render + section="Conditions" + arguments="{ + pageUid: pageUid, + conditions: pageTsConfigConditions, + conditionActiveCount: pageTsConfigConditionsActiveCount, + displayConstantSubstitutions: displayConstantSubstitutions + }" + /> + </f:if> + <f:render + section="TreePanel" + arguments="{ + type: 'setup', + tree: pageTsConfigAst, + pageUid: pageUid, + displayComments: displayComments, + displayConstantSubstitutions: displayConstantSubstitutions + }" + /> + </div> + </f:else> + </f:if> +</f:section> + +<f:section name="Options"> + <div class="row row-cols-auto align-items-end g-3"> <div class="col"> <form action="#"> <div class="input-group"> <input type="text" - class="form-control" + class="form-control t3js-collapse-search-term" name="searchValue" - id="searchValue" - value="{searchValue}" + data-persist-collapse-search-key="collapse-search-term-pagets" + value="" minlength="3" placeholder="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.enterSearchString')}" /> </div> </form> </div> + <f:if condition="{siteSettingsAst}"> + <div class="col"> + <form action="{f:be.uri(route: 'pagetsconfig_active', parameters: '{id: pageUid}')}" method="post"> + <div class="form-check form-switch"> + <label class="form-check-label" for="displayConstantSubstitutions"> + <f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang_pagetsconfig.xlf:module.pagetsconfig_active.displayConstantSubstitutions" /> + </label> + <input type="hidden" name="displayConstantSubstitutions" value="0" /> + <input + type="checkbox" + class="form-check-input" + name="displayConstantSubstitutions" + id="displayConstantSubstitutions" + value="1" + data-global-event="change" + data-action-submit="$form" + data-value-selector="input[name='displayConstantSubstitutions']" + {f:if(condition: displayConstantSubstitutions, then: 'checked="checked"')} + /> + </div> + </form> + </div> + </f:if> + <div class="col"> + <form action="{f:be.uri(route: 'pagetsconfig_active', parameters: '{id: pageUid}')}" method="post"> + <div class="form-check form-switch"> + <label class="form-check-label" for="displayComments"> + <f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang_pagetsconfig.xlf:module.pagetsconfig_active.displayComments" /> + </label> + <input type="hidden" name="displayComments" value="0" /> + <input + type="checkbox" + class="form-check-input" + name="displayComments" + id="displayComments" + value="1" + data-global-event="change" + data-action-submit="$form" + data-value-selector="input[name='displayComments']" + {f:if(condition: displayComments, then: 'checked="checked"')} + /> + </div> + </form> + </div> <div class="col"> <form action="{f:be.uri(route: 'pagetsconfig_active', parameters: '{id: pageUid}')}" method="post"> <div class="form-check form-switch"> - <label class="form-check-label" for="alphaSort"> + <label class="form-check-label" for="sortAlphabetically"> <f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang_pagetsconfig.xlf:module.pagetsconfig_active.sortAlphabetically" /> </label> - <input type="hidden" name="alphaSort" value="0" /> + <input type="hidden" name="sortAlphabetically" value="0" /> <input type="checkbox" class="form-check-input" - name="alphaSort" - id="alphaSort" + name="sortAlphabetically" + id="sortAlphabetically" value="1" - {f:if(condition: alphaSort, then:'checked="checked"')} data-global-event="change" data-action-submit="$form" - data-value-selector="input[name='alphaSort']" + data-value-selector="input[name='sortAlphabetically']" + {f:if(condition: sortAlphabetically, then: 'checked="checked"')} > </div> </form> </div> </div> +</f:section> - <div class="t3js-pagets-tree"> - <f:render partial="PageTsConfig/Tree" arguments="{pageTsConfig: pageTsConfig}" /> +<f:section name="Conditions"> + <div class="panel panel-default"> + <div class="panel-heading" role="tab"> + <h2 class="panel-title" id="pagetsconfig-active-conditions-heading"> + <a href="#" class="collapsed" data-bs-toggle="collapse" data-bs-target="#pagetsconfig-active-conditions-body" aria-expanded="false" aria-controls="pagetsconfig-active-conditions-body"> + <span class="caret"></span> + <strong><f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang_pagetsconfig.xlf:module.pagetsconfig_active.panel.header.conditions"/></strong> + <f:if condition="{conditionActiveCount}"> + <span class="badge badge-info"> + <f:translate + key="LLL:EXT:backend/Resources/Private/Language/locallang_pagetsconfig.xlf:module.pagetsconfig_active.panel.info.conditionActiveCount" + arguments="{0: conditionActiveCount}" + /> + </span> + </f:if> + </a> + </h2> + </div> + <div + class="panel-collapse collapse" + id="pagetsconfig-active-conditions-body" + data-persist-collapse-state="true" + data-persist-collapse-state-if-state="shown" + role="tabpanel" + aria-labelledby="pagetsconfig-active-conditions-heading" + > + <div class="panel-body"> + <form action="{f:be.uri(route: 'pagetsconfig_active', parameters: '{id: pageUid}')}" method="post"> + <div class="row"> + <div class="col-12"> + <f:for each="{conditions}" as="condition"> + <div class="form-check form-switch"> + <label class="form-check-label" for="condition{condition.hash}"> + <f:if condition="{displayConstantSubstitutions} && {condition.originalValue}"> + <f:then> + <span style="display: inline;"> + <span class="text-monospace">[{condition.value}]</span> + <span class="diff-item-result diff-item-result-inline text-monospace p-0"> + <f:format.raw> + <f:translate + key="LLL:EXT:backend/Resources/Private/Language/locallang_pagetsconfig.xlf:module.pagetsconfig_active.panel.info.conditionWithConstant" + arguments="{ + 0: '{backend:typoScript.fineDiff(from: condition.originalValue, to: condition.value)}' + }" + /> + </f:format.raw> + </span> + </span> + </f:then> + <f:else> + <span class="text-monospace">[{condition.value}]</span> + </f:else> + </f:if> + </label> + <input type="hidden" name="pageTsConfigConditions[{condition.hash}]" value="0" /> + <input + type="checkbox" + class="form-check-input" + id="condition{condition.hash}" + name="pageTsConfigConditions[{condition.hash}]" + value="1" + data-global-event="change" + data-action-submit="$form" + data-value-selector="input[name='pageTsConfigConditions[{condition.hash}]']" + {f:if(condition: condition.active, then: 'checked="checked"')} + /> + </div> + </f:for> + </div> + </div> + </form> + </div> + </div> </div> +</f:section> +<f:section name="TreePanel"> + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title" id="pagetsconfig-active-{type}-ast-heading"> + <a + href="#" + class="collapsed" + id="panel-tree-heading-{type}" + data-bs-toggle="collapse" + data-bs-target="#pagetsconfig-active-{type}-ast-body" + aria-expanded="false" + aria-controls="pagetsconfig-active-{type}-ast-body" + > + <span class="caret"></span> + <strong><f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang_pagetsconfig.xlf:module.pagetsconfig_active.panel.header.configuration"/></strong> + <span class="badge badge-success hidden t3js-collapse-states-search-numberOfSearchMatches"></span> + </a> + </h3> + </div> + <div + id="pagetsconfig-active-{type}-ast-body" + class="panel-collapse collapse" + data-persist-collapse-state="true" + data-persist-collapse-state-if-state="shown" + aria-labelledby="pagetsconfig-active-{type}-ast-heading" + role="tabpanel" + > + <div class="panel-body pagetsconfig-active-content t3js-collapse-states-search-tree"> + <ul class="list-tree text-monospace"> + <f:render + section="Tree" + arguments="{ + type: type, + tree: tree, + pageUid: pageUid, + displayConstantSubstitutions: displayConstantSubstitutions, + displayComments: displayComments + }" + /> + </ul> + </div> + </div> + </div> +</f:section> + +<f:section name="Tree"> + <f:for each="{tree.nextChild}" as="child"> + <li class="list-tree-comment"> + <f:if condition="{displayComments} && {child.comments}"> + <f:for each="{child.comments}" as="comment" iteration="iterator"> + <div><f:format.nl2br>{comment}</f:format.nl2br></div> + </f:for> + </f:if> + </li> + <li class="list-tree-constant-substitution"> + <f:if condition="{displayConstantSubstitutions} && {child.originalValueTokenStream}"> + <span class="diff-item-result diff-item-result-inline text-monospace text-normal p-0"> + <f:format.raw> + <f:variable name="trimmedValueTokenStream"><f:format.trim>{child.originalValueTokenStream}</f:format.trim></f:variable> + <f:translate + key="LLL:EXT:backend/Resources/Private/Language/locallang_pagetsconfig.xlf:module.pagetsconfig_active.tree.valueWithConstant" + arguments="{ + 0: '{backend:typoScript.fineDiff(from: trimmedValueTokenStream, to: child.value)}' + }" + /> + </f:format.raw> + </span> + </f:if> + </li> + <li> + <span class="list-tree-group"> + <f:if condition="{child.children}"> + <a + class="list-tree-control collapsed" + data-bs-toggle="collapse" + data-bs-target="#collapse-list-{child.identifier}" + aria-expanded="false" + > + <typo3-backend-icon identifier="actions-caret-right"></typo3-backend-icon> + <typo3-backend-icon identifier="actions-caret-down"></typo3-backend-icon> + </a> + </f:if> + <span class="list-tree-label">{child.name}</span> + <f:if condition="!{child.valueNull}"> + = + <span class="list-tree-value">{child.value}</span> + </f:if> + <f:if condition="{child.referenceSourceStream}"> + =< <span class="list-tree-value">{child.referenceSourceStream}</span> + </f:if> + </span> + <f:if condition="{child.children}"> + <ul + class="list-tree text-monospace collapse" + data-persist-collapse-state="true" + data-persist-collapse-state-suffix="pagets-active-{type}" + data-persist-collapse-state-not-if-search="true" + data-persist-collapse-state-if-state="shown" + id="collapse-list-{child.identifier}" + > + <f:render + section="Tree" + arguments="{ + type: type, + tree: child, + pageUid: pageUid, + displayConstantSubstitutions: displayConstantSubstitutions, + displayComments: displayComments + }" + /> + </ul> + </f:if> + </li> + </f:for> </f:section> </html> diff --git a/typo3/sysext/backend/Resources/Public/Css/backend.css b/typo3/sysext/backend/Resources/Public/Css/backend.css index d8afc369df77d5beb2fff48ff604b70ae2ba21e4..d0758601d6ae478caa665a05fc0d026f5c8fc614 100644 --- a/typo3/sysext/backend/Resources/Public/Css/backend.css +++ b/typo3/sysext/backend/Resources/Public/Css/backend.css @@ -20,4 +20,4 @@ grid-template: "statusreport-indicator statusreport-title" "statusreport-indicator statusreport-body"/calc(var(--statusreport-icon-size) * 1.5) auto; } } -.diff{background-color:#fff;border:1px solid #ccc;display:table}.diff-item{display:table-row}.diff-item+.diff-item{border-top:1px solid #ccc}.diff-item-result,.diff-item-title{padding:10px;display:table-cell}.diff-item-title{background-color:#fafafa;padding-right:10px;font-style:italic;white-space:nowrap}.diff-item-result{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;width:100%;white-space:pre-wrap;word-break:break-word;word-wrap:break-word}.diff-item-result del{color:#c80c05;background-color:#fff6f6;text-decoration:none;display:inline-block}.diff-item-result ins{color:#44a512;background-color:#ebfce3;text-decoration:none;display:inline-block}.diff-item-result.diff-item-result-inline{white-space:normal}:root{--module-bg:#fff;--module-color:inherit;--module-dark-bg:#333;--module-dark-color:#ccc;--module-docheader-height:67px;--module-docheader-zindex:300;--module-docheader-padding-y:5px;--module-docheader-padding-x:24px;--module-docheader-padding:var(--module-docheader-padding-y) var(--module-docheader-padding-x);--module-docheader-spacing-y:4px;--module-docheader-spacing-x:8px;--module-docheader-spacing:var(--module-docheader-spacing-y) var(--module-docheader-spacing-x);--module-docheader-bg:#eee;--module-docheader-border:#c3c3c3;--module-docheader-bar-height:26px;--module-docheader-scroll-offset:calc(-1 * (var(--module-docheader-bar-height) + var(--module-docheader-padding-y)));--module-body-padding-y:24px;--module-body-padding-x:24px;--module-body-padding:var(--module-body-padding-y) var(--module-body-padding-x)}.module{height:100%;width:100%;background-color:var(--module-bg);color:var(--module-color);overflow-y:auto}.module-dark{--module-color:var(--module-dark-color);--module-bg:var(--module-dark-bg)}.module-loading-indicator{position:fixed;min-height:5px;width:100%;z-index:999999}.module-loading-indicator.nprogress-custom-parent{position:fixed;top:0}.module-docheader{position:sticky;width:100%;top:0;left:0;display:flex;flex-direction:column;min-height:var(--module-docheader-height);z-index:var(--module-docheader-zindex);background-color:var(--module-docheader-bg);border-bottom:1px solid var(--module-docheader-border);padding:var(--module-docheader-padding);gap:var(--module-docheader-spacing);transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.module-docheader{transition:none}}.module-docheader-folded{transform:translateY(var(--module-docheader-scroll-offset))}.module-docheader .module-docheader-bar{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--module-docheader-spacing);min-height:var(--module-docheader-bar-height);line-height:var(--module-docheader-bar-height)}.module-docheader .module-docheader-bar label{margin-top:0;margin-bottom:0}.module-docheader .module-docheader-bar .form-group{margin:0}.module-docheader .module-docheader-bar-container{display:flex;gap:var(--module-docheader-spacing);flex-wrap:wrap}.module-body{padding:var(--module-body-padding)}.module-body>.callout:first-child{margin-top:0}.module-body>.container{padding-left:0;padding-right:0}.module-body .container-small{max-width:768px;margin:0 auto}:root{--panel-bg:#fff;--panel-border-color:#ccc;--panel-border-radius:var(--typo3-component-border-radius);--panel-border-width:var(--typo3-component-border-width);--panel-padding:1rem;--panel-header-padding-x:1rem;--panel-header-padding-y:.75rem;--panel-spacing:var(--typo3-spacing);--panel-box-shadow:var(--typo3-component-box-shadow);--panel-primary-border-color:#99c9f5;--panel-primary-progress-bg:#0078e6;--panel-primary-heading-color:#000;--panel-primary-heading-bg:#d9ebfb;--panel-secondary-border-color:#c7c7c7;--panel-secondary-progress-bg:rgb(115, 115, 115);--panel-secondary-heading-color:#000;--panel-secondary-heading-bg:#eaeaea;--panel-success-border-color:#9fcb9f;--panel-success-progress-bg:#107c10;--panel-success-heading-color:#000;--panel-success-heading-bg:#dbebdb;--panel-info-border-color:#c5ddf3;--panel-info-progress-bg:#6daae0;--panel-info-heading-color:#000;--panel-info-heading-bg:#e9f2fa;--panel-warning-border-color:#f6dab1;--panel-warning-progress-bg:#e8a33d;--panel-warning-heading-color:#000;--panel-warning-heading-bg:#fcf1e2;--panel-danger-border-color:#e9b1b1;--panel-danger-progress-bg:#c83c3c;--panel-danger-heading-color:#000;--panel-danger-heading-bg:#f7e2e2;--panel-light-border-color:#c4c4c4;--panel-light-progress-bg:gainsboro;--panel-light-heading-color:#000;--panel-light-heading-bg:whitesmoke;--panel-default-border-color:#c4c4c4;--panel-default-progress-bg:gainsboro;--panel-default-heading-color:#000;--panel-default-heading-bg:whitesmoke;--panel-notice-border-color:#adadad;--panel-notice-progress-bg:rgb(51, 51, 51);--panel-notice-heading-color:#000;--panel-notice-heading-bg:#e0e0e0;--panel-dark-border-color:#a5a5a5;--panel-dark-progress-bg:rgb(30, 30, 30);--panel-dark-heading-color:#000;--panel-dark-heading-bg:#dddddd}.panel-group{display:flex;flex-flow:column;overflow:hidden;margin-bottom:var(--panel-spacing);border-radius:var(--panel-border-radius);box-shadow:var(--panel-box-shadow)}.panel-group>.panel{border-radius:0;margin-bottom:0;box-shadow:none;margin-top:calc(var(--panel-border-width) * -1)}.panel-group>.panel:first-child{margin-top:0;border-top-left-radius:var(--panel-border-radius);border-top-right-radius:var(--panel-border-radius)}.panel-group>.panel:last-child{border-bottom-left-radius:var(--panel-border-radius);border-bottom-right-radius:var(--panel-border-radius)}.panel{position:relative;display:flex;flex-direction:column;overflow:hidden;min-width:0;word-wrap:break-word;background-clip:border-box;background-color:var(--panel-bg);border:var(--panel-border-width) solid var(--panel-border-color);border-radius:var(--panel-border-radius);box-shadow:var(--typo3-component-box-shadow);margin-bottom:var(--typo3-spacing);transition:all .2s ease-in-out;transition-property:box-shadow,border,transform}.panel>.table-fit{border:none}.panel-progress{display:none;position:absolute;top:0;left:0;height:3px;width:100%;z-index:1;background-color:transparent}.panel-progress .panel-progress-bar{display:block;height:100%;background-color:var(--panel-progress-bg,#0078e6)}.panel-has-progress>.panel-progress{display:block}.panel-heading{position:relative;color:var(--panel-heading-color);background-color:var(--panel-heading-bg);font-weight:700;padding:var(--panel-header-padding-y) var(--panel-header-padding-x)}.panel-heading .caret{transition:all .25s ease-in-out;border-top-color:var(--panel-heading-color)}@media (prefers-reduced-motion:reduce){.panel-heading .caret{transition:none}}.panel-collapsed .panel-heading .caret,.panel-heading .collapsed>.caret,.panel-heading .collapsed>.form-irre-header-icon .caret{transform:rotate(-90deg)}.panel-heading a,.panel-heading a:active,.panel-heading a:focus,.panel-heading a:hover{text-decoration:none;color:inherit}.panel-title{font-size:12px;margin-top:0;margin-bottom:0}.panel-body{padding:var(--panel-padding)}.panel-body>p>a{text-decoration:underline}.panel-body>:first-child{margin-top:0}.panel-body>:last-child{margin-bottom:0}.panel-footer{padding:var(--panel-padding)}.panel-table td:first-child,.panel-table th:first-child{padding-left:var(--panel-header-padding-x)}.panel-table td:last-child,.panel-table th:last-child{padding-right:var(--panel-header-padding-x)}.panel-condensed{--panel-padding:.5rem;--panel-header-padding-x:.5rem;--panel-header-padding-y:.5rem}.panel-collapsed .panel-collapse{display:none;visibility:hidden}.panel-tab{--panel-border-radius:0;border:1px solid #ccc;background-color:#fafafa}.panel-tab+.form-section,.panel-tab+.panel-tab{margin-top:-19px}.tab-pane>.panel-tab:first-child{border-top:none}.panel-primary{--panel-border-color:var(--panel-primary-border-color);--panel-progress-bg:var(--panel-primary-progress-bg);--panel-heading-color:var(--panel-primary-heading-color);--panel-heading-bg:var(--panel-primary-heading-bg)}.panel-secondary{--panel-border-color:var(--panel-secondary-border-color);--panel-progress-bg:var(--panel-secondary-progress-bg);--panel-heading-color:var(--panel-secondary-heading-color);--panel-heading-bg:var(--panel-secondary-heading-bg)}.panel-success{--panel-border-color:var(--panel-success-border-color);--panel-progress-bg:var(--panel-success-progress-bg);--panel-heading-color:var(--panel-success-heading-color);--panel-heading-bg:var(--panel-success-heading-bg)}.panel-info{--panel-border-color:var(--panel-info-border-color);--panel-progress-bg:var(--panel-info-progress-bg);--panel-heading-color:var(--panel-info-heading-color);--panel-heading-bg:var(--panel-info-heading-bg)}.panel-warning{--panel-border-color:var(--panel-warning-border-color);--panel-progress-bg:var(--panel-warning-progress-bg);--panel-heading-color:var(--panel-warning-heading-color);--panel-heading-bg:var(--panel-warning-heading-bg)}.panel-danger{--panel-border-color:var(--panel-danger-border-color);--panel-progress-bg:var(--panel-danger-progress-bg);--panel-heading-color:var(--panel-danger-heading-color);--panel-heading-bg:var(--panel-danger-heading-bg)}.panel-light{--panel-border-color:var(--panel-light-border-color);--panel-progress-bg:var(--panel-light-progress-bg);--panel-heading-color:var(--panel-light-heading-color);--panel-heading-bg:var(--panel-light-heading-bg)}.panel-default{--panel-border-color:var(--panel-default-border-color);--panel-progress-bg:var(--panel-default-progress-bg);--panel-heading-color:var(--panel-default-heading-color);--panel-heading-bg:var(--panel-default-heading-bg)}.panel-notice{--panel-border-color:var(--panel-notice-border-color);--panel-progress-bg:var(--panel-notice-progress-bg);--panel-heading-color:var(--panel-notice-heading-color);--panel-heading-bg:var(--panel-notice-heading-bg)}.panel-dark{--panel-border-color:var(--panel-dark-border-color);--panel-progress-bg:var(--panel-dark-progress-bg);--panel-heading-color:var(--panel-dark-heading-color);--panel-heading-bg:var(--panel-dark-heading-bg)}.panel-active{--panel-border-color:var(--panel-primary-border-color);--panel-progress-bg:var(--panel-primary-progress-bg);--panel-heading-color:var(--panel-primary-heading-color);--panel-heading-bg:var(--panel-primary-heading-bg)}.panel-feature{--panel-border-color:var(--panel-success-border-color);--panel-progress-bg:var(--panel-success-progress-bg);--panel-heading-color:var(--panel-success-heading-color);--panel-heading-bg:var(--panel-success-heading-bg)}.panel-important{--panel-border-color:var(--panel-info-border-color);--panel-progress-bg:var(--panel-info-progress-bg);--panel-heading-color:var(--panel-info-heading-color);--panel-heading-bg:var(--panel-info-heading-bg)}.panel-deprecation{--panel-border-color:var(--panel-warning-border-color);--panel-progress-bg:var(--panel-warning-progress-bg);--panel-heading-color:var(--panel-warning-heading-color);--panel-heading-bg:var(--panel-warning-heading-bg)}.panel-breaking{--panel-border-color:var(--panel-danger-border-color);--panel-progress-bg:var(--panel-danger-progress-bg);--panel-heading-color:var(--panel-danger-heading-color);--panel-heading-bg:var(--panel-danger-heading-bg)}.panel-collapse>.alert,.panel>.alert{margin:0;border:none;border-top:var(--panel-border-width) solid var(--panel-border-color);--bs-alert-padding-x:var(--panel-header-padding-x)}.panel-collapse>.form-section,.panel-collapse>.tab-content>.form-section,.panel-collapse>.tab-content>.tab-pane>.form-section,.panel-collapse>[role=tabpanel]>.tab-content>.form-section,.panel-collapse>[role=tabpanel]>.tab-content>.tab-pane>.form-section,.panel>.form-section,.panel>.tab-content>.form-section,.panel>.tab-content>.tab-pane>.form-section,.panel>[role=tabpanel]>.tab-content>.form-section,.panel>[role=tabpanel]>.tab-content>.tab-pane>.form-section{border-left:0;border-right:0;border-bottom:0}.panel-collapse>.nav-tabs,.panel-collapse>[role=tabpanel]>.nav-tabs,.panel>.nav-tabs,.panel>[role=tabpanel]>.nav-tabs{border-top:1px solid #ccc;padding-top:8px}.panel-collapse>.nav-tabs>li,.panel-collapse>[role=tabpanel]>.nav-tabs>li,.panel>.nav-tabs>li,.panel>[role=tabpanel]>.nav-tabs>li{margin-left:-1px}.panel-collapse>.table,.panel-collapse>.table-fit,.panel-collapse>.table-responsive>.table,.panel-collapse>.table-responsive>.table-fit,.panel>.table,.panel>.table-fit,.panel>.table-responsive>.table,.panel>.table-responsive>.table-fit{margin-bottom:0;border-left:0;border-right:0;border-bottom:0}.panel label,.panel-collapse label{margin-bottom:0}.form-check .form-check-input{opacity:1}.form-check .form-check-spinner{float:left;margin-left:-1.5em;margin-top:.25em}.form-check.form-check-type-icon-toggle .form-check-input{opacity:0}.form-check .form-check-label{position:relative;display:inline-flex;align-items:baseline;padding:0;min-height:0;transition:all .3s ease-in-out}.form-check .form-check-label-icon,.form-check .form-check-label-switch{flex-shrink:0;transition:all .3s ease-in-out}.form-check:not(.disabled) .form-check-label-icon,.form-check:not(.disabled) .form-check-label-switch{cursor:pointer}.form-check input+.help-link{margin-left:.5rem;font-weight:400}.form-check .form-check-input:disabled+.form-check-label{opacity:.5}.form-switch .form-check-input{background-color:#f4f4f4;height:16px;cursor:pointer}.form-switch .form-check-input:checked{border-color:#bbb;background-color:#79a548}.form-switch .form-check-input:focus{border-color:#aaa;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,0,0,.35)}.form-switch .form-check-label{line-height:1.8em}.form-check-type-labeled-toggle{padding-left:0}.form-check-type-labeled-toggle .form-check-input{display:none}.form-check-type-labeled-toggle .form-check-label-switch{height:24px;background-color:#e74856;border-radius:2px;margin-right:.5rem;border:1px solid rgba(0,0,0,.3);color:#fff;display:inline-flex;flex-direction:column;line-height:22px;text-align:center}.form-check-type-labeled-toggle .form-check-label-switch-checked,.form-check-type-labeled-toggle .form-check-label-switch-unchecked{padding-left:8px;padding-right:8px;flex-grow:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.form-check-type-labeled-toggle .form-check-label-switch-checked{order:2;display:none}.form-check-type-labeled-toggle .form-check-label-switch-unchecked{order:1;display:block}.form-check-type-labeled-toggle .form-check-input:checked+.form-check-label .form-check-label-switch{background-color:#79a548}.form-check-type-labeled-toggle .form-check-input:checked+.form-check-label .form-check-label-switch .form-check-label-switch-checked{order:1;display:block}.form-check-type-labeled-toggle .form-check-input:checked+.form-check-label .form-check-label-switch .form-check-label-switch-unchecked{order:2;display:none}.form-check-type-labeled-toggle .form-check-input:focus+.form-check-label .form-check-label-switch{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,0,0,.35);border:1px solid rgba(0,0,0,.45)}.form-check-type-icon-toggle{padding-left:0}.input-group .form-check-type-icon-toggle .form-label,.input-group .form-check-type-icon-toggle label,.input-group .form-check-type-icon-toggle.form-check{margin-bottom:0}.form-check-type-icon-toggle .form-check-label-icon{border-radius:2px;height:24px;width:24px;padding-top:2px;padding-bottom:2px;text-align:center;background-color:#dadada;color:#333;border:1px solid rgba(0,0,0,.3)}.input-group .form-check-type-icon-toggle .form-check-label-icon{width:revert;height:revert;padding:6px}.form-check-type-icon-toggle:not(.disabled) .form-check-label-icon{cursor:pointer}.form-check-type-icon-toggle .form-check-label-text{padding-left:.5rem}.form-check-type-icon-toggle .form-check-label-icon-checked{display:none}.form-check-type-icon-toggle .form-check-label-icon-unchecked{display:inline-block}.form-check-type-icon-toggle .form-check-input:checked+.form-check-label .form-check-label-icon{background-color:#79a548;color:#fff}.form-check-type-icon-toggle .form-check-input:checked+.form-check-label .form-check-label-icon-checked{display:inline-block}.form-check-type-icon-toggle .form-check-input:checked+.form-check-label .form-check-label-icon-unchecked{display:none}.form-check-type-icon-toggle .form-check-input:focus+.form-check-label .form-check-label-icon{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,0,0,.35);border:1px solid rgba(0,0,0,.45)}.simpletable{padding:0;margin-bottom:1.5em}.simpletable td,.simpletable th{padding:.25em 1em}.simpletable td:first-child,.simpletable th:first-child{padding-left:0}.simpletable td:last-child,.simpletable th:last-child{padding-right:0}.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chosen-container *{box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15);clip:rect(0,0,0,0)}.chosen-container.chosen-with-drop .chosen-drop{clip:auto}.chosen-container a{cursor:pointer}.chosen-container .chosen-single .group-name,.chosen-container .search-choice .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#999}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:2px;background-color:#fff;background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;font-size:1px}.chosen-container-single .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;font-size:1em;font-family:sans-serif;line-height:normal}.chosen-container-single .chosen-drop{margin-top:-1px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;clip:rect(0,0,0,0)}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#e8a33d;color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto;border:1px solid #aaa;background-color:#fff;cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;height:25px;outline:0;border:0!important;background:0 0!important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;width:25px}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:4px 20px 4px 5px;max-width:100%;background-color:#e8a33d;background-clip:padding-box;color:#fff;line-height:16px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:3px;right:0;display:block;width:16px;height:16px}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{text-decoration:none}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:after{content:"";vertical-align:middle;-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M11.9 5.5 9.4 8l2.5 2.5c.2.2.2.5 0 .7l-.7.7c-.2.2-.5.2-.7 0L8 9.4l-2.5 2.5c-.2.2-.5.2-.7 0l-.7-.7c-.2-.2-.2-.5 0-.7L6.6 8 4.1 5.5c-.2-.2-.2-.5 0-.7l.7-.7c.2-.2.5-.2.7 0L8 6.6l2.5-2.5c.2-.2.5-.2.7 0l.7.7c.2.2.2.5 0 .7z'/%3e%3c/g%3e%3c/svg%3e");mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M11.9 5.5 9.4 8l2.5 2.5c.2.2.2.5 0 .7l-.7.7c-.2.2-.5.2-.7 0L8 9.4l-2.5 2.5c-.2.2-.5.2-.7 0l-.7-.7c-.2-.2-.2-.5 0-.7L6.6 8 4.1 5.5c-.2-.2-.2-.5 0-.7l.7-.7c.2-.2.5-.2.7 0L8 6.6l2.5-2.5c.2-.2.5-.2.7 0l.7.7c.2.2.2.5 0 .7z'/%3e%3c/g%3e%3c/svg%3e");background-color:#fff;background-size:contain;display:inline-block;width:16px;height:16px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.input-group .chosen-container{display:flex;flex:1 1 auto;width:auto!important}.input-group .chosen-container .chosen-choices{border:1px solid #bbb;border-radius:.125rem}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:0 0}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}.cropper-container{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.cropper-container img{display:block;image-orientation:0deg!important;height:100%;width:100%;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal{position:absolute;top:0;right:0;bottom:0;left:0}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;width:100%;overflow:hidden;outline:1px solid #69f;outline-color:rgba(102,153,255,.75)}.cropper-dashed{position:absolute;display:block;border:0 dashed #fff;opacity:.5}.cropper-dashed.dashed-h{top:33.3333333333%;left:0;width:100%;height:33.3333333333%;border-top-width:1px;border-bottom-width:1px}.cropper-dashed.dashed-v{top:0;left:33.3333333333%;width:33.3333333333%;height:100%;border-right-width:1px;border-left-width:1px}.cropper-face,.cropper-line,.cropper-point{position:absolute;display:block;opacity:.1;height:100%;width:100%}.cropper-face{top:0;left:0;cursor:move;background-color:#fff}.cropper-line{background-color:#69f}.cropper-line.line-e{top:0;right:-3px;width:5px;cursor:e-resize}.cropper-line.line-n{top:-3px;left:0;height:5px;cursor:n-resize}.cropper-line.line-w{top:0;left:-3px;width:5px;cursor:w-resize}.cropper-line.line-s{bottom:-3px;left:0;height:5px;cursor:s-resize}.cropper-point{height:5px;width:5px;background-color:#69f;opacity:.75}.cropper-point.point-e{top:50%;right:-3px;margin-top:-3px;cursor:e-resize}.cropper-point.point-n{top:-3px;left:50%;margin-left:-3px;cursor:n-resize}.cropper-point.point-w{top:50%;left:-3px;margin-top:-3px;cursor:w-resize}.cropper-point.point-s{bottom:-3px;left:50%;margin-left:-3px;cursor:s-resize}.cropper-point.point-ne{top:-3px;right:-3px;cursor:ne-resize}.cropper-point.point-nw{top:-3px;left:-3px;cursor:nw-resize}.cropper-point.point-sw{bottom:-3px;left:-3px;cursor:sw-resize}.cropper-point.point-se{right:-3px;bottom:-3px;height:20px;width:20px;cursor:se-resize;opacity:1}.cropper-point.point-se:before{position:absolute;right:-50%;bottom:-50%;display:block;height:200%;width:200%;content:" ";background-color:#69f;opacity:0}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;width:5px;opacity:.75}}.cropper-invisible{opacity:0}.cropper-hide{position:fixed;top:0;left:0;z-index:-1;width:auto!important;height:auto!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;opacity:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;touch-action:none}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.sortable-ghost{opacity:.4!important}th[role=columnheader]:not([data-sort-method=none]){cursor:pointer;position:relative;background-clip:padding-box}th[role=columnheader]:not([data-sort-method=none]):after{content:"";position:absolute;margin:7px 0 0 3px;border-width:4px 4px 0;border-style:solid;border-color:#404040 transparent;visibility:hidden;opacity:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}th[role=columnheader]:not([data-sort-method=none]):hover:after{visibility:visible;opacity:1}th[aria-sort=descending]:not([data-sort-method=none]):after{border-width:0 4px 4px}th[aria-sort]:not([data-sort-method=none]):after{visibility:visible;opacity:.4}#nprogress{pointer-events:none}#nprogress .bar{background:#ff8700;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;padding:0;box-shadow:0 0 10px #ff8700,0 0 5px #ff8700;opacity:1;transform:rotate(3deg) translate(0,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#ff8700;border-left-color:#ff8700;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.minicolors{position:relative}.userTS .minicolors{position:absolute}.userTS .minicolors-panel{margin-top:31px}.userTS .minicolors-swatch{z-index:100000}.minicolors-sprite{background-image:url(../Images/colorpicker/jquery.minicolors.png)}.minicolors-swatch{position:absolute;vertical-align:middle;background-position:-80px 0;cursor:text;padding:0;margin:0;display:inline-block;top:50%;left:6px;z-index:2;transform:translate(0,-50%);width:20px;height:20px;border-radius:1px}.minicolors-swatch-color{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:inherit}.minicolors-input{float:none;padding-left:32px}.minicolors-panel{margin-top:1px;overflow:hidden;border-radius:.125rem;position:absolute;width:173px;height:152px;background:#fff;border:solid 1px #bbb;box-shadow:0 0 20px rgba(0,0,0,.2);z-index:99999;box-sizing:content-box;display:none}.minicolors-panel.minicolors-with-swatches{height:182px}.minicolors-panel.minicolors-visible{display:block}.minicolors-position-top .minicolors-panel{top:-154px}.minicolors-position-right .minicolors-panel{right:0}.minicolors-position-bottom .minicolors-panel{top:auto}.minicolors-position-left .minicolors-panel{left:0}.minicolors-with-opacity .minicolors-panel{width:194px}.minicolors .minicolors-grid{position:absolute;top:1px;left:1px;width:150px;height:150px;background-position:-120px 0;cursor:crosshair}.minicolors .minicolors-grid-inner{position:absolute;top:0;left:0;width:150px;height:150px}.minicolors-slider-saturation .minicolors-grid{background-position:-420px 0}.minicolors-slider-saturation .minicolors-grid-inner{background-position:-270px 0;background-image:inherit}.minicolors-slider-brightness .minicolors-grid{background-position:-570px 0}.minicolors-slider-brightness .minicolors-grid-inner{background-color:#000}.minicolors-slider-wheel .minicolors-grid{background-position:-720px 0}.minicolors-opacity-slider,.minicolors-slider{position:absolute;top:1px;left:152px;width:20px;height:150px;background-color:#fff;background-position:0 0;cursor:row-resize}.minicolors-slider-saturation .minicolors-slider{background-position:-60px 0}.minicolors-slider-brightness .minicolors-slider{background-position:-20px 0}.minicolors-slider-wheel .minicolors-slider{background-position:-20px 0}.minicolors-opacity-slider{left:173px;background-position:-40px 0;display:none}.minicolors-with-opacity .minicolors-opacity-slider{display:block}.minicolors-grid .minicolors-picker{position:absolute;top:70px;left:70px;width:12px;height:12px;border:solid 1px #000;border-radius:10px;margin-top:-6px;margin-left:-6px;background:0 0}.minicolors-grid .minicolors-picker>div{position:absolute;top:0;left:0;width:8px;height:8px;border-radius:8px;border:solid 2px #fff;box-sizing:content-box}.minicolors-picker{position:absolute;top:0;left:0;width:18px;height:2px;background:#fff;border:solid 1px #000;margin-top:-2px;box-sizing:content-box}.minicolors-swatches,.minicolors-swatches li{margin:0;padding:0;list-style:none;overflow:hidden;position:absolute;top:157px;left:5px}.minicolors-swatches .minicolors-swatch{position:relative;float:left;cursor:pointer;margin:0 4px 0 0;top:0;left:0;width:20px;height:20px}.minicolors-with-opacity .minicolors-swatches .minicolors-swatch{margin-right:7px}.minicolors-swatch.selected{border-color:#000}:root{--flatpickr-bar-size:40px;--flatpickr-grid-size:32px;--flatpickr-grid-spacing:2px;--flatpickr-width:calc((var(--flatpickr-grid-size) * 7) + (var(--flatpickr-grid-spacing) * 10) + 2px)}.flatpickr-calendar{opacity:0;display:none;text-align:center;visibility:hidden;padding:0;animation:none;direction:ltr;color:var(--typo3-component-color);border:var(--typo3-component-border-width) solid var(--typo3-component-border-color);border-radius:var(--typo3-component-border-radius);font-size:var(--typo3-component-font-size);position:absolute;width:var(--flatpickr-width);touch-action:manipulation;background:var(--typo3-component-bg);box-shadow:var(--typo3-component-box-shadow)}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar:after,.flatpickr-calendar:before{position:absolute;display:block;pointer-events:none;border:6px solid transparent;content:"";height:0;width:0;left:22px}.flatpickr-calendar.inline,.flatpickr-calendar.open{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:200}.flatpickr-calendar.open.animate{animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:199;display:block}.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:var(--typo3-component-bg)}.flatpickr-calendar.arrowTop:after{border-bottom-color:var(--typo3-component-bg)}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:var(--typo3-component-bg)}.flatpickr-calendar.arrowBottom:after{border-top-color:var(--typo3-component-bg)}.flatpickr-calendar.hasTime .flatpickr-innerContainer{border-bottom:var(--typo3-component-border-width) solid var(--typo3-component-border-color);margin-bottom:1px}.flatpickr-calendar .flatpickr-am-pm:hover,.flatpickr-calendar .flatpickr-next-month:hover,.flatpickr-calendar .flatpickr-prev-month:hover,.flatpickr-calendar input:hover,.flatpickr-calendar select:hover{color:var(--typo3-component-hover-color);background:var(--typo3-component-hover-bg);outline:1px solid var(--typo3-component-hover-border-color);outline-offset:-1px}.flatpickr-calendar .flatpickr-am-pm:focus,.flatpickr-calendar .flatpickr-next-month:focus,.flatpickr-calendar .flatpickr-prev-month:focus,.flatpickr-calendar input:focus,.flatpickr-calendar select:focus{color:var(--typo3-component-focus-color);background:var(--typo3-component-focus-bg);outline:1px solid var(--typo3-component-focus-border-color);outline-offset:-1px}.flatpickr-calendar .flatpickr-am-pm[disabled],.flatpickr-calendar .flatpickr-next-month[disabled],.flatpickr-calendar .flatpickr-prev-month[disabled],.flatpickr-calendar input[disabled],.flatpickr-calendar select[disabled]{color:var(--typo3-component-disabled-color);background:var(--typo3-component-disabled-bg);outline:1px solid var(--typo3-component-disabled-border-color);outline-offset:-1px;pointer-events:none}.flatpickr-calendar .flatpickr-am-pm::-ms-clear,.flatpickr-calendar .flatpickr-next-month::-ms-clear,.flatpickr-calendar .flatpickr-prev-month::-ms-clear,.flatpickr-calendar input::-ms-clear,.flatpickr-calendar select::-ms-clear{display:none}.flatpickr-calendar .flatpickr-am-pm::-webkit-inner-spin-button,.flatpickr-calendar .flatpickr-am-pm::-webkit-outer-spin-button,.flatpickr-calendar .flatpickr-next-month::-webkit-inner-spin-button,.flatpickr-calendar .flatpickr-next-month::-webkit-outer-spin-button,.flatpickr-calendar .flatpickr-prev-month::-webkit-inner-spin-button,.flatpickr-calendar .flatpickr-prev-month::-webkit-outer-spin-button,.flatpickr-calendar input::-webkit-inner-spin-button,.flatpickr-calendar input::-webkit-outer-spin-button,.flatpickr-calendar select::-webkit-inner-spin-button,.flatpickr-calendar select::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;appearance:none}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:flex;padding:1px;border-bottom:1px solid var(--typo3-component-border-color)}.flatpickr-month{position:relative;color:var(--typo3-component-color);fill:var(--typo3-component-color);height:var(--flatpickr-bar-size);line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-grow:1;overflow:hidden;align-items:center;justify-content:center}.flatpickr-next-month,.flatpickr-prev-month{display:flex;justify-content:center;align-items:center;text-decoration:none;cursor:pointer;height:var(--flatpickr-bar-size);width:var(--flatpickr-bar-size);z-index:3;color:inherit;fill:currentColor;-webkit-user-select:none;-moz-user-select:none;user-select:none}.flatpickr-next-month svg,.flatpickr-prev-month svg{display:block;width:14px;height:14px}.flatpickr-next-month svg path,.flatpickr-prev-month svg path{transition:fill .1s}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%;padding:0 .5em}.numInputWrapper span{color:inherit;position:absolute;right:2px;width:12px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer}.numInputWrapper span svg path{color:currentColor}.numInputWrapper span:active,.numInputWrapper span:hover{color:var(--typo3-component-hover-color);background:var(--typo3-component-hover-bg)}.numInputWrapper span:focus{color:var(--typo3-component-focus-color);background:var(--typo3-component-focus-bg)}.numInputWrapper span:after{display:block;content:"";position:absolute;top:calc(50% - 2px)}.numInputWrapper span.arrowUp{top:2px}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid currentColor}.numInputWrapper span.arrowDown{bottom:2px}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid currentColor}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{display:flex;gap:1em;font-weight:300;color:inherit;padding:0;line-height:1;justify-content:center;height:var(--flatpickr-bar-size)}.flatpickr-current-month .numInputWrapper{width:5em}.flatpickr-current-month .cur-year{background:0 0;color:var(--typo3-component-color);border:1px solid transparent;border-radius:0;display:block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:100%}.flatpickr-current-month .flatpickr-monthDropdown-months{-webkit-appearance:menulist;-moz-appearance:menulist;appearance:menulist;background:0 0;border:none;border-radius:0;color:var(--typo3-component-color);cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:100%;line-height:inherit;position:relative;vertical-align:initial;width:auto;padding:0 .5em}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:var(--typo3-component-bg);padding:0}.flatpickr-weekdays{height:var(--flatpickr-grid-size)}.flatpickr-weekdaycontainer{display:flex;flex-wrap:wrap;width:var(--flatpickr-width);gap:var(--flatpickr-grid-spacing);padding:0 calc(var(--flatpickr-grid-spacing) * 2)}.flatpickr-weekday{cursor:default;display:block;font-size:90%;background:0 0;color:var(--typo3-component-color);text-align:center;height:var(--flatpickr-grid-size);width:var(--flatpickr-grid-size);line-height:var(--flatpickr-grid-size);font-weight:bolder}.flatpickr-weekwrapper{box-shadow:1px 0 0 var(--typo3-component-border-color)}.flatpickr-weeks{display:flex;flex-wrap:wrap;gap:var(--flatpickr-grid-spacing);padding:calc(var(--flatpickr-grid-spacing) * 2) 0}.flatpickr-weeks .flatpickr-day{--flatpickr-day-bg:transparent!important;--flatpickr-day-color:var(--typo3-component-disabled-color)!important;--flatpickr-day-border-color:transparent!important;cursor:default!important}.flatpickr-days{position:relative;overflow:hidden;display:flex;align-items:flex-start;width:var(--flatpickr-width)}.dayContainer{display:flex;flex-wrap:wrap;width:var(--flatpickr-width);gap:var(--flatpickr-grid-spacing);padding:calc(var(--flatpickr-grid-spacing) * 2);transform:translate3d(0,0,0);opacity:1}.dayContainer+.dayContainer{box-shadow:-1px 0 0 var(--typo3-component-border-color)}.flatpickr-day{display:block;position:relative;text-align:center;border:1px solid var(--flatpickr-day-border-color,transparent);border-radius:var(--typo3-component-border-radius);color:var(--flatpickr-day-color,inherit);background:var(--flatpickr-day-bg,transparent);font-weight:400;width:var(--flatpickr-grid-size);height:var(--flatpickr-grid-size);line-height:var(--flatpickr-grid-size)}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:hover{cursor:pointer;--flatpickr-day-color:var(--typo3-component-hover-color);--flatpickr-day-bg:var(--typo3-component-hover-bg);--flatpickr-day-border-color:var(--typo3-component-hover-border-color)}.flatpickr-day.nextMonthDay:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day:focus{cursor:pointer;--flatpickr-day-color:var(--typo3-component-focus-color);--flatpickr-day-bg:var(--typo3-component-focus-bg);--flatpickr-day-border-color:var(--typo3-component-focus-border-color)}.flatpickr-day.today{--flatpickr-day-color:var(--typo3-component-active-color);--flatpickr-day-bg:var(--typo3-component-active-bg);--flatpickr-day-border-color:var(--typo3-component-active-border-color)}.flatpickr-day.today:hover{--flatpickr-day-color:var(--typo3-component-hover-color);--flatpickr-day-bg:var(--typo3-component-hover-bg)}.flatpickr-day.today:focus{--flatpickr-day-color:var(--typo3-component-focus-color);--flatpickr-day-bg:var(--typo3-component-focus-bg)}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{--flatpickr-day-color:var(--typo3-component-active-color);--flatpickr-day-bg:var(--typo3-component-active-bg);--flatpickr-day-border-color:var(--typo3-component-active-border-color)}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:var(--typo3-component-border-radius) 0 0 var(--typo3-component-border-radius)}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 var(--typo3-component-border-radius) var(--typo3-component-border-radius) 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 0 var(--typo3-component-active-bg)}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:var(--typo3-component-border-radius)}.flatpickr-day.inRange{border-radius:0}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{--flatpickr-day-color:var(--typo3-component-disabled-color);--flatpickr-day-bg:var(--typo3-component-disabled-bg);--flatpickr-day-border-color:var(--typo3-component-disabled-border-color);cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{--flatpickr-day-color:var(--typo3-component-disabled-color);--flatpickr-day-bg:var(--typo3-component-disabled-bg);--flatpickr-day-border-color:var(--typo3-component-disabled-border-color);cursor:not-allowed}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 0 var(--typo3-component-active-bg),5px 0 0 var(--typo3-component-active-bg)}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-innerContainer{display:flex}.flatpickr-time{display:flex;gap:1px;text-align:center;padding:1px}.flatpickr-time .numInputWrapper{flex:1;width:40%;height:var(--flatpickr-bar-size)}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:0 0;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:var(--typo3-component-color);font-size:var(--typo3-component-font-size);position:relative;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{height:var(--flatpickr-bar-size);line-height:var(--flatpickr-bar-size);color:var(--typo3-component-color);font-weight:700;width:2%;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-self:center}.flatpickr-time .flatpickr-am-pm{width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-input[readonly]{cursor:pointer}@keyframes fpFadeInDown{from{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translate3d(0,0,0)}}:root{--svgtree-drag-info-bg:#fff;--svgtree-drag-info-color:#000;--svgtree-drag-info-icon-size:16px;--svgtree-drag-info-border-radius:2px;--svgtree-drag-info-padding-y:.5rem;--svgtree-drag-info-padding-x:.75rem;--svgtree-drag-dropindicator-color:#3393eb;--svgtree-structure-line-color:#ddd;--svgtree-node-color:#000;--svgtree-node-bg:transparent;--svgtree-node-border-color:transparent;--svgtree-node-version-bg:rgba(247, 200, 152, 0.5);--svgtree-node-version-border-color:#c6a07a;--svgtree-node-focus-bg:rgba(230, 242, 253, 0.5);--svgtree-node-focus-border-color:#3393eb;--svgtree-node-hover-bg:rgba(250, 250, 250, 0.5);--svgtree-node-hover-border-color:#d7d7d7;--svgtree-node-selected-bg:rgba(255, 255, 255, 0.5);--svgtree-node-selected-border-color:#d7d7d7;--svgtree-highlight-color:#0078e6;--svgtree-info-bg:#c5ddf3;--svgtree-info-color:#000}.svg-tree{position:relative}.svg-tree-loader{display:none;position:absolute;width:100%;height:calc(100% - var(--module-docheader-height));top:var(--module-docheader-height);left:0;text-align:center;background:rgba(0,0,0,.3);z-index:3000;-webkit-user-select:none;-moz-user-select:none;user-select:none}.element-browser .svg-tree-loader{height:calc(100% - 39px);top:39px}.svg-tree-loader>*{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}.node-loader{display:none;position:absolute;width:100%;height:20px;top:0;left:0;text-align:center;background:rgba(0,0,0,.3);z-index:3000}.node-loader>*{position:absolute;top:0;bottom:0;right:10px;margin:auto}.node-toggle-icon{transform-origin:50% 50%}.node-toggle--expanded .node-toggle-icon{transform:rotate(90deg)}.svg-tree-element{display:flex;flex-direction:column;border:1px solid rgba(0,0,0,.25)}.svg-tree-element>.svg-tree-wrapper{flex:1 0 0}.svg-tree-element typo3-backend-form-selecttree-toolbar{display:block;background-color:#fafafa;position:sticky;top:0;padding:.5em;border-bottom:1px solid rgba(0,0,0,.25)}.svg-tree-wrapper{display:block;position:relative;overflow-y:scroll}.svg-tree-wrapper>svg{margin-top:15px}.svg-tree-wrapper path.link{fill:none;shape-rendering:crispEdges;stroke:var(--svgtree-structure-line-color);stroke-width:1;pointer-events:none}.svg-tree-wrapper .node-bg{fill:var(--svgtree-node-bg);stroke:var(--svgtree-node-border-color);stroke-width:1px}.svg-tree-wrapper .node-bg__border{display:none;pointer-events:none;fill:var(--svgtree-drag-dropindicator-color);stroke:var(--svgtree-drag-dropindicator-color);stroke-width:1;shape-rendering:crispedges}.svg-tree-wrapper .node-bg.ver-element,.svg-tree-wrapper .node-bg.ver-page,.svg-tree-wrapper .node-bg.ver-versions{--svgtree-node-bg:var(--svgtree-node-version-bg);--svgtree-node-border-color:var(--svgtree-node-version-border-color)}.svg-tree-wrapper .node:focus{outline:0}.svg-tree-wrapper .node-over{--svgtree-node-bg:var(--svgtree-node-hover-bg);--svgtree-node-border-color:var(--svgtree-node-hover-border-color)}.svg-tree-wrapper .node-selected{--svgtree-node-bg:var(--svgtree-node-selected-bg);--svgtree-node-border-color:var(--svgtree-node-selected-border-color)}.svg-tree-wrapper .node-focused{--svgtree-node-bg:var(--svgtree-node-focus-bg)!important;--svgtree-node-border-color:var(--svgtree-node-focus-border-color)!important}.svg-tree-wrapper .nodes-wrapper{cursor:pointer}.svg-tree-wrapper .nodes-wrapper--dragging{cursor:grabbing}.svg-tree-wrapper .nodes-wrapper--nodrop{cursor:no-drop}.node-dd{position:fixed;display:none;padding:0;margin:0;border:0;color:var(--svgtree-drag-info-color);background-color:var(--svgtree-drag-info-bg);border-radius:var(--svgtree-drag-info-border-radius);box-shadow:0 2px 2px 2px rgba(0,0,0,.25);z-index:9999}.node-dd__ctrl-icon{position:absolute;top:var(--svgtree-drag-info-padding-y);left:var(--svgtree-drag-info-padding-x);display:block;width:var(--svgtree-drag-info-icon-size);height:var(--svgtree-drag-info-icon-size);background-color:transparent;background-position:center;background-repeat:no-repeat;z-index:1}.node-dd__text{display:flex;padding:var(--svgtree-drag-info-padding-y) var(--svgtree-drag-info-padding-x);gap:.25rem}.node-dd--nodrop .node-dd__ctrl-icon{background-image:url(../Images/pagetree-drag-place-denied.png)}.node-dd--ok-below.node-dd--copy .node-dd__ctrl-icon{background-image:url(../Images/pagetree-drag-copy-below.png)}.node-dd--ok-below .node-dd__ctrl-icon{background-image:url(../Images/pagetree-drag-move-below.png)}.node-dd--ok-between.node-dd--copy .node-dd__ctrl-icon{background-image:url(../Images/pagetree-drag-new-between.png)}.node-dd--ok-between .node-dd__ctrl-icon{background-image:url(../Images/pagetree-drag-move-between.png)}.node-dd--ok-append.node-dd--copy .node-dd__ctrl-icon{background-image:url(../Images/pagetree-drag-new-inside.png)}.node-dd--ok-append .node-dd__ctrl-icon{background-image:url(../Images/pagetree-drag-move-into.png)}.node-dd--ok-above.node-dd--copy .node-dd__ctrl-icon{background-image:url(../Images/pagetree-drag-copy-above.png)}.node-dd--ok-above .node-dd__ctrl-icon{background-image:url(../Images/pagetree-drag-move-above.png)}.nodes-drop-zone[data-open=false]:not(.animating){display:none}.nodes-drop-zone rect{fill:#c83c3c;cursor:grabbing}.nodes-drop-zone text{fill:#fff;pointer-events:none}.node-name{fill:var(--svgtree-node-color)}.node-name .node-highlight-text{fill:var(--svgtree-highlight-color);font-weight:700}.node-edit{position:absolute;top:0;left:0;padding:.25rem;border:1px solid #3393eb;outline:0}.scaffold-content .svg-toolbar{min-height:var(--module-docheader-height)}.svg-toolbar{padding:4px 10px 0;border-bottom:1px solid var(--module-docheader-border);background-color:var(--module-docheader-bg)}.svg-toolbar .btn-toolbar{padding:0 .25rem}.svg-toolbar__menu{margin:.125rem 0 .375rem;padding-right:32px;display:flex}.svg-toolbar__menu .svg-toolbar__search{flex:1 0 auto;margin:0 .5rem 0 .25rem}.svg-toolbar__menuitem{display:inline-block;padding:.25rem;border:none;background:0 0;font-size:11px}.svg-toolbar__drag-node{cursor:move}.svg-toolbar__submenu{margin:.125rem 0 0}.node-mount-point{display:flex;border:0;background-color:var(--svgtree-info-bg);border-bottom:1px solid rgba(0,0,0,.25);color:var(--svgtree-info-color);padding:.75em 1.167em;gap:.5em;align-items:center}.node-mount-point__icon{flex:0 auto}.node-mount-point__icon.mountpoint-close{cursor:pointer}.node-mount-point__text{flex:1 0 0;padding:0 .5em;overflow:hidden}.node-action{opacity:0;cursor:pointer}.node-action rect{opacity:0}.node-action.node-action-over{opacity:1}.node-action.node-action-over rect{opacity:1}.element-browser{display:flex;flex-flow:nowrap column;width:100%}.element-browser .h3,.element-browser h3{font-size:1.2em}.element-browser-body{overflow:unset;padding:.75rem}.element-browser-body>:first-child{margin-top:0}.element-browser-body>:last-child{margin-bottom:0}.element-browser-title{padding:.75rem;color:#fff;background-color:#292929;position:sticky;top:0;z-index:3}.element-browser-title a{color:inherit;text-decoration:underline}.element-browser-tabs{position:sticky;top:0;z-index:3}.element-browser-tabs .nav-tabs{padding:.75rem;padding-bottom:0}.link-browser-has-title .element-browser-tabs{top:42px}.element-browser-attributes{padding:.75rem;background-color:#fafafa;border-bottom:1px solid #ddd}@media (min-width:600px){.element-browser-main{display:flex;flex-wrap:nowrap;flex:1 auto}}.element-browser-main-sidebar{background-color:#f2f2f2;position:sticky;top:0;height:100vh}.link-browser .element-browser-main-sidebar{top:44px;height:calc(100vh - 44px)}.link-browser.link-browser-has-title .element-browser-main-sidebar{top:86px;height:calc(100vh - 86px)}@media (min-width:600px){.element-browser-main-sidebar{flex-shrink:0;width:260px;border-right:1px solid #ddd}}@media (min-width:720px){.element-browser-main-sidebar{width:280px}}@media (min-width:840px){.element-browser-main-sidebar{width:300px}}@media (min-width:960px){.element-browser-main-sidebar{width:320px}}.element-browser-main-sidebar .list-tree li:last-child:before{background-color:#f2f2f2}.scaffold-content-navigation-available .element-browser-main-sidebar{display:none}.scaffold-content-navigation-available.scaffold-content-navigation-expanded .element-browser-main-sidebar{display:flex}.link-browser .scaffold-content-navigation-available .scaffold-content-navigation-drag,.link-browser .scaffold-content-navigation-available .scaffold-content-navigation-switcher{position:sticky;top:44px}.link-browser .scaffold-content-navigation-available .scaffold-content-navigation-drag{height:calc(100vh - 44px)}.link-browser.link-browser-has-title .scaffold-content-navigation-available .scaffold-content-navigation-drag,.link-browser.link-browser-has-title .scaffold-content-navigation-available .scaffold-content-navigation-switcher{position:sticky;top:86px}.link-browser.link-browser-has-title .scaffold-content-navigation-available .scaffold-content-navigation-drag{height:calc(100vh - 86px)}@media (min-width:600px){.element-browser-main-content{overflow:auto;flex:1 auto}}.table .table{margin:0}.table .table+.table{margin-top:6px}.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>th{white-space:nowrap;vertical-align:middle}.table>tbody>tr>td,.table>tfoot>tr>td,.table>thead>tr>td{vertical-align:middle}.table>thead>tr th.col-checkbox+th.col-title label{margin-bottom:0}.table>thead>tr td i,.table>thead>tr th i{font-weight:400}.table>tbody>tr{border-color:#ccc}.table .pagination{margin:0}.table .col-icon{text-align:center}.table .col-checkbox,.table .col-icon{padding-right:0}.table .col-title{width:99%}.table .col-clipboard,.table .col-control,.table .col-nowrap{white-space:nowrap!important}.table .col-clipboard,.table .col-control{text-align:right}.table .col-control{padding:4px 6px}.table .col-border-left{border-left:1px solid var(--bs-table-border-color)}.table .col-min{min-width:150px}.table .col-responsive{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width:768px){.table .col-word-break{word-wrap:break-word;word-break:break-all}}.table-transparent{--bs-table-bg:transparent}.table-vertical-top td,.table-vertical-top th{vertical-align:top}.table-center td,.table-center th{text-align:center}.table-fit{width:100%;margin-bottom:1.5em;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ccc}.table-fit>.table{margin-top:0;margin-bottom:0}.table-fit>.table colgroup:first-child+tbody tr:first-child td,.table-fit>.table colgroup:first-child+tbody tr:first-child th,.table-fit>.table tbody:first-child tr:first-child td,.table-fit>.table tbody:first-child tr:first-child th{border-top:0}.table-fit>.table tr>td,.table-fit>.table tr>th{white-space:nowrap}@media (min-width:768px){.table-fit>.table tr>td.col-word-break,.table-fit>.table tr>th.col-word-break{white-space:normal}}.table-fit>.table tr>td:first-child,.table-fit>.table tr>th:first-child{border-left:0}.table-fit>.table tr>td:last-child,.table-fit>.table tr>th:last-child{border-right:0}.table-fit>.table tr:last-child td{border-bottom:0}.table-fit-wrap td,.table-fit-wrap th{white-space:normal}.table-fit-inline-block{max-width:100%;width:auto;display:inline-block;margin:0}.table-fit-inline-block>.table{width:auto}.media{display:grid;grid-template-columns:2rem auto;grid-gap:1rem}.media .media-body{grid-column:1/3}.media .media-left+.media-body{grid-column:2/3;align-self:center}.modal .close{background:0 0;border:none;color:inherit;padding:0;margin:0;text-shadow:rgba(0,0,0,.5) 0 0 3px;opacity:.5;-webkit-user-select:none;-moz-user-select:none;user-select:none}.modal .close:active,.modal .close:hover{box-shadow:none;outline:0;background:0 0;opacity:1}.modal-dialog{display:flex;flex-direction:column;align-items:stretch;justify-content:center;margin:0 auto!important;height:100vh;width:100vw}.modal-content{display:flex;flex-direction:column;margin:0 auto;max-height:calc(100vh - 40px);max-width:calc(100vw - 40px)}.modal-content .help-block{margin-bottom:0}.modal-body{overflow-y:auto}.modal-body>:first-child{margin-top:0}.modal-body>:last-child{margin-bottom:0}.modal-footer,.modal-header{padding:calc(var(--bs-modal-padding)/ 2) var(--bs-modal-padding)}.modal-footer .btn{margin-right:0;padding-left:1em;padding-right:1em;display:inline-flex;align-items:center}.modal-footer .btn typo3-backend-icon{margin-left:-2px;margin-right:4px}.modal-footer .progress{flex-basis:100%;margin-right:0;margin-left:0}.modal-footer .modal-btn-group{margin-right:0;margin-left:0}.modal-content{transition:margin-top .1s ease-in;border:none}.modal-content .modal-loading{height:100%;display:flex;flex:1 0 auto;justify-content:center;align-items:center}.modal-image-manipulation .modal-body{padding:0}@media (min-width:768px){.modal-image-manipulation .modal-body{flex-direction:row}}.modal-image-manipulation .modal-panel-main{overflow:visible;background-image:url(../Images/cropper-background.png);display:flex;align-items:center;justify-content:center;padding:20px;width:100%}@media (min-width:768px){.modal-image-manipulation .modal-panel-main{width:calc(100% - 250px)}}@media (min-width:992px){.modal-image-manipulation .modal-panel-main{width:calc(100% - 300px)}}.modal-image-manipulation .modal-panel-main img{max-width:100%;max-height:100%;height:auto}.modal-image-manipulation .modal-panel-sidebar{padding:15px;flex-shrink:0;border-left:1px solid rgba(0,0,0,.25);position:relative;overflow:auto;-webkit-overflow-scrolling:touch;width:100%}@media (min-width:768px){.modal-image-manipulation .modal-panel-sidebar{width:250px}}@media (min-width:992px){.modal-image-manipulation .modal-panel-sidebar{width:300px}}.modal-image-manipulation .panel-heading .is-active{pointer-events:none}.modal-image-manipulation .panel{margin-bottom:0}.modal-image-manipulation .panel-body{border-left:2px solid #ff8700}.modal-type-iframe{padding:0}.modal-type-iframe .modal-body{padding:0}.modal-iframe{display:block;border:0;height:100%;width:100%;position:absolute;top:0;left:0}.modal-size-small .modal-content{width:440px}.modal-size-default .modal-content{width:600px}.modal-size-medium .modal-content{width:800px;height:520px}.modal-size-large .modal-content{width:1000px;height:800px}.modal-size-full .modal-content{width:1800px;height:1200px}.modal-severity-primary .modal-header{background-color:#0078e6;color:#fff;border-bottom-color:#006ccf}.modal-severity-secondary .modal-header{background-color:#737373;color:#fff;border-bottom-color:#686868}.modal-severity-success .modal-header{background-color:#107c10;color:#fff;border-bottom-color:#0e700e}.modal-severity-info .modal-header{background-color:#6daae0;color:#000;border-bottom-color:#6299ca}.modal-severity-warning .modal-header{background-color:#e8a33d;color:#000;border-bottom-color:#d19337}.modal-severity-danger .modal-header{background-color:#c83c3c;color:#fff;border-bottom-color:#b43636}.modal-severity-light .modal-header{background-color:#f5f5f5;color:#000;border-bottom-color:#ddd}.modal-severity-default .modal-header{background-color:#f5f5f5;color:#000;border-bottom-color:#ddd}.modal-severity-notice .modal-header{background-color:#333;color:#fff;border-bottom-color:#2e2e2e}.modal-severity-dark .modal-header{background-color:#1e1e1e;color:#fff;border-bottom-color:#1b1b1b}.modal-style-dark{color:#fff}.modal-style-dark .modal-header{color:#fff;background-color:#484848;border-bottom-color:#000}.modal-style-dark .modal-content{overflow:hidden;background-color:#292929}.modal-style-dark .modal-body,.modal-style-dark .modal-footer{background-color:#292929;color:#fff}.modal-style-dark .modal-footer{border-top:1px solid #000}.t3js-modal-footer .form-inline{display:block;margin:1em 0;width:100%}.t3js-modal-footer label{margin-right:10px}.modal-multi-step-wizard .modal-body .carousel.slide{min-height:21em}.modal-multi-step-wizard .modal-body .carousel-inner{width:auto;margin:0 -5px;padding:0 5px}.modal-multi-step-wizard .modal-footer .btn+.btn{margin-left:.5em}.modal-multi-step-wizard .modal-footer .progress-bar.inactive{background:0 0;color:#000}:root{--note-primary-color:#000;--note-primary-bg:#d9ebfb;--note-primary-header-color:#000;--note-primary-header-bg:#99c9f5;--note-secondary-color:#000;--note-secondary-bg:#eaeaea;--note-secondary-header-color:#000;--note-secondary-header-bg:#c7c7c7;--note-success-color:#000;--note-success-bg:#dbebdb;--note-success-header-color:#000;--note-success-header-bg:#9fcb9f;--note-info-color:#000;--note-info-bg:#e9f2fa;--note-info-header-color:#000;--note-info-header-bg:#c5ddf3;--note-warning-color:#000;--note-warning-bg:#fcf1e2;--note-warning-header-color:#000;--note-warning-header-bg:#f6dab1;--note-danger-color:#000;--note-danger-bg:#f7e2e2;--note-danger-header-color:#000;--note-danger-header-bg:#e9b1b1;--note-light-color:#000;--note-light-bg:#fefefe;--note-light-header-color:#000;--note-light-header-bg:#fbfbfb;--note-default-color:#000;--note-default-bg:#fefefe;--note-default-header-color:#000;--note-default-header-bg:#fbfbfb;--note-notice-color:#000;--note-notice-bg:#e0e0e0;--note-notice-header-color:#000;--note-notice-header-bg:#adadad;--note-dark-color:#000;--note-dark-bg:#dddddd;--note-dark-header-color:#000;--note-dark-header-bg:#a5a5a5;--note-light-bg:rgb(245, 245, 245);--note-light-header-bg:#dddddd;--note-default-bg:rgb(238, 238, 238);--note-default-header-bg:#d6d6d6}.note-list{margin:1rem 0}.note{border-radius:var(--typo3-component-border-radius);margin-bottom:1rem;overflow:hidden;position:relative;z-index:1;color:var(--note-color);background-color:var(--note-bg);box-shadow:var(--typo3-component-box-shadow);--note-color:var(--note-default-color);--note-bg:var(--note-default-bg);--note-header-color:var(--note-default-header-color);--note-header-bg:var(--note-default-header-bg)}.note-header{color:var(--note-header-color);background-color:var(--note-header-bg);padding:.5rem 1rem}.note-header-bar{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.note-actions{margin-left:auto}.note-body{padding:1rem}.note-body>:first-child{margin-top:0}.note-body>:last-child{margin-bottom:0}.note-primary{--note-color:var(--note-primary-color);--note-bg:var(--note-primary-bg);--note-header-color:var(--note-primary-header-color);--note-header-bg:var(--note-primary-header-bg)}.note-secondary{--note-color:var(--note-secondary-color);--note-bg:var(--note-secondary-bg);--note-header-color:var(--note-secondary-header-color);--note-header-bg:var(--note-secondary-header-bg)}.note-success{--note-color:var(--note-success-color);--note-bg:var(--note-success-bg);--note-header-color:var(--note-success-header-color);--note-header-bg:var(--note-success-header-bg)}.note-info{--note-color:var(--note-info-color);--note-bg:var(--note-info-bg);--note-header-color:var(--note-info-header-color);--note-header-bg:var(--note-info-header-bg)}.note-warning{--note-color:var(--note-warning-color);--note-bg:var(--note-warning-bg);--note-header-color:var(--note-warning-header-color);--note-header-bg:var(--note-warning-header-bg)}.note-danger{--note-color:var(--note-danger-color);--note-bg:var(--note-danger-bg);--note-header-color:var(--note-danger-header-color);--note-header-bg:var(--note-danger-header-bg)}.note-light{--note-color:var(--note-light-color);--note-bg:var(--note-light-bg);--note-header-color:var(--note-light-header-color);--note-header-bg:var(--note-light-header-bg)}.note-default{--note-color:var(--note-default-color);--note-bg:var(--note-default-bg);--note-header-color:var(--note-default-header-color);--note-header-bg:var(--note-default-header-bg)}.note-notice{--note-color:var(--note-notice-color);--note-bg:var(--note-notice-bg);--note-header-color:var(--note-notice-header-color);--note-header-bg:var(--note-notice-header-bg)}.note-dark{--note-color:var(--note-dark-color);--note-bg:var(--note-dark-bg);--note-header-color:var(--note-dark-header-color);--note-header-bg:var(--note-dark-header-bg)}.note-category-1{--note-color:var(--note-info-color);--note-bg:var(--note-info-bg);--note-header-color:var(--note-info-header-color);--note-header-bg:var(--note-info-header-bg)}.note-category-2{--note-color:var(--note-warning-color);--note-bg:var(--note-warning-bg);--note-header-color:var(--note-warning-header-color);--note-header-bg:var(--note-warning-header-bg)}.note-category-3{--note-color:var(--note-notice-color);--note-bg:var(--note-notice-bg);--note-header-color:var(--note-notice-header-color);--note-header-bg:var(--note-notice-header-bg)}.note-category-4{--note-color:var(--note-success-color);--note-bg:var(--note-success-bg);--note-header-color:var(--note-success-header-color);--note-header-bg:var(--note-success-header-bg)}.card{overflow:hidden;box-shadow:0 1px 1px rgba(0,0,0,.2);border-color:#ccc;margin-bottom:20px;transition:all .2s ease-in-out;transition-property:box-shadow,border,transform}a.card:hover{text-decoration:none;border:1px solid #b3b3b3;transform:translate(0,-1px);box-shadow:0 2px 1px rgba(0,0,0,.3)}.card-container{display:flex;flex-wrap:wrap;margin:10px -10px}.card-container .card{margin-left:10px;margin-right:10px}.card-size-large,.card-size-medium,.card-size-small{width:calc(100% - 20px)}@media (min-width:768px){.card-size-small{width:calc(50% - 20px)}}@media (min-width:992px){.card-size-small{width:calc(25% - 20px)}}@media (min-width:768px){.card-size-medium{width:calc(50% - 20px)}}.card-size-fixed-small{width:calc(100% - 20px)}@media (min-width:624px){.card-size-fixed-small{width:calc(50% - 20px)}}@media (min-width:768px){.card-size-fixed-small{width:300px}}.card-disabled{opacity:.4}.card-body,.card-footer,.card-header,.card-image{padding:1.5em 1.5em 0 1.5em}.card-body:last-child,.card-footer:last-child,.card-header:last-child,.card-image:last-child{padding-bottom:1.5em}.card-body :first-child,.card-footer :first-child,.card-header :first-child,.card-image :first-child{margin-top:0}.card-body :last-child,.card-footer :last-child,.card-header :last-child,.card-image :last-child{margin-bottom:0}.card-image{position:relative;padding-left:0;padding-right:0}.card-image:first-child{padding-top:0}.card-image:first-child .card-image-badge{top:.75em}.card-image:last-child{padding-bottom:0}.card-image .card-image-badge{position:absolute;top:1.5em;right:.75em}.card-image img{display:block;height:auto;width:100%;margin:0 auto}.card-header{border-bottom:none}.card-header .card-icon{float:left;margin-right:.75em}.card-header .card-header-body{display:block;overflow:hidden}.card-header .card-title{font-family:inherit;font-weight:500;display:block;font-size:1.35em;line-height:1.2em;margin:0}.card-header .card-subtitle{display:block;margin-top:.5em;font-size:1em;line-height:1.2em;opacity:.5}.card-header .card-longdesc{margin-top:1em}.card-footer{border-top:none}.card-table td:first-child,.card-table th:first-child{padding-left:1.5em}.card-table td:last-child,.card-table th:last-child{padding-right:1.5em}.form-wizard-icon-list{background:var(--typo3-component-bg);border:var(--typo3-component-border-width) solid var(--typo3-component-border-color);border-radius:.125rem;margin-top:.25rem;padding:calc(var(--typo3-spacing)/ 4);display:flex;flex-wrap:wrap;gap:2px}.form-wizard-icon-list-item a{display:flex;height:100%;border-radius:calc(var(--typo3-component-border-radius)/ 2);padding:calc(var(--typo3-spacing)/ 2);align-items:center;justify-content:center;outline-offset:-1px}.form-wizard-icon-list-item a:hover{color:var(--typo3-list-item-hover-color);background-color:var(--typo3-list-item-hover-bg);outline:1px solid var(--typo3-list-item-hover-border-color)}.form-wizard-icon-list-item a:focus{color:var(--typo3-list-item-focus-color);background-color:var(--typo3-list-item-focus-bg);outline:1px solid var(--typo3-list-item-focus-border-color)}.form-wizard-icon-list-item a.active,.form-wizard-icon-list-item a:active{color:var(--typo3-list-item-active-color);background-color:var(--typo3-list-item-active-bg);outline:1px solid var(--typo3-list-item-active-border-color)}.form-wizard-icon-list-item a,.form-wizard-icon-list-item a>span[title]{display:block;line-height:1}.form-wizard-icon-list-item img{display:block;min-width:16px;max-width:128px;max-height:128px}.context-menu{font-size:var(--typo3-component-font-size);line-height:var(--typo3-component-line-height);padding:2px;position:absolute;z-index:310;color:var(--typo3-component-color);border:var(--typo3-component-border-width) solid var(--typo3-component-border-color);background-color:var(--typo3-component-bg);box-shadow:var(--typo3-component-box-shadow);border-radius:var(--typo3-component-border-radius)}.context-menu-group{position:relative;display:flex;flex-direction:column;gap:1px;list-style:none;padding:0;margin:0;min-width:150px}.context-menu-item{position:relative;display:flex;border-radius:calc(var(--typo3-component-border-radius) - var(--typo3-component-border-width));gap:.5em;padding:var(--typo3-list-item-padding-y) var(--typo3-list-item-padding-x);cursor:pointer;text-decoration:none}.context-menu-item:focus,.context-menu-item:hover{z-index:1;outline-offset:-1px}.context-menu-item:hover{color:var(--typo3-component-hover-color);background-color:var(--typo3-component-hover-bg);outline:1px solid var(--typo3-component-hover-border-color)}.context-menu-item:focus{color:var(--typo3-component-focus-color);background-color:var(--typo3-component-focus-bg);outline:1px solid var(--typo3-component-focus-border-color)}.context-menu-item-icon{flex-shrink:0;flex-grow:0;width:var(--icon-size-small)}.context-menu-item-label{flex-grow:1}.context-menu-item-indicator{flex-shrink:0;flex-grow:0;width:var(--icon-size-small)}.context-menu-item-divider{padding:0;height:0;margin-top:var(--typo3-list-item-padding-y);margin-bottom:var(--typo3-list-item-padding-y);border-top:var(--typo3-component-border-width) solid var(--typo3-component-border-color)}typo3-backend-live-search{display:flex;flex-direction:column;height:100%}typo3-backend-live-search .sticky-form-actions{z-index:50}typo3-backend-live-search-result-item-container,typo3-backend-live-search-result-item-detail-container{position:relative;flex-grow:1;flex-basis:50%;overflow:auto;padding:var(--bs-modal-padding)}typo3-backend-live-search-result-item-container{padding-top:0}typo3-backend-live-search-result-container{--livesearch-item-opacity:.5;--livesearch-preamble-delimiter-border-width:1px;--livesearch-preamble-delimiter-border-color:rgb(215, 215, 215);display:flex;flex-direction:row;margin:calc(var(--bs-modal-padding) * -1);height:100%;overflow:auto}typo3-backend-live-search-result-action-list,typo3-backend-live-search-result-list{display:flex;flex-direction:column;gap:1px}typo3-backend-live-search-result-list .livesearch-result-item-group-label{font-weight:700;line-height:inherit;padding:var(--typo3-list-item-padding-y) 0;border-bottom:1px solid rgba(0,0,0,.1);margin-bottom:var(--typo3-list-item-padding-y);background-color:#fff;z-index:20}typo3-backend-live-search-result-list .livesearch-result-item-group-label.sticky{position:sticky;top:0;z-index:15}typo3-backend-live-search-result-item-detail-container .livesearch-detail-preamble{text-align:center;padding-bottom:1em;margin-bottom:1em;border-bottom:var(--livesearch-preamble-delimiter-border-width) solid var(--livesearch-preamble-delimiter-border-color)}typo3-backend-live-search-result-item-detail-container .livesearch-detail-preamble .livesearch-detail-preamble-type{opacity:var(--livesearch-item-opacity)}typo3-backend-live-search-result-item,typo3-backend-live-search-result-item-action{display:flex;gap:1.5em;font-size:var(--typo3-component-font-size);line-height:var(--typo3-component-line-height);padding:var(--typo3-list-item-padding-y) var(--typo3-list-item-padding-x);border-radius:calc(var(--typo3-component-border-radius) - var(--typo3-component-border-width));color:#000;background-color:#fff;cursor:pointer}typo3-backend-live-search-result-item-action.active,typo3-backend-live-search-result-item-action:focus,typo3-backend-live-search-result-item-action:hover,typo3-backend-live-search-result-item.active,typo3-backend-live-search-result-item:focus,typo3-backend-live-search-result-item:hover{z-index:1;outline-offset:-1px}typo3-backend-live-search-result-item-action:hover,typo3-backend-live-search-result-item:hover{background-color:#f2f8fe;outline:1px solid #d9ebfb}typo3-backend-live-search-result-item-action.active,typo3-backend-live-search-result-item-action:focus,typo3-backend-live-search-result-item.active,typo3-backend-live-search-result-item:focus{background-color:#f2f8fe;outline:1px solid #3393eb}typo3-backend-live-search-result-item .livesearch-expand-action,typo3-backend-live-search-result-item-action .livesearch-expand-action{flex:0;align-items:center;margin:calc(var(--typo3-list-item-padding-y) * -1) calc(var(--typo3-list-item-padding-x) * -1);padding:var(--typo3-list-item-padding-y) calc(var(--typo3-list-item-padding-x)/ 2);border-left:1px solid transparent}typo3-backend-live-search-result-item .livesearch-expand-action:hover,typo3-backend-live-search-result-item-action .livesearch-expand-action:hover{border-left:1px solid #d9ebfb}typo3-backend-live-search-result-item-action>*,typo3-backend-live-search-result-item>*{display:flex;gap:.5em;flex:1}typo3-backend-live-search-result-item-action>* .livesearch-result-item-icon,typo3-backend-live-search-result-item>* .livesearch-result-item-icon{display:flex;gap:.5em;flex-grow:0;flex-shrink:0;align-items:center}typo3-backend-live-search-result-item-action>* .livesearch-result-item-title,typo3-backend-live-search-result-item>* .livesearch-result-item-title{flex-grow:1;word-break:break-word}typo3-backend-live-search-result-item-action>* .livesearch-result-item-title .small,typo3-backend-live-search-result-item-action>* .livesearch-result-item-title small,typo3-backend-live-search-result-item>* .livesearch-result-item-title .small,typo3-backend-live-search-result-item>* .livesearch-result-item-title small{opacity:var(--livesearch-item-opacity)}.resource-tiles{--resource-tiles-grid-spacing:.5rem;--resource-tiles-grid-width:150px;--resource-tile-spacing:1rem;--resource-tile-border-radius:4px;--resource-tile-nameplate-size:12px;--resource-tile-nameplate-activity-size:10px;--resource-tile-checkbox-size:16px;--resource-tile-color:#313131;--resource-tile-bg:#fff;--resource-tile-border-color:rgb(215, 215, 215);--resource-tile-hover-color:var(--resource-tile-color);--resource-tile-hover-bg:rgba(0, 0, 0, .05);--resource-tile-hover-border-color:rgb(215, 215, 215);--resource-tile-focus-color:var(--resource-tile-color);--resource-tile-focus-bg:rgba(0, 0, 0, .05);--resource-tile-focus-border-color:rgb(187, 187, 187);--resource-tile-active-color:var(--resource-tile-color);--resource-tile-active-bg:#f2f8fe;--resource-tile-active-border-color:#3393eb;display:grid;grid-template-columns:repeat(auto-fill,var(--resource-tiles-grid-width));gap:var(--resource-tiles-grid-spacing);-webkit-user-select:none;-moz-user-select:none;user-select:none;margin-bottom:1rem}@media (min-width:480px){.resource-tiles{--resource-tiles-grid-width:170px}}@media (min-width:768px){.resource-tiles{--resource-tiles-grid-width:200px}}.resource-tile{position:relative;padding-top:98%;color:var(--resource-tile-color);background-color:var(--resource-tile-bg);border:1px solid var(--resource-tile-border-color);border-radius:var(--resource-tile-border-radius)}.resource-tile a{color:inherit}.resource-tile:hover{--resource-tile-color:var(--resource-tile-hover-color);--resource-tile-bg:var(--resource-tile-hover-bg);--resource-tile-border-color:var(--resource-tile-hover-border-color);text-decoration:none}.resource-tile:focus-within{--resource-tile-color:var(--resource-tile-focus-color);--resource-tile-bg:var(--resource-tile-focus-bg);--resource-tile-border-color:var(--resource-tile-focus-border-color)}.resource-tile.active{--resource-tile-color:var(--resource-tile-active-color);--resource-tile-bg:var(--resource-tile-active-bg);--resource-tile-border-color:var(--resource-tile-active-border-color)}.resource-tile.active .resource-tile-checkbox,.resource-tile:hover .resource-tile-checkbox{display:block}.resource-tile a{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;text-decoration:none;outline:0}.resource-tile-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.resource-tile-preview{flex:1;position:relative;margin:var(--resource-tile-spacing);margin-bottom:0}.resource-tile-preview-content{position:absolute;top:0;left:0;height:100%;width:100%}.resource-tile-icon{display:flex;height:100%;width:100%;justify-content:center;align-items:center}.resource-tile-image{display:flex;height:100%;width:100%;justify-content:center;align-items:center}.resource-tile-image img{max-height:100%;max-width:100%;outline:2px solid #fff;outline-offset:0;border-radius:2px;box-shadow:0 0 4px 4px rgba(0,0,0,.05)}.resource-tile-image-icon{position:absolute;top:calc(var(--resource-tile-spacing) * -.5);left:calc(var(--resource-tile-spacing) * -.5)}.resource-tile-nameplate{display:flex;flex-direction:column;padding:var(--resource-tile-spacing);text-align:center;font-size:var(--resource-tile-nameplate-size)}.resource-tile-nameplate-label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.resource-tile-nameplate-activity{font-size:var(--resource-tile-nameplate-activity-size);opacity:.75}.resource-tile-checkbox{display:none;position:absolute;font-size:var(--resource-tile-checkbox-size);right:calc(var(--resource-tile-spacing)/ 2);top:calc(var(--resource-tile-spacing)/ 2)}.btn-group typo3-backend-switch-user .btn{margin-left:-1px;display:initial}.collapse-horizontal{height:auto;width:0;vertical-align:middle;overflow:hidden}.collapse-horizontal.show{display:inline-block;width:auto}.collapse-horizontal.collapsing{display:inline-block;transition-property:width,visibility;width:0}.cropper .cropper-line{background-color:transparent}.cropper .cropper-dashed{border:1px dashed #ff8700}.cropper .cropper-point{background-color:#ff8700}.cropper .cropper-point.point-nw{left:0;top:0}.cropper .cropper-point.point-w{left:0}.cropper .cropper-point.point-sw{left:0;bottom:0}.cropper .cropper-point.point-ne{right:0;top:0}.cropper .cropper-point.point-e{right:0}.cropper .cropper-point.point-se{right:0;bottom:0}.cropper .cropper-point.point-se:before{background-color:#fff}.cropper .cropper-point.point-n{top:0}.cropper .cropper-point.point-s{bottom:0}.cropper .cropper-view-box{outline:1px dashed #ff8700}.cropper .cropper-bg{background-image:url(../Images/cropper-background.png)}.cropper .cropper-image-container{display:block;width:100%;max-width:1000px}.cropper .ratio-buttons{margin-bottom:10px}.cropper .ratio-buttons .btn.btn-default{margin-bottom:5px}.cropper .panel-group{position:relative;margin:-15px}.cropper .panel-group [aria-expanded=true]{border-left:2px solid #ff8700;position:relative}.cropper .panel-group [aria-expanded=true][data-bs-toggle=collapse]{background-color:#333}.cropper .panel-group [aria-expanded=false]{border-left:2px solid #444;position:relative}.cropper .panel-group label,.cropper .panel-group table{color:#fff}.cropper .panel-collapse.collapse{background-color:#2c2c2c!important}.cropper .panel-heading{padding:0}.cropper .panel-heading .panel-title>[data-crop-variant]{display:flex;padding:10px 15px;justify-content:space-between}.cropper .panel-heading .panel-title>a{text-decoration:none!important;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:13px}.cropper .panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#333}.cropper .panel,.cropper .panel-default .panel-heading,.cropper .panel-group{background:#222;border:none;color:#fff}.cropper .cropper-container.cropper-bg{overflow:visible}.cropper .cropper-crop-box{overflow:hidden}.cropper .cropper-crop-box:after{background-color:#ff8700;content:"Cropped area";position:absolute;left:0;top:0;font-size:10px;color:#000;height:16px;width:100%;max-width:80px;text-overflow:ellipsis;white-space:nowrap;padding:0 4px;pointer-events:none;overflow:hidden}.cropper .cropper-line.line-w{left:0}.cropper .cropper-line.line-e{right:0}.cropper .cropper-line.line-n{top:0}.cropper .cropper-line.line-s{bottom:0}.cropper .ui-resizable-handle.ui-resizable-e,.cropper .ui-resizable-handle.ui-resizable-n,.cropper .ui-resizable-handle.ui-resizable-s,.cropper .ui-resizable-handle.ui-resizable-w{border-color:transparent;transform:none}.cropper .ui-resizable-handle.ui-resizable-e,.cropper .ui-resizable-handle.ui-resizable-w{width:6px}.cropper .ui-resizable-handle.ui-resizable-n,.cropper .ui-resizable-handle.ui-resizable-s{height:6px}.cropper .ui-resizable-handle.ui-resizable-e{right:0}.cropper .ui-resizable-handle.ui-resizable-w{left:0}.cropper .ui-resizable-handle.ui-resizable-n{top:0}.cropper .ui-resizable-handle.ui-resizable-s{bottom:0}.cropper .ui-resizable-handle.ui-resizable-ne,.cropper .ui-resizable-handle.ui-resizable-nw,.cropper .ui-resizable-handle.ui-resizable-se,.cropper .ui-resizable-handle.ui-resizable-sw{transform:none;background-color:#ccc;height:6px;width:6px}.cropper .ui-resizable-handle.ui-resizable-nw{top:0;left:0}.cropper .ui-resizable-handle.ui-resizable-ne{top:0;right:0}.cropper .ui-resizable-handle.ui-resizable-se{bottom:0;right:0}.cropper .ui-resizable-handle.ui-resizable-sw{bottom:0;left:0}.cropper .cropper-focus-area{cursor:move;height:200px;width:200px;background-color:rgba(215,187,0,.5);position:absolute;z-index:999999;opacity:1;overflow:hidden;transition:background-color .3s}.cropper .cropper-focus-area.has-nodrop,.cropper .cropper-focus-area.has-nodrop:hover{background-color:rgba(211,35,46,.6)!important;transition:background-color .3s}.cropper .cropper-focus-area:focus,.cropper .cropper-focus-area:hover{background-color:rgba(215,187,0,.7)}.cropper .cropper-focus-area:after{background-color:rgba(255,255,255,.95);content:"Focus";position:absolute;left:0;top:0;font-size:10px;color:#000;height:16px;width:100%;max-width:44px;text-overflow:ellipsis;white-space:nowrap;padding:0 4px 0 8px;pointer-events:none;overflow:hidden}.cropper .cropper-cover-area{background:url(../Images/cropper-background-cover-area.svg);pointer-events:none;cursor:not-allowed;position:absolute;opacity:1;z-index:99999}.cropper .cropper-cover-area:after{background-color:rgba(255,255,255,.95);content:"Cover area";position:absolute;left:0;top:0;font-size:10px;color:#000;height:16px;width:100%;max-width:80px;text-overflow:ellipsis;white-space:nowrap;padding:0 4px;pointer-events:none;overflow:hidden}.cropper .cropper-preview-thumbnail{position:relative;max-width:100px;max-height:100px;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cropper .cropper-preview-thumbnail:after{background-color:rgba(0,0,0,.5);content:" ";top:0;left:0;bottom:0;right:0;position:absolute;z-index:9}.cropper .cropper-preview-thumbnail.wide{width:100px;height:auto}.cropper .cropper-preview-thumbnail.tall{width:auto;height:80px}.cropper .cropper-preview-thumbnail-image{left:0;top:0}.cropper .wide .cropper-preview-thumbnail-image{width:100%;height:auto}.cropper .tall .cropper-preview-thumbnail-image{width:auto;height:100%}.cropper .cropper-preview-thumbnail-crop-area{border:1px solid #ff8700;position:absolute;z-index:10;overflow:hidden}.cropper .cropper-preview-thumbnail-focus-area{background-color:rgba(215,187,0,.7);position:absolute;z-index:11}:root .cropper-preview-thumbnail-crop-image{image-orientation:0deg;display:block;height:100%;width:100%;min-width:0;max-width:none;min-height:0;max-height:none}.cropper-preview-container{overflow:hidden;position:relative}.cropper-preview-container img{display:block;position:absolute;width:100%;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important}input[type=range].slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:0;display:inline-block;position:relative;width:210px;height:32px;background:0 0;margin:0 6px}input[type=range].slider::-webkit-slider-thumb{margin-top:20px;-webkit-appearance:none;appearance:none;border:1px solid #959595;border-radius:.125rem;height:20px;width:16px;margin-top:-4px;cursor:grab;box-shadow:inset 0 calc(20px / 4 * -1) 0 0 #eee,inset 0 calc(20px / 4) 0 0 #eee;background-color:#eee;background-image:linear-gradient(90deg,#eee 30%,#333 30%,#333 40%,#eee 40%,#eee 60%,#333 60%,#333 70%,#eee 70%,#eee)}input[type=range].slider::-webkit-slider-thumb:active,input[type=range].slider::-webkit-slider-thumb:focus,input[type=range].slider::-webkit-slider-thumb:hover{background-color:#d5d5d5;border-color:#767676}input[type=range].slider::-webkit-slider-thumb:active{cursor:grabbing}input[type=range].slider::-webkit-slider-runnable-track{height:12px;background:#ddd;border-radius:.125rem;box-sizing:border-box;box-shadow:inset 0 0 2px rgba(0,0,0,.25)}input[type=range].slider::-moz-range-thumb{-moz-appearance:none;appearance:none;border:1px solid #959595;border-radius:.125rem;height:20px;width:16px;margin-top:-4px;cursor:grab;box-shadow:inset 0 calc(20px / 4 * -1) 0 0 #eee,inset 0 calc(20px / 4) 0 0 #eee;background-color:#eee;background-image:linear-gradient(90deg,#eee 30%,#333 30%,#333 40%,#eee 40%,#eee 60%,#333 60%,#333 70%,#eee 70%,#eee)}input[type=range].slider::-moz-range-thumb:active,input[type=range].slider::-moz-range-thumb:focus,input[type=range].slider::-moz-range-thumb:hover{background-color:#d5d5d5;border-color:#767676}input[type=range].slider::-moz-range-thumb:active{cursor:grabbing}input[type=range].slider::-moz-range-track{height:12px;background:#ddd;border-radius:.125rem;box-sizing:border-box;box-shadow:inset 0 0 2px rgba(0,0,0,.25);width:100%}input[type=range].slider::-moz-range-progress{background:#999}input[type=range].slider::-ms-thumb{appearance:none;border:1px solid #959595;border-radius:.125rem;height:20px;width:16px;margin-top:-4px;cursor:grab;box-shadow:inset 0 calc(20px / 4 * -1) 0 0 #eee,inset 0 calc(20px / 4) 0 0 #eee;background-color:#eee;background-image:linear-gradient(90deg,#eee 30%,#333 30%,#333 40%,#eee 40%,#eee 60%,#333 60%,#333 70%,#eee 70%,#eee);margin-top:inherit}input[type=range].slider::-ms-thumb:active,input[type=range].slider::-ms-thumb:focus,input[type=range].slider::-ms-thumb:hover{background-color:#d5d5d5;border-color:#767676}input[type=range].slider::-ms-thumb:active{cursor:grabbing}input[type=range].slider::-ms-track{height:12px;background:#ddd;border-radius:.125rem;box-sizing:border-box;box-shadow:inset 0 0 2px rgba(0,0,0,.25)}input[type=range].slider::-ms-fill-lower{background:#999;border-radius:.125rem;box-sizing:border-box}input[type=range].slider::-ms-fill-upper{background:0 0;border-radius:.125rem;box-sizing:border-box}input[type=range].slider[disabled]::-webkit-slider-thumb{cursor:not-allowed;background-color:#c83c3c;border:1px solid #8f2828}input[type=range].slider[disabled]::-webkit-slider-thumb:active,input[type=range].slider[disabled]::-webkit-slider-thumb:focus,input[type=range].slider[disabled]::-webkit-slider-thumb:hover{background-color:#a32e2e;border-color:#5f1b1b}input[type=range].slider[disabled]::-webkit-slider-thumb:after,input[type=range].slider[disabled]::-webkit-slider-thumb:before{background-color:#fff}input[type=range].slider[disabled]::-webkit-slider-runnable-track{cursor:not-allowed}input[type=range].slider[disabled]::-moz-range-thumb{cursor:not-allowed;background-color:#c83c3c;border:1px solid #8f2828}input[type=range].slider[disabled]::-moz-range-thumb:active,input[type=range].slider[disabled]::-moz-range-thumb:focus,input[type=range].slider[disabled]::-moz-range-thumb:hover{background-color:#a32e2e;border-color:#5f1b1b}input[type=range].slider[disabled]::-moz-range-thumb:after,input[type=range].slider[disabled]::-moz-range-thumb:before{background-color:#fff}input[type=range].slider[disabled]::-moz-range-track{cursor:not-allowed}input[type=range].slider[disabled]::-ms-thumb{cursor:not-allowed;background-color:#c83c3c;border:1px solid #8f2828}input[type=range].slider[disabled]::-ms-thumb:active,input[type=range].slider[disabled]::-ms-thumb:focus,input[type=range].slider[disabled]::-ms-thumb:hover{background-color:#a32e2e;border-color:#5f1b1b}input[type=range].slider[disabled]::-ms-thumb:after,input[type=range].slider[disabled]::-ms-thumb:before{background-color:#fff}input[type=range].slider[disabled]::-ms-track{cursor:not-allowed}.form-wizards-items>input[type=range].slider.slider-horizontal{margin-left:8px;margin-right:8px}.slider-wrapper{display:flex;align-items:center}.slider-wrapper.slider-vertical{width:auto;margin-bottom:calc(100% - 32px);transform-origin:top left;transform:rotate(-90deg) translate(-100%)}.slider-wrapper.slider-vertical .slider{margin:6px 0}.nav-tabs{border-radius:.125rem .125rem 0 0;background-color:#ededed}.nav-tabs>li+li{margin-left:2px}.nav-tabs>li>a.nav-link,.nav.nav-tabs>li:not(.nav-item)>a:not(.nav-link){margin-right:0;transition:all .25s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-tabs>li>a.nav-link,.nav.nav-tabs>li:not(.nav-item)>a:not(.nav-link){transition:none}}.nav-tabs>li>a.nav-link:focus,.nav-tabs>li>a.nav-link:hover,.nav.nav-tabs>li:not(.nav-item)>a:focus:not(.nav-link),.nav.nav-tabs>li:not(.nav-item)>a:hover:not(.nav-link){border-color:#d7d7d7 #d7d7d7 #ccc;background:#e1e1e1}.nav-tabs>li>a.nav-link.active,.nav.nav-tabs>li:not(.nav-item)>a.active:not(.nav-link){border:1px solid #ccc;border-bottom-color:#fafafa;background-color:#fafafa}.nav-tabs>li[class*=has-]>a.nav-link:before,.nav.nav-tabs>li[class*=has-]:not(.nav-item)>a:not(.nav-link):before{transition:all .25s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-tabs>li[class*=has-]>a.nav-link:before,.nav.nav-tabs>li[class*=has-]:not(.nav-item)>a:not(.nav-link):before{transition:none}}.nav-tabs>li.has-validation-error>a.nav-link,.nav.nav-tabs>li.has-validation-error:not(.nav-item)>a:not(.nav-link){background-color:#c83c3c;border-color:#a32e2e;color:#fff}.nav-tabs>li.has-validation-error>a.nav-link:focus,.nav-tabs>li.has-validation-error>a.nav-link:hover,.nav.nav-tabs>li.has-validation-error:not(.nav-item)>a:focus:not(.nav-link),.nav.nav-tabs>li.has-validation-error:not(.nav-item)>a:hover:not(.nav-link){color:#fff;background-color:#ce5050;border-color:#b73434}.nav-tabs>li.has-validation-error>a.nav-link:before,.nav.nav-tabs>li.has-validation-error:not(.nav-item)>a:not(.nav-link):before{content:"";vertical-align:middle;-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M8 2c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6 2.7-6 6-6m0-1C4.1 1 1 4.1 1 8s3.1 7 7 7 7-3.1 7-7-3.1-7-7-7z'/%3e%3ccircle cx='8' cy='11' r='1'/%3e%3cpath d='M8.5 9h-1l-.445-4.45A.5.5 0 0 1 7.552 4h.896a.5.5 0 0 1 .497.55L8.5 9z'/%3e%3c/g%3e%3c/svg%3e");mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M8 2c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6 2.7-6 6-6m0-1C4.1 1 1 4.1 1 8s3.1 7 7 7 7-3.1 7-7-3.1-7-7-7z'/%3e%3ccircle cx='8' cy='11' r='1'/%3e%3cpath d='M8.5 9h-1l-.445-4.45A.5.5 0 0 1 7.552 4h.896a.5.5 0 0 1 .497.55L8.5 9z'/%3e%3c/g%3e%3c/svg%3e");background-color:#fff;background-size:contain;display:inline-block;border-radius:50%;width:14px;height:14px}.nav-tabs>li.has-validation-error>a.nav-link.active,.nav.nav-tabs>li.has-validation-error:not(.nav-item)>a.active:not(.nav-link){color:inherit;border:1px solid #ccc;border-bottom-color:#fafafa;background-color:#fafafa}.nav-tabs>li.has-validation-error>a.nav-link.active:before,.nav.nav-tabs>li.has-validation-error:not(.nav-item)>a.active:not(.nav-link):before{background-color:#c83c3c;color:#fff}.tooltip-inner{padding:5px 10px}.popover{padding:0}.popover-header{margin-top:0;border-bottom:0;padding:.75rem}.popover-content p{margin:0}.popover-content .list-group{margin:-9px -14px}.popover-content .list-group .list-group-item{border-radius:0;border-left:0;border-right:0}.popover-content .list-group .list-group-item:last-child{border-bottom:0}.popover .close{margin-right:10px;margin-top:10px}.popover.bottom .arrow:after{border-bottom-color:#f7f7f7}.popover.no-title .arrow:after{border-bottom-color:#fff}.typo3-TCEforms{width:100%}.sortableHandle{cursor:move!important}.t3-form-field-add-flexsection{border-top:1px solid #cdcdcd;padding:10px 5px 5px 0}img.t3-tceforms-sysfile-imagepreview{float:left;margin-right:10px;margin-bottom:10px}.typo3-TCEforms span.typo3-TCEforms-newToken{color:#900;font-weight:700}.t3-form-original-language{background-color:#dadada;border:1px solid silver;padding:2px;font-size:.9em;margin-top:4px;word-break:break-all}.t3-form-original-language-diff{border:1px solid silver;font-size:.9em;margin-top:4px}.t3-form-original-language-diffheader{font-weight:700;padding:2px}.t3-form-original-language-diffcontent{padding:2px}.t3-form-original-language .icon{margin-right:5px}div.t3-form-field-container:first-child .t3-form-field-label-flex{border-top:0}.form-irre-object,.t3-flex-section{transition:opacity .5s;opacity:1}.form-irre-object--deleted,.t3-flex-section--deleted{opacity:0!important}.t3-form-field-container-inline-hidden,.t3-form-field-container-inline-placeHolder{opacity:.3}.t3-form-field-disable{display:none}.formengine-field-item.disabled{position:relative}.formengine-field-item.disabled .t3-form-field-disable{z-index:100;background:#fafafa;display:block;position:absolute;width:100%;height:100%;opacity:.5}.t3-form-field-eval-null-checkbox{z-index:150;position:relative}.list-tree,.list-tree ul{margin-left:8px;padding:0;list-style:none;position:relative}.list-tree ul:before,.list-tree:before{content:"";display:block;width:0;position:absolute;top:0;bottom:11px;left:0;margin-bottom:-2px;border-left:1px dotted #666}.list-tree li{margin:0;padding-left:16px;line-height:21px;position:relative}.list-tree li.active>.list-tree-group:before{content:"";position:absolute;right:-6px;left:-6px;top:-1px;bottom:-1px;display:block;border:1px solid rgba(0,0,0,.25);background-color:rgba(255,255,255,.75);border-radius:2px}.list-tree li:before{content:"";display:block;width:9px;height:0;border-top:1px dotted #666;margin-top:-2px;position:absolute;top:12px;left:2px}.list-tree li:last-child:before{background:#fff;height:auto;left:0;width:11px;bottom:0}.list-tree li .list-tree-control .icon{margin-right:-4px;margin-top:4px}.list-tree li .list-tree-control .icon svg{width:12px;height:12px;background-color:#fff}.list-tree-group{position:relative;display:block;white-space:nowrap}.list-tree-group>span{position:relative}.list-tree-value{font-weight:700}.list-tree-icon{top:-2px}.list-tree-show{position:relative;display:inline-block;width:20px;text-align:center;margin-left:-2px}.list-tree-control{position:absolute;top:0;left:0;display:block;margin-left:-26px;text-align:center;line-height:20px;width:20px;height:20px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-tree-control:before,.list-tree-control:target:before{content:"";position:absolute;top:50%;left:50%;margin-top:-6px;margin-left:-6px;width:12px;height:12px;background-color:#fff}.list-tree-control:active,.list-tree-control:focus,.list-tree-control:hover{cursor:pointer;outline:0;text-decoration:none}.list-tree-control typo3-backend-icon{display:block}.list-tree-control[aria-expanded=true] typo3-backend-icon[identifier=actions-caret-right]{display:none}.list-tree-control[aria-expanded=false] typo3-backend-icon[identifier=actions-caret-down]{display:none}.list-tree-root{margin-left:0}.list-tree-root:before{display:none}.list-tree-root>li{padding-left:20px}.list-tree-root>li:before{display:none}.list-tree-root>li.list-tree-path{margin-left:-20px}.list-tree-root>li>.list-tree-group>.list-tree-control{margin-left:-20px}.list-tree-root>li>.list-tree-group>.list-tree-control:before{background-color:transparent}.list-tree-root-clean>li{padding-left:0}.panel-tab .list-tree li:last-child:before{background-color:#fafafa}.treeline-icon{position:relative;display:inline-block;margin-top:-6px;margin-bottom:-6px;margin-right:2px;padding:0;height:31px;width:16px;white-space:nowrap;overflow:hidden;vertical-align:top}.treeline-icon:after,.treeline-icon:before{position:absolute;content:"";left:50%}.treeline-icon:before{top:0;height:100%;width:2px;margin-left:-1px;border-left:1px dotted #666}.treeline-icon:after{border-top:1px dotted #666;height:2px;width:100%;top:50%;margin-top:-1px}.treeline-icon-jointop:before{top:50%}.treeline-icon-joinbottom:before{top:-50%}.treeline-icon-line:after{display:none}.treeline-icon-blank{display:none}.treeline-icon-clear:after,.treeline-icon-clear:before{display:none}body#typo3-pagetree{margin:0;padding:0}#typo3-pagetree #typo3-inner-docbody{padding:10px 0}span.dragIcon{display:inline-block;height:16px}#dragIcon{position:absolute;visibility:hidden;z-index:20;opacity:.5;white-space:nowrap}.scaffold-content-navigation-component,.scaffold-content-navigation-component .navigation-tree-container,.scaffold-content-navigation-component .svg-tree,.scaffold-content-navigation-component .svg-tree>div{flex:1 0 0;display:flex;flex-direction:column}.scaffold-content-navigation-component .svg-tree-wrapper{flex:1 0 0}.scaffold-content-navigation-component .navigation-tree-container{background-color:#f5f5f5}.ui-block{text-align:center;padding-top:200px;position:absolute;z-index:3000;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.3)}.pagination .paginator-input{display:inline-block;width:auto;margin:-7px 0}.dropzone{position:relative;cursor:pointer;margin:15px 0;padding:1.25em;padding-right:46px;color:#333;border:1px dashed #ccc;transition:all .3s ease-in-out}@media (prefers-reduced-motion:reduce){.dropzone{transition:none}}.dropzone:hover{border-color:#999}.dropzone-mask{position:absolute;left:0;right:0;bottom:0;top:0}.dropzone-close{cursor:pointer;position:absolute;top:5px;right:5px;height:26px;width:26px;text-align:center;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0,0);overflow:hidden;background-color:#eaeaea;color:#333;border:0}.dropzone-close:hover{background-color:#c83c3c}.dropzone-close:hover:before{content:"";vertical-align:middle;-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M11.9 5.5 9.4 8l2.5 2.5c.2.2.2.5 0 .7l-.7.7c-.2.2-.5.2-.7 0L8 9.4l-2.5 2.5c-.2.2-.5.2-.7 0l-.7-.7c-.2-.2-.2-.5 0-.7L6.6 8 4.1 5.5c-.2-.2-.2-.5 0-.7l.7-.7c.2-.2.5-.2.7 0L8 6.6l2.5-2.5c.2-.2.5-.2.7 0l.7.7c.2.2.2.5 0 .7z'/%3e%3c/g%3e%3c/svg%3e");mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M11.9 5.5 9.4 8l2.5 2.5c.2.2.2.5 0 .7l-.7.7c-.2.2-.5.2-.7 0L8 9.4l-2.5 2.5c-.2.2-.5.2-.7 0l-.7-.7c-.2-.2-.2-.5 0-.7L6.6 8 4.1 5.5c-.2-.2-.2-.5 0-.7l.7-.7c.2-.2.5-.2.7 0L8 6.6l2.5-2.5c.2-.2.5-.2.7 0l.7.7c.2.2.2.5 0 .7z'/%3e%3c/g%3e%3c/svg%3e");background-color:#fff;background-size:contain;display:inline-block}.dropzone-close:before{content:"";vertical-align:middle;-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M11.9 5.5 9.4 8l2.5 2.5c.2.2.2.5 0 .7l-.7.7c-.2.2-.5.2-.7 0L8 9.4l-2.5 2.5c-.2.2-.5.2-.7 0l-.7-.7c-.2-.2-.2-.5 0-.7L6.6 8 4.1 5.5c-.2-.2-.2-.5 0-.7l.7-.7c.2-.2.5-.2.7 0L8 6.6l2.5-2.5c.2-.2.5-.2.7 0l.7.7c.2.2.2.5 0 .7z'/%3e%3c/g%3e%3c/svg%3e");mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M11.9 5.5 9.4 8l2.5 2.5c.2.2.2.5 0 .7l-.7.7c-.2.2-.5.2-.7 0L8 9.4l-2.5 2.5c-.2.2-.5.2-.7 0l-.7-.7c-.2-.2-.2-.5 0-.7L6.6 8 4.1 5.5c-.2-.2-.2-.5 0-.7l.7-.7c.2-.2.5-.2.7 0L8 6.6l2.5-2.5c.2-.2.5-.2.7 0l.7.7c.2.2.2.5 0 .7z'/%3e%3c/g%3e%3c/svg%3e");background-color:#333;background-size:contain;display:inline-block;width:14px;height:14px}.dropzone-hint{display:table;background:0 0;border:0;text-align:left;padding:0}.dropzone-hint-body,.dropzone-hint-media{display:table-cell;vertical-align:middle}.dropzone-hint-body :first-child{margin-top:0}.dropzone-hint-body :last-child{margin-bottom:0}.dropzone-hint-media{padding-right:1em}.dropzone-hint-icon{display:flex;justify-content:center;align-items:center;height:40px;width:40px;background-color:#eee;border-radius:50%;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0,0)}.dropzone-hint-icon:before{content:"";vertical-align:middle;-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M10 11h1v1h-1zM12 11h1v1h-1zM11.27 6H4.73a.25.25 0 0 1-.188-.414l3.27-3.743a.244.244 0 0 1 .377 0l3.27 3.743A.25.25 0 0 1 11.27 6z'/%3e%3cpath d='M14.5 9H10v1h4v3H2v-3h4V9H1.5a.5.5 0 0 0-.5.5v4a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 0-.5-.5z'/%3e%3cpath d='M7 6h2v4H7z'/%3e%3c/g%3e%3c/svg%3e");mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M10 11h1v1h-1zM12 11h1v1h-1zM11.27 6H4.73a.25.25 0 0 1-.188-.414l3.27-3.743a.244.244 0 0 1 .377 0l3.27 3.743A.25.25 0 0 1 11.27 6z'/%3e%3cpath d='M14.5 9H10v1h4v3H2v-3h4V9H1.5a.5.5 0 0 0-.5.5v4a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 0-.5-.5z'/%3e%3cpath d='M7 6h2v4H7z'/%3e%3c/g%3e%3c/svg%3e");background-color:#333;background-size:contain;display:inline-block;width:16px;height:16px}.dropzone-hint-title{font-size:12px;font-weight:700;margin-bottom:.25em}.drop-status-ok .dropzone-hint-icon{color:#fff;background:#107c10}.drop-status-ok .dropzone-hint-icon:before{content:"";vertical-align:middle;-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M10 11h1v1h-1zM12 11h1v1h-1zM11.27 6H4.73a.25.25 0 0 1-.188-.414l3.27-3.743a.244.244 0 0 1 .377 0l3.27 3.743A.25.25 0 0 1 11.27 6z'/%3e%3cpath d='M14.5 9H10v1h4v3H2v-3h4V9H1.5a.5.5 0 0 0-.5.5v4a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 0-.5-.5z'/%3e%3cpath d='M7 6h2v4H7z'/%3e%3c/g%3e%3c/svg%3e");mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M10 11h1v1h-1zM12 11h1v1h-1zM11.27 6H4.73a.25.25 0 0 1-.188-.414l3.27-3.743a.244.244 0 0 1 .377 0l3.27 3.743A.25.25 0 0 1 11.27 6z'/%3e%3cpath d='M14.5 9H10v1h4v3H2v-3h4V9H1.5a.5.5 0 0 0-.5.5v4a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 0-.5-.5z'/%3e%3cpath d='M7 6h2v4H7z'/%3e%3c/g%3e%3c/svg%3e");background-color:#fff;background-size:contain;display:inline-block}.drop-in-progress .dropzone-hint-icon:before{content:"";vertical-align:middle;-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M7 2v7.3H5c-.4 0-.6.5-.4.8l3 3.7c.2.2.6.2.8 0l3-3.7c.2-.3 0-.8-.4-.8H9V2H7z'/%3e%3c/g%3e%3c/svg%3e");mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M7 2v7.3H5c-.4 0-.6.5-.4.8l3 3.7c.2.2.6.2.8 0l3-3.7c.2-.3 0-.8-.4-.8H9V2H7z'/%3e%3c/g%3e%3c/svg%3e");background-color:#fff;background-size:contain;display:inline-block}.upload-queue{margin:15px 0}.upload-queue-progress{position:relative;padding:5px;color:#fff;background-color:#999;border:1px solid rgba(0,0,0,.15);text-align:right}.upload-queue-progress-bar{position:absolute;z-index:1;top:0;left:0;bottom:0;background-color:#107c10}.upload-queue-progress-message,.upload-queue-progress-percentage{display:inline;position:relative;z-index:2}.upload-file-picker{position:fixed;bottom:0;right:0;height:1px;width:1px;visibility:hidden}.uploading .upload-queue-progress-bar{background-color:#6daae0}.error .upload-queue-progress-bar{background-color:#c83c3c}.typo3-install{padding:30px;background-color:#dadada}.typo3-install .h1,.typo3-install h1{font-size:28px}.typo3-install .h2,.typo3-install h2{font-size:18px}.typo3-install .h3,.typo3-install h3{font-size:16px}.typo3-install .btn{font-size:inherit;padding:.5em 1em}.typo3-install .alert{padding:1.5em}.typo3-install .alert .h3,.typo3-install .alert h3{font-size:14px;margin-bottom:0}.typo3-install .alert>:first-child{margin-top:0}.typo3-install .alert>:last-child{margin-bottom:0}.typo3-install-container{margin:4em auto;max-width:620px}.typo3-install-content{background-color:#fff;box-shadow:0 2px 1px rgba(0,0,0,.15);overflow:hidden;border-radius:5px}.typo3-install-content>div>:first-child{margin-top:0}.typo3-install-content>div>:last-child{margin-bottom:0}.typo3-install-content-header{padding:35px}.typo3-install-content-header-logo{margin:0 auto;margin-bottom:15px}.typo3-install-content-progress{padding:15px 35px;border-top:1px solid #eaeaea;background-color:#fafafa}.typo3-install-content-body{border-top:1px solid #eaeaea;padding:35px}.typo3-install-content-body>:first-child{margin-top:0}.typo3-install-content-body>:last-child{margin-bottom:0}.typo3-install-content-spacer{margin-top:2em}.typo3-install-content-spacer-small{margin-top:1em}.extensionConfiguration-form .tab-content{margin-bottom:15px}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.text-normal{font-weight:400}.text-pre-wrap{white-space:pre-wrap}.text-wrap-allowed{word-break:break-all;overflow-wrap:break-word}.lead{font-size:1.25em;margin-bottom:1.125rem}@media (min-width:768px){.dl-horizontal dt{text-align:left}}a.disabled{color:#d7d7d7;pointer-events:none;opacity:.4}.media-new-content-element-wizard .media-left input{margin-left:2px}.history-block{border-left:5px solid #a9a9a9;border-bottom:1px dotted #a9a9a9}.belog-filter-form .input-group{max-width:190px}.typo3-login{display:flex;flex-direction:row;width:100%;height:auto!important;background-color:#eee;background-size:cover;background-position:center center}.typo3-login-inner{margin:0 auto;width:99.999%;min-height:100vh;display:flex;flex-direction:column}.typo3-login-container{z-index:100;padding:1.5em;display:flex;flex-direction:column;flex:1 1 auto;align-items:center;justify-content:center}.typo3-login-footnote{margin-left:auto;margin-right:auto;font-size:.95em;text-align:center;padding:1em 1.5em;display:block;color:#666}@media (min-width:768px){.typo3-login-footnote{flex:none;position:absolute;bottom:1.5em;right:0}}.typo3-login-footnote p{margin:0}.typo3-login-wrap{width:100%;max-width:320px;margin:0 auto}.typo3-login-wrap.typo3-login-wrap-large{max-width:960px}.typo3-login-links{padding-top:inherit;margin-top:20px;margin-bottom:20px}.typo3-login-links .disabled{cursor:not-allowed!important;text-decoration:none!important;color:#737373!important}.typo3-login-links .disabled span{cursor:inherit}#t3js-login-url{width:0;height:0;border:0;padding:0;overflow:hidden;clip:rect(0,0,0,0);cursor:default}.typo3-login-logo{padding-top:1em}.typo3-login-logo img{display:block;max-width:100%;height:auto;margin:0 auto}.typo3-login-news-heading{font-size:14px;line-height:1.3em;margin-top:0}.card-login{border-color:#d5d5d5;border-radius:3px;overflow:visible}.card-login .card-heading{padding:2.5em 2.5em 0;border-top-left-radius:2px;border-top-right-radius:2px}.card-login .card-body{padding:1.75em 2.5em 2.5em}.card-login .card-footer{padding:1.5em 2.5em;border-top:3px solid #f80;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.card-login a{font-weight:700}@media (max-width:767px){.card-login{margin-bottom:0}}.card-login.card-mfa .card-heading .h2,.card-login.card-mfa .card-heading h2{margin:.75rem 0}.input-login{height:41.2px;padding:12px 12px;font-size:12px;line-height:1.3333333;border-radius:2px}select.input-login{height:41.2px;line-height:41.2px}select[multiple].input-login,textarea.input-login{height:auto}.input-login{border-color:#949494}.input-login:active,.input-login:active:focus,.input-login:active:hover,.input-login:focus,.input-login:hover{outline:1px solid #000;outline-offset:-1px}.btn-login{--bs-btn-padding-y:12px;--bs-btn-padding-x:12px;--bs-btn-font-size:0.75rem;--bs-btn-border-radius:2px;--bs-btn-color:#fff;--bs-btn-bg:#f80;--bs-btn-border-color:rgba(0, 0, 0, 0.1);--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#d97400;--bs-btn-hover-border-color:rgba(0, 0, 0, 0.1);--bs-btn-focus-shadow-rgb:196,196,196;--bs-btn-active-color:#fff;--bs-btn-active-bg:#cc6d00;--bs-btn-active-border-color:rgba(0, 0, 0, 0.325);--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f80;--bs-btn-disabled-border-color:rgba(0, 0, 0, 0.1);line-height:1.3em;white-space:normal}.typo3-login-carousel{padding:2.5em}.typo3-login-carousel-control{top:50%;margin-top:-30px;height:60px;line-height:60px;width:20px;background-color:#fff;text-align:center;position:absolute;opacity:.75;padding:0;transition:opacity .2s ease-in-out}@media (prefers-reduced-motion:reduce){.typo3-login-carousel-control{transition:none}}.typo3-login-carousel-control:hover{opacity:1}.typo3-login-carousel-control.left{left:-20px;border:1px solid #d5d5d5;border-right:0;border-radius:2px 0 0 2px}.typo3-login-carousel-control.right{right:-20px;border:1px solid #d5d5d5;border-left:0;border-radius:0 2px 2px 0}.typo3-login-copyright-link{font-weight:400!important}.typo3-login-copyright-link>img{float:right;margin-top:-4px}.typo3-login-copyright-text{font-size:.95em;padding-top:1em;color:#444}.typo3-login-copyright-text>:first-child{margin-top:0}.typo3-login-copyright-text>:last-child{margin-bottom:0}.h1,h1{font-family:var(--typo3-header-font-family);font-variant:normal;font-weight:400;margin-top:0;margin-bottom:1.375rem}.h2,.h3,h2,h3{margin-top:1.5rem;margin-bottom:.75rem}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small{font-size:.65em;color:#5a5a5a}blockquote,ol,ul{margin-bottom:9px}ol,ul{padding-left:3em}pre{margin:0}hr{background:0 0;border:none;height:1px}a span{cursor:pointer}video{background-color:#000}.nowrap{white-space:nowrap}.nowrap-disabled{white-space:normal!important}tr:hover .t3-page-ce a{text-decoration:none}em{font-style:italic}.typo3-app-icon{position:relative;display:inline-block;padding:0;height:32px;width:32px;overflow:hidden;border-radius:.125rem;background-color:#484848;vertical-align:middle;transform:translate3d(0,0,0)}.typo3-app-icon>span{display:table;height:100%;width:100%}.typo3-app-icon>span>span{display:table-cell;text-align:center;vertical-align:middle}.typo3-app-icon img{max-height:32px;max-width:32px;margin:0 auto}.typo3-app-icon:after{position:absolute;content:"";display:block;top:0;left:0;right:0;bottom:0;border:1px solid rgba(255,255,255,.1);border-radius:.125rem}.section{margin-bottom:15px}.diff-r{color:red}div.diff-r{background-color:red;color:#000}.diff-g{color:green}div.diff-g{background-color:green;color:#000}div.diff-g,div.diff-r{padding:3px}.t3-overview-list dt{font-weight:700}.media-gallery__list .media-gallery__item{display:inline-block;float:none;margin-bottom:15px;margin-right:-4px;vertical-align:top}.media-gallery__list .media-gallery__item .media-object{max-height:158px;overflow:hidden}.media-gallery__list .media-gallery__item img.thumbnail{height:auto;margin-bottom:0;max-height:150px;max-width:100%}.media-gallery__list .media-gallery__item span.thumbnail{display:inline-block;margin-bottom:0}:root{--grideditor-grid-spacing:1rem;--grideditor-cell-spacing:1rem;--grideditor-cell-bg:#fff;--grideditor-cell-border-radius:4px;--grideditor-cell-shadow:0 1px 2px 1px rgba(0, 0, 0, .15);--grideditor-action-size:32px;--grideditor-action-spacing:2px;--grideditor-action-bg:#fafafa;--grideditor-action-focus-bg:#e6f2fd;--grideditor-action-focus-outline-color:#3393eb;--grideditor-action-hover-bg:#f2f8fe}.grideditor{display:grid;grid-template:"grideditor-control-top ." "grideditor-editor grideditor-control-right" "grideditor-control-bottom ." "grideditor-preview grideditor-preview" auto/minmax(auto,1fr);gap:var(--grideditor-grid-spacing)}.grideditor-control{justify-content:center;align-items:center;display:flex}.grideditor-control-top{grid-area:grideditor-control-top}.grideditor-control-right{grid-area:grideditor-control-right}.grideditor-control-bottom{grid-area:grideditor-control-bottom}.grideditor-editor{grid-area:grideditor-editor}.grideditor-editor-grid{display:grid;gap:1em;width:100%}.grideditor-preview{grid-area:grideditor-preview}.grideditor-preview typo3-t3editor-codemirror{border:1px solid #d7d7d7}.grideditor-cell{--grideditor-cell-col-start:var(--grideditor-cell-col, 1);--grideditor-cell-col-end:calc(var(--grideditor-cell-col, 1) + var(--grideditor-cell-colspan, 1));--grideditor-cell-row-start:var(--grideditor-cell-row, 1);--grideditor-cell-row-end:calc(var(--grideditor-cell-row, 1) + var(--grideditor-cell-rowspan, 1));grid-column:var(--grideditor-cell-col-start)/var(--grideditor-cell-col-end);grid-row:var(--grideditor-cell-row-start)/var(--grideditor-cell-row-end);height:100%;width:100%;display:flex;min-height:100px;flex-direction:column;border:1px solid var(--grideditor-cell-bg);background-color:var(--grideditor-cell-bg);border-radius:var(--grideditor-cell-border-radius);box-shadow:var(--grideditor-cell-shadow)}.grideditor-cell>*{width:100%}.grideditor-cell-actions{position:relative;flex-grow:1;min-height:calc(var(--grideditor-cell-spacing) + (var(--grideditor-action-size) + var(--grideditor-action-spacing)) * 3);min-width:calc(var(--grideditor-cell-spacing) + (var(--grideditor-action-size) + var(--grideditor-action-spacing)) * 3)}.grideditor-cell-info{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:.75rem;line-height:1.2em;padding:calc(var(--grideditor-cell-spacing)/ 2) var(--grideditor-cell-spacing);background-color:rgba(0,0,0,.05);border-bottom-left-radius:var(--grideditor-cell-border-radius);border-bottom-right-radius:var(--grideditor-cell-border-radius)}.grideditor-action{position:absolute;display:flex;justify-content:center;align-items:center;top:50%;left:50%;transform:translate(-50%,-50%);width:var(--grideditor-action-size);height:var(--grideditor-action-size);border-radius:2px;background-color:var(--grideditor-action-bg)}.grideditor-action:focus,.grideditor-action:hover{outline:0;background-color:var(--grideditor-action-hover-bg)}.grideditor-action:focus{z-index:1;background-color:var(--grideditor-action-focus-bg);outline:1px solid var(--grideditor-action-focus-outline-color);outline-offset:0}.grideditor-action-expand-down{top:calc(50% + var(--grideditor-action-size) + var(--grideditor-action-spacing))}.grideditor-action-expand-right{left:calc(50% + var(--grideditor-action-size) + var(--grideditor-action-spacing))}.grideditor-action-shrink-up{top:calc(50% - var(--grideditor-action-size) - var(--grideditor-action-spacing))}.grideditor-action-shrink-left{left:calc(50% - var(--grideditor-action-size) - var(--grideditor-action-spacing))}::-ms-clear{display:none}.has-change .checkbox,.has-change .checkbox-inline,.has-change .control-label,.has-change .form-check-input,.has-change .help-block,.has-change .radio,.has-change .radio-inline,.has-change.checkbox label,.has-change.checkbox-inline label,.has-change.form-check-label,.has-change.radio label,.has-change.radio-inline label{color:#6daae0}.has-change .form-control{border-color:#6daae0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-change .form-control:focus{border-color:#4392d7;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c1dbf2}.has-change .input-group-addon{color:#6daae0;background-color:#e9f2fa;border-color:#6daae0}.has-change .form-control-feedback{color:#6daae0}.has-change .thumbnail-status{border:1px solid #6daae0}.input-group-icon{vertical-align:middle}.input-group-icon img{max-height:18px}.input-group-addon{min-width:2.5rem}label .icon img{pointer-events:none}.form-control{min-width:120px}.form-control-adapt{width:auto;max-width:100%}.form-control-wrap{margin:.5rem 0}.form-control-holder{position:relative}.row>.form-group>.form-control-wrap{margin-bottom:0}.form-group .t3js-formengine-field-item{position:relative}.form-group .t3js-formengine-field-item>.t3js-charcounter-wrapper{left:0;position:absolute;top:100%;display:flex;margin:0 -2px}.form-group .t3js-formengine-field-item>.t3js-charcounter-wrapper .t3js-charcounter{margin:0 2px}.form-group .t3js-formengine-field-item>.t3js-charcounter-wrapper .t3js-charcounter-min{margin:0 2px}.form-group>.form-label,.form-group>label{font-weight:600;margin:0 0 .25rem;word-break:break-all}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{color:#737373}.form-control-icon{position:absolute;top:50%;left:15px;transform:translate(0,-50%);z-index:1;pointer-events:none}.form-control-icon+.form-control,.form-control-icon+.form-control-clearable .form-control{padding-left:3.25em}.form-group.has-error label:before{content:"";vertical-align:middle;-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M8 2c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6 2.7-6 6-6m0-1C4.1 1 1 4.1 1 8s3.1 7 7 7 7-3.1 7-7-3.1-7-7-7z'/%3e%3ccircle cx='8' cy='11' r='1'/%3e%3cpath d='M8.5 9h-1l-.445-4.45A.5.5 0 0 1 7.552 4h.896a.5.5 0 0 1 .497.55L8.5 9z'/%3e%3c/g%3e%3c/svg%3e");mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M8 2c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6 2.7-6 6-6m0-1C4.1 1 1 4.1 1 8s3.1 7 7 7 7-3.1 7-7-3.1-7-7-7z'/%3e%3ccircle cx='8' cy='11' r='1'/%3e%3cpath d='M8.5 9h-1l-.445-4.45A.5.5 0 0 1 7.552 4h.896a.5.5 0 0 1 .497.55L8.5 9z'/%3e%3c/g%3e%3c/svg%3e");background-color:#c83c3c;background-size:contain;display:inline-block;border-radius:50%;width:14px;height:14px}.form-group.has-error .btn-toolbar label:before{font-family:inherit;font-size:inherit;margin-right:inherit;text-align:inherit;content:"";color:inherit;display:block}.form-group.has-error .input-group-btn label{border-color:#c83c3c}.form-group.has-error .input-group-btn label:before{font-family:inherit;font-size:inherit;margin-right:inherit;text-align:inherit;content:"";color:inherit;display:block}select.form-select[multiple],select.form-select[size]:not([size="1"]){min-height:156px}select.form-select>optgroup{margin-top:9px}select.form-select>optgroup:first-child{margin-top:0}select.form-select option{padding-top:2px;padding-bottom:2px}select.icon-select option{padding-left:22px}.form-control-clearable{position:relative;border:0;padding:0}.form-control-clearable input[type=search]::-webkit-search-cancel-button{display:none}.form-control-clearable .form-control{padding-right:2.3em}.form-control-clearable .close{border:none;background-color:transparent;position:absolute;height:16px;z-index:3;top:50%;right:.5em;transform:translate(0,-50%);opacity:.2}.form-control-clearable .close:hover{opacity:.5}.form-control-clearable .close .icon{vertical-align:0}.form-control-clearable:focus{box-shadow:none;border-color:inherit}.form-inline .form-control-clearable{display:inline-block}.form-notice-capslock{position:absolute;right:25px;top:50%;margin-top:-10px;height:20px;width:20px;padding:3px;z-index:10;background-color:#fff}.form-notice-capslock>img{display:block;opacity:.5}.form-group-dashed+.form-group-dashed{padding-top:15px;border-top:1px dashed #ccc}.form-section{border:1px solid #ccc;background-color:#fafafa;padding:15px 12px 3px}.form-section+.form-section{margin-top:-1px}.tab-pane>.form-section:first-child{border-top:none}.form-section-headline{margin-top:0;margin-bottom:10px}.form-section-headline+.form-section-description{margin-top:-5px;margin-bottom:10px}.form-wizards-wrap{width:100%;display:grid;grid-template:"top . ." "main side-move side-control" "bottom . .";grid-template-rows:auto;grid-template-columns:1fr auto auto}.form-wizards-wrap>.form-wizards-element{grid-area:main;min-width:120px}.form-wizards-wrap>.form-wizards-element .col-icon img,.form-wizards-wrap>.form-wizards-element .inline-icon img{max-width:2em;max-height:2em}.form-wizards-wrap>.form-wizards-element .radio:not(.disabled) input[type=radio]{cursor:pointer}.form-wizards-wrap>.form-wizards-items-top{width:100%;grid-area:top}.form-wizards-wrap>.form-wizards-items-aside{align-self:flex-start;white-space:nowrap;padding-left:5px}.form-wizards-wrap>.form-wizards-items-aside--move{grid-area:side-move}.form-wizards-wrap>.form-wizards-items-aside--field-control{grid-area:side-control}.form-wizards-wrap>.form-wizards-items-bottom{grid-area:bottom}.form-wizards-wrap>.form-wizards-items-bottom .tablelist-item-nolink{padding:6px;display:inline-block}.form-wizards-wrap>.form-wizards-items-bottom:first-child{margin-top:4px}.form-irre-header{display:flex;align-items:center;margin:-5px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.form-irre-header-cell{vertical-align:middle;white-space:nowrap;padding:5px}.form-irre-header-button{display:flex;text-align:left;align-items:center;align-self:stretch;background:0 0;border:0;width:100%;margin-left:-15px;padding-left:20px}.form-irre-header-body{width:100%;font-weight:400;white-space:normal;padding-left:5px}.form-irre-header-body dd,.form-irre-header-body dl,.form-irre-header-body dt{margin-bottom:0}.form-irre-header-icon{padding-right:0}.form-irre-header-thumbnail{padding-right:5px}.form-irre-header-control{cursor:auto}.form-irre-header-control .btn-group>.btn{float:none}.form-multigroup-wrap{width:100%;display:flex}.form-multigroup-wrap .form-multigroup-item{width:50%;align-self:flex-start}.form-multigroup-wrap .form-multigroup-item+.form-multigroup-item{padding-left:5px}.form-multigroup-wrap .form-multigroup-item-wizard{margin-bottom:5px}.form-multigroup-wrap .form-multigroup-item-wizard+select.form-select[multiple],.form-multigroup-wrap .form-multigroup-item-wizard+select.form-select[size]{min-height:125px}.form-multigroup-wrap .form-wizards-wrap{width:100%}.checkbox-row,.radio-row{margin-top:10px;margin-bottom:5px}.checkbox-column,.radio-column{margin-bottom:5px}.checkbox-column>.checkbox,.checkbox-column>.form-check-input,.checkbox-column>.radio,.radio-column>.checkbox,.radio-column>.form-check-input,.radio-column>.radio{margin:0}.checkbox-inline.checkbox,.checkbox-inline.form-check-input,.checkbox-inline.radio,.radio-inline.checkbox,.radio-inline.form-check-input,.radio-inline.radio{display:block;margin-left:0;margin-right:10px;margin-bottom:10px;padding:0}@media (max-width:767px){.checkbox-inline.checkbox+.checkbox,.checkbox-inline.checkbox+.form-check-in,.checkbox-inline.checkbox+.radio,.checkbox-inline.form-check-input+.checkbox,.checkbox-inline.form-check-input+.form-check-in,.checkbox-inline.form-check-input+.radio,.checkbox-inline.radio+.checkbox,.checkbox-inline.radio+.form-check-in,.checkbox-inline.radio+.radio,.radio-inline.checkbox+.checkbox,.radio-inline.checkbox+.form-check-in,.radio-inline.checkbox+.radio,.radio-inline.form-check-input+.checkbox,.radio-inline.form-check-input+.form-check-in,.radio-inline.form-check-input+.radio,.radio-inline.radio+.checkbox,.radio-inline.radio+.form-check-in,.radio-inline.radio+.radio{margin-top:-5px}}@media (min-width:768px){.checkbox-inline.checkbox,.checkbox-inline.form-check-input,.checkbox-inline.radio,.radio-inline.checkbox,.radio-inline.form-check-input,.radio-inline.radio{display:inline-block;margin-top:10px}.checkbox-inline.checkbox label,.checkbox-inline.form-check-input label,.checkbox-inline.radio label,.radio-inline.checkbox label,.radio-inline.form-check-input label,.radio-inline.radio label{white-space:nowrap}}textarea.formengine-textarea{resize:none}.input-group>.form-control-clearable{flex:1 1 auto;width:1%;min-width:0}.form-control:not(.hidden)+.form-control-clearable{flex-grow:0;width:auto}.form-control.hidden+.close{display:none}.form-toggle{padding-left:2em;width:2em;color:rgba(0,0,0,.25)}.form-toggle:hover{cursor:pointer}.form-toggle input[type=checkbox]{border:0;width:16px;height:16px;background-size:contain;background-image:url("data:image/svg+xml, %3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M13 2c.6 0 1 .4 1 1v10c0 .6-.4 1-1 1H3c-.6 0-1-.4-1-1V3c0-.6.4-1 1-1h10m0-1H3c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2z'/%3e%3c/g%3e%3c/svg%3e")}.form-toggle input[type=checkbox]:hover{cursor:pointer}.form-toggle input[type=checkbox]:active{filter:brightness(100%)}.form-toggle input[type=checkbox]:checked{background-image:url("data:image/svg+xml, %3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M12.1 5.3l-.4-.3c-.1-.1-.3-.1-.4 0L6.6 9.8l-2-2c-.1-.1-.3-.1-.4 0l-.3.4c-.1.1-.1.3 0 .4L6 10.7l.4.3c.1.1.3.1.4 0l.4-.4 4.9-4.9c.1-.1.1-.3 0-.4z'/%3e%3cpath d='M13 2c.6 0 1 .4 1 1v10c0 .6-.4 1-1 1H3c-.6 0-1-.4-1-1V3c0-.6.4-1 1-1h10m0-1H3c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2z'/%3e%3c/g%3e%3c/svg%3e");background-color:#fff}.form-toggle input[type=checkbox]:disabled{opacity:.5}.sticky-form-actions{position:sticky;top:0;z-index:2;padding:calc(1rem / 2) 1rem;background:#fff}.modal-body .sticky-form-actions{margin-left:calc(var(--bs-modal-padding) * -1);margin-right:calc(var(--bs-modal-padding) * -1);margin-bottom:var(--bs-modal-padding);padding:calc(var(--bs-modal-padding)/ 2) var(--bs-modal-padding);border-bottom:var(--bs-modal-border-width) solid var(--bs-modal-border-color)}.modal-body .sticky-form-actions:first-child{transform:translateY(calc(var(--bs-modal-padding) * -1));margin-bottom:0}.multi-record-selection-actions-wrapper{min-height:26px;margin:.5rem 0}.input-group>.btn{display:flex;align-items:center}.media-new-content-element-wizard .media-left input{margin-left:2px}.localization-wizard .option{margin-bottom:4px}[data-bs-slide=localize-summary] .input-group{margin-bottom:4px}[data-bs-slide=localize-summary] .input-group .form-control{height:auto;font-weight:400;margin:0}[data-bs-slide=localize-summary] .localization-fieldset{margin-bottom:12px}[data-bs-slide=localize-summary] .localization-fieldset>label{padding:0 4px}[data-bs-slide=localize-summary] .localization-fieldset>label input[type=checkbox]{margin:0 6px}.recordlist{overflow:unset}.recordlist .recordlist-heading{font-weight:700;background-color:#d7d7d7;color:#5a5a5a}.recordlist .recordlist-heading a{color:inherit}.recordlist table tr td.deletePlaceholder{text-decoration:line-through}.recordlist .pagination{display:inline-flex}div.typo3-localizationLink,div.typo3-newRecordLink,div.typo3-synchronizationLink{display:inline}.t3-filelist-info-container{display:flex;min-height:300px;flex-direction:column;justify-content:center;align-items:center;margin-top:-2rem}.filelist-main .dropzone{position:absolute;cursor:pointer;margin:0;padding:0;top:var(--module-docheader-height);left:0;z-index:10;height:calc(100% - var(--module-docheader-height));width:100%;border:2px dashed #6daae0;background-color:rgba(222,235,255,.48);mix-blend-mode:normal;color:#333}.filelist-main .dropzone:hover{border-color:#6daae0}.filelist-main .dropzone .dropzone-close{top:.5rem;right:.5rem;height:2rem;width:2rem;font-size:1rem;line-height:1.5rem;background-color:#fff;color:#333}.filelist-main .dropzone .dropzone-close:hover{color:#fff;background-color:#c83c3c}.filelist-main .dropzone .dropzone-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;padding:1rem;box-shadow:0 .25rem .5rem rgba(0,0,0,.15)}pre.ts-hl{font-family:"Lucida Console","Lucida Sans Typewriter","Bitsream Vera Sans Mono",monospace}pre.ts-hl .ts-operator{color:#000;font-weight:700}pre.ts-hl .ts-value{color:#c00}pre.ts-hl .ts-objstr{color:#00c}pre.ts-hl .ts-value_copy{color:#060}pre.ts-hl .ts-default,pre.ts-hl .ts-ignored,pre.ts-hl .ts-value_unset{background-color:#6c6}pre.ts-hl .ts-comment{color:#666;font-style:italic}pre.ts-hl .ts-condition{background-color:maroon;color:#fff;font-weight:700}pre.ts-hl .ts-error{background-color:#ff0;border:1px red dashed;font-weight:700;color:#000}pre.ts-hl .ts-linenum{background-color:#eee;color:#212424}.access-legend{margin-bottom:18px}.access-legend .number{border:1px solid #000;border-radius:2px;width:16px;height:16px;display:inline-block;text-align:center;margin-right:5px;margin-left:10px;line-height:14px;font-weight:700}.access-legend .edge span{width:1px;height:10px;background:#000;display:block;margin-top:8px;margin-left:6px}.access-legend .edge span span{width:10px;height:1px;margin-left:1px}.access-legend .hr span{width:20px;height:1px;background:#000;display:block;margin-top:-1px;margin-left:-4px}.access-legend .t3-vr span{width:1px;height:20px;background:#000;margin-top:-2px;margin-left:6px;display:block}#tx_beuser_compare .list-tree-value{white-space:normal}.extensionmanager-is-loading{opacity:0!important}.extensionmanager-is-hidden{display:none!important}.extensionmanager-is-shown{display:block!important}.extension-list-last-updated{font-weight:700;padding-right:.4em;cursor:help}.extension-list th:nth-child(1),.extension-list th:nth-child(2){width:4%}.extension-list th:nth-child(3),.extension-list th:nth-child(4){width:30%}.extension-list th:nth-child(5),.extension-list th:nth-child(6),.extension-list th:nth-child(7){width:7%}.extension-list th:nth-child(8){width:11%}.extension-list tr.installed td{background-color:#ccdec2}.extension-list tr.available td{background-color:#e1e1aa}.extension-list tr.insecure,.extension-list tr.insecure td{background-color:#ffd9d9}.extension-list tr.outdated,.extension-list tr.outdated td{background-color:#d1d0ff}.extension-list tr.inactive,.extension-list tr.inactive td{color:#aaa}.extension-list-search{padding-right:2.3em}.extension-icon{height:16px;width:16px}#terTableWrapper{position:relative;margin-top:1em}#terTableWrapper .splash-receivedata{display:none;position:absolute;top:50px;left:0;right:0;text-align:center}.distribution-official-badge{position:absolute;bottom:0;right:.75em;transform:translate(0,25%)}.distribution-official-badge img{width:50px;display:block}@media (min-width:768px){.distribution-official-badge img{width:64px}}.distribution-image{display:block;max-height:225px;overflow:hidden}.distribution-detail-previewpane{margin-bottom:2em;max-width:100%}@media (min-width:768px){.distribution-detail-previewpane{float:left;margin-right:3em}}.distribution-detail-body{overflow:hidden;zoom:1}.distribution-detail-header{margin-bottom:2.5em}.distribution-detail-header .h1,.distribution-detail-header h1{margin-bottom:.5em}.distribution-detail-header p{padding:0;max-width:500px;margin-bottom:1.25em}.distribution-detail-actions{list-style:none;padding:0}.distribution-detail-actions li{margin:.25em 0}.help-view img{margin:1em 0}.help-copyright{margin-top:1em;padding-top:1em;border-top:1px solid rgba(0,0,0,.15)}.help-teaser{cursor:help!important}.help-has-link{cursor:pointer!important}#PageInformationControllerTable a[data-contextmenu-trigger]{margin-right:4px}.install-tool-init .logo-pageheader img{padding-bottom:3px;vertical-align:bottom}.install-tool-installer{overflow-y:auto}.install-tool-installer .typo3-message>.h4,.install-tool-installer .typo3-message>h4{margin-bottom:0}.install-tool-installer .typo3-message p{margin-top:9px}.install-tool-modal .panel-rst .panel-collapse,.install-tool-modal .panel-version .panel-collapse{position:relative;overflow:auto}.install-tool-modal .panel-rst .panel-heading,.install-tool-modal .panel-version .panel-heading{position:relative}.install-tool-modal .panel-rst .panel-heading button.link-action,.install-tool-modal .panel-version .panel-heading button.link-action{padding:0}.install-tool-modal .panel-rst .panel-heading strong,.install-tool-modal .panel-version .panel-heading strong{line-height:1.5em}.install-tool-modal .panel-rst .rst-tags,.install-tool-modal .panel-version .rst-tags{position:absolute;display:flex;gap:.5rem;top:calc(var(--panel-padding)/ 2);right:var(--panel-padding)}.install-tool-modal .panel-rst .rst-tags~.panel-body,.install-tool-modal .panel-version .rst-tags~.panel-body{padding-top:calc(var(--panel-padding) * 2)}.install-tool-modal .panel-rst .rst-links,.install-tool-modal .panel-version .rst-links{position:absolute;display:flex;gap:.5rem;bottom:calc(var(--panel-padding)/ 2);right:var(--panel-padding)}.install-tool-modal .panel-rst .rst-links~.panel-body,.install-tool-modal .panel-version .rst-links~.panel-body{padding-bottom:calc(var(--panel-padding) * 2)}.install-tool-modal .list-group-item a{display:block}.install-tool-modal .list-group-item.active a{color:#fff}.install-tool-modal a[data-bs-toggle=collapse]{display:block}.install-tool-modal hr{border-top:1px solid #ddd}.install-tool-modal .table .t3-languagePacks-inactive,.install-tool-modal .table .t3-languagePacks-inactive td{color:#aaa}.install-tool-modal .t3-install-displaytwinimageimages{border:1px solid #ccc;padding:10px}.install-tool-modal .t3-install-displaytwinimagetextarea pre{border-top:0}.install-tool-modal .bg-transparent-emulation{padding:10px;text-align:center;background:url(../Images/bg_transparent_emulation.png)}.install-tool-modal .bg-transparent-emulation img{max-width:300px}.install-tool-modal #phpinfo table{width:100%;table-layout:fixed;word-wrap:break-word;background:#fff}.install-tool-modal .upgrade_analysis_item_to_filter pre a{text-decoration:underline}.install-tool-modal .upgradeWizards-wizards-output .row-explanation{white-space:pre-wrap}.install-tool-modal ul{word-wrap:anywhere}.panel-success.risk-high{--panel-success-high-border-color:#409640;--panel-success-high-progress-bg:#107c10;--panel-success-high-heading-color:#000;--panel-success-high-heading-bg:#7cb77c;--panel-border-color:var(--panel-success-high-border-color);--panel-progress-bg:var(--panel-success-high-progress-bg);--panel-heading-color:var(--panel-success-high-heading-color);--panel-heading-bg:var(--panel-success-high-heading-bg)}.panel-success.risk-medium{--panel-success-medium-border-color:#70b070;--panel-success-medium-progress-bg:#107c10;--panel-success-medium-heading-color:#000;--panel-success-medium-heading-bg:#abd1ab;--panel-border-color:var(--panel-success-medium-border-color);--panel-progress-bg:var(--panel-success-medium-progress-bg);--panel-heading-color:var(--panel-success-medium-heading-color);--panel-heading-bg:var(--panel-success-medium-heading-bg)}.panel-warning.risk-high{--panel-warning-high-border-color:#edb564;--panel-warning-high-progress-bg:#e8a33d;--panel-warning-high-heading-color:#000;--panel-warning-high-heading-bg:#f2cc94;--panel-border-color:var(--panel-warning-high-border-color);--panel-progress-bg:var(--panel-warning-high-progress-bg);--panel-heading-color:var(--panel-warning-high-heading-color);--panel-heading-bg:var(--panel-warning-high-heading-bg)}.panel-warning.risk-medium{--panel-warning-medium-border-color:#f1c88b;--panel-warning-medium-progress-bg:#e8a33d;--panel-warning-medium-heading-color:#000;--panel-warning-medium-heading-bg:#f7dfbb;--panel-border-color:var(--panel-warning-medium-border-color);--panel-progress-bg:var(--panel-warning-medium-progress-bg);--panel-heading-color:var(--panel-warning-medium-heading-color);--panel-heading-bg:var(--panel-warning-medium-heading-bg)}.panel-danger.risk-high{--panel-danger-high-border-color:#d36363;--panel-danger-high-progress-bg:#c83c3c;--panel-danger-high-heading-color:#000;--panel-danger-high-heading-bg:#e19494;--panel-border-color:var(--panel-danger-high-border-color);--panel-progress-bg:var(--panel-danger-high-progress-bg);--panel-heading-color:var(--panel-danger-high-heading-color);--panel-heading-bg:var(--panel-danger-high-heading-bg)}.panel-danger.risk-medium{--panel-danger-medium-border-color:#de8a8a;--panel-danger-medium-progress-bg:#c83c3c;--panel-danger-medium-heading-color:#000;--panel-danger-medium-heading-bg:#ecbbbb;--panel-border-color:var(--panel-danger-medium-border-color);--panel-progress-bg:var(--panel-danger-medium-progress-bg);--panel-heading-color:var(--panel-danger-medium-heading-color);--panel-heading-bg:var(--panel-danger-medium-heading-bg)}.panel-info.risk-high{--panel-info-high-border-color:#8abbe6;--panel-info-high-progress-bg:#6daae0;--panel-info-high-heading-color:#000;--panel-info-high-heading-bg:#afd0ee;--panel-border-color:var(--panel-info-high-border-color);--panel-progress-bg:var(--panel-info-high-progress-bg);--panel-heading-color:var(--panel-info-high-heading-color);--panel-heading-bg:var(--panel-info-high-heading-bg)}.panel-info.risk-medium{--panel-info-medium-border-color:#a7ccec;--panel-info-medium-progress-bg:#6daae0;--panel-info-medium-heading-color:#000;--panel-info-medium-heading-bg:#cce1f4;--panel-border-color:var(--panel-info-medium-border-color);--panel-progress-bg:var(--panel-info-medium-progress-bg);--panel-heading-color:var(--panel-info-medium-heading-color);--panel-heading-bg:var(--panel-info-medium-heading-bg)}.localconf-list{display:flex;flex-direction:column;gap:1rem}.localconf-item{width:100%;border:1px solid #bebebe}.localconf-item.searchhit~.alert{display:none}.localconf-item-heading{padding:.5rem 1rem;background-color:#eee}.localconf-item-body{padding:1rem}.localconf-item-body>:first-child{margin-top:0}.localconf-item-body>:last-child{margin-bottom:0}.localconf-item-body .form-text{font-size:1em;margin-top:0}html{scroll-behavior:smooth}:target:before{content:"";display:block;height:80px;margin:-80px 0 0}:root{--pagemodule-grid-spacing:1rem;--pagemodule-grid-inner-spacing:1rem;--pagemodule-grid-cell-header-size:1em;--pagemodule-grid-cell-border-radius:4px;--pagemodule-grid-cell-bg:#f2f2f2;--pagemodule-grid-cell-restricted-bg:#fcf1e2;--pagemodule-grid-column-unused-bg:#fcf1e2;--pagemodule-element-spacing:1rem;--pagemodule-element-bg:#fff;--pagemodule-element-border-radius:2px;--pagemodule-element-box-shadow:0 1px 2px 1px rgba(0, 0, 0, .15);--pagemodule-element-warning-bg:#fcf1e2;--pagemodule-element-warning-border-color:#f6dab1;--pagemodule-element-hidden-bg:#f2f2f2;--pagemodule-dropzone-bg:#fcf1e2;--pagemodule-dropzone-possible-bg:#dbebdb}.t3-grid-table{border-collapse:separate;border-spacing:var(--pagemodule-grid-spacing);min-width:100%;table-layout:fixed}.t3-grid-container{margin:0 calc(var(--pagemodule-grid-spacing) * -1)}.t3-grid-cell{border-radius:var(--pagemodule-grid-cell-border-radius);background-color:var(--pagemodule-grid-cell-bg);padding:calc(var(--pagemodule-grid-inner-spacing) - var(--pagemodule-grid-spacing)) 0}.t3-grid-cell-restricted{background-color:var(--pagemodule-grid-cell-restricted-bg)}.t3-page-column-unused{background-color:var(--pagemodule-grid-column-unused-bg)}.t3-grid-cell-hidden{display:none}.t3-grid-cell-unassigned{background-image:repeating-linear-gradient(-45deg,rgba(0,0,0,.05),rgba(0,0,0,.05) 5px,transparent 5px,transparent 10px)}.t3-page-columns{min-width:100%;border:0}.t3-page-column{min-width:150px;max-width:300px}.t3-page-column-lang-name .h2,.t3-page-column-lang-name h2{margin:0}.t3-page-column-header{font-weight:700;margin:var(--pagemodule-element-spacing) var(--pagemodule-grid-inner-spacing);margin-right:calc(var(--pagemodule-grid-inner-spacing) * 2);position:relative;text-align:left;font-size:var(--pagemodule-grid-cell-header-size)}.t3-page-column-header a{position:relative}.t3-page-column-header-icons{transition:opacity .15s ease-in;opacity:.3;position:absolute;right:calc(var(--pagemodule-grid-inner-spacing) * -1);bottom:0}@media (prefers-reduced-motion:reduce){.t3-page-column-header-icons{transition:none}}.t3-page-column-header-icons:hover{opacity:1}.t3-page-lang-copyce{margin:var(--pagemodule-grid-spacing)}.t3-page-ce{display:block;position:relative;margin:var(--pagemodule-grid-spacing) var(--pagemodule-grid-inner-spacing);transition:height .4s ease-out;overflow:hidden}.t3-page-ce.active-drag{z-index:4500}.t3-page-ce-element{border:1px solid var(--pagemodule-element-bg);background-color:var(--pagemodule-element-bg);border-radius:var(--pagemodule-element-border-radius);box-shadow:var(--pagemodule-element-box-shadow);margin-bottom:var(--pagemodule-grid-spacing)}.t3-page-ce-hidden .t3-page-ce-element{opacity:.5;border:1px dashed rgba(0,0,0,.5);background-color:var(--pagemodule-element-hidden-bg);box-shadow:none;transition:opacity .3s ease-in-out}.t3-page-ce-hidden .t3-page-ce-element:hover{opacity:1}.t3-page-ce-warning .t3-page-ce-element{border:1px solid var(--pagemodule-element-warning-border-color);background-color:var(--pagemodule-element-warning-bg);box-shadow:none}.t3-page-ce-header{display:flex;align-items:center;gap:.5rem;padding:var(--pagemodule-element-spacing)}.t3-page-ce-header-left,.t3-page-ce-header-right{flex-shrink:0}.t3-page-ce-header-title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex-grow:1;font-weight:700}.t3-page-ce-body{padding:var(--pagemodule-grid-spacing);word-wrap:break-word;margin-top:calc(var(--pagemodule-grid-spacing) * -1)}.t3-page-ce-body:empty{display:none}.t3-page-ce-body img{max-width:100%;height:auto}.t3-page-ce-footer{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:.75rem;padding:calc(var(--pagemodule-grid-spacing)/ 2) var(--pagemodule-grid-spacing);background-color:rgba(0,0,0,.05);border-bottom-left-radius:var(--pagemodule-element-border-radius);border-bottom-right-radius:var(--pagemodule-element-border-radius)}.t3-page-ce-actions{text-align:center;z-index:2;height:40px}.t3-page-ce-dropzone{position:relative;top:0;z-index:297;border-radius:var(--pagemodule-element-border-radius);background-color:var(--pagemodule-dropzone-bg)}.t3-page-ce-dropzone.active{border:1px dashed rgba(0,0,0,.15);height:40px;width:100%}.t3-page-ce-dropzone.active.t3-page-ce-dropzone-possible{background-color:var(--pagemodule-dropzone-possible-bg);z-index:298}.element-preview-header:empty{display:none}.element-preview-header-status{font-size:10.5px;opacity:.5}.element-preview-header-date{font-size:10.5px}.element-preview-header-header{font-weight:700}.element-preview-header-subheader{font-weight:700}.element-preview-header+.element-preview-content{margin-top:.5rem}.element-preview-content:empty{display:none}.element-preview-content>:first-child{margin-top:0}.element-preview-content>:last-child{margin-bottom:0}.element-preview-content .preview-thumbnails{margin-top:.5rem}:root{--preview-thumbnails-size:64px}.preview-thumbnails{display:flex;flex-wrap:wrap;gap:.5rem}.preview-thumbnails-element{display:block}.preview-thumbnails-element-image{height:var(--preview-thumbnails-size);width:var(--preview-thumbnails-size);display:flex;background-color:rgba(0,0,0,.05);overflow:hidden;border-radius:2px;justify-content:center;align-items:center}.preview-thumbnails-element-image .icon{height:calc(var(--preview-thumbnails-size)/ 2);width:calc(var(--preview-thumbnails-size)/ 2)}.t3-page-ce-dragitem .t3-page-ce-header-draggable:hover{cursor:move}.draggable-dragging{position:absolute;z-index:299!important;opacity:.5;box-shadow:0 1px 24px rgba(0,0,0,.5)}.draggable-dragging .t3-page-ce-actions{display:none}.draggable-dragging .t3-page-ce-element{margin-bottom:0}.draggable-dragging .draggable-copy-message{font-size:10.5px;position:absolute;top:-1.25rem}.t3-new-content-element-wizard-window{background-color:#fafafa;padding:0}.t3-new-content-element-wizard-window .t3-new-content-element-wizard-title{background-color:#292929;color:#fff;padding:.625rem 1rem}.t3-new-content-element-wizard-window .t3-new-content-element-wizard-title .h2,.t3-new-content-element-wizard-window .t3-new-content-element-wizard-title h2{font-size:1rem;margin:0}.t3-new-content-element-wizard-window .t3-new-content-element-wizard-title+.nav-tabs{padding-top:0}.t3-new-content-element-wizard-window .t3-new-content-element-wizard-body{padding:.75rem}.t3-new-content-element-wizard-window .nav-tabs{padding:.75rem .75rem 0;background:0 0}.t3-new-content-element-wizard-window .panel{border:0;box-shadow:none}.t3-new-content-element-wizard-window .panel .panel-body{display:flex;flex-flow:row wrap;padding-top:0}.t3-new-content-element-wizard-window .panel .panel-body .media{margin-top:15px}@media (min-width:992px){.media-new-content-element-wizard{width:50%}}.tx_recycler_recycler tr.collapse{display:none}.tx_recycler_recycler tr.collapse.show{display:table-row}.tx_recycler_recycler .page-link{height:100%}.tstemplate-constanteditor .input-group.userTS .input-group-addon.colorbox{display:inline-block;height:100%;position:absolute}.tstemplate-tsobjectbrowser-content{overflow-x:auto}.tstemplate-tree-wrapper{padding:15px 12px}.tstemplate-tree-wrapper li{margin-top:8px}.tstemplate-tree-wrapper>ul>li:first-child{margin-top:0}.typo3-module-viewpage{background-color:#494949}.typo3-module-viewpage .module{background-color:transparent}.typo3-module-viewpage .module-body{text-align:center}.typo3-module-viewpage .module-body .typo3-messages{text-align:left}.typo3-module-viewpage .resizable-e,.typo3-module-viewpage .resizable-s,.typo3-module-viewpage .resizable-w{position:absolute;z-index:90}.typo3-module-viewpage .resizable-w{top:0;left:-5px;height:100%;width:5px}.typo3-module-viewpage .resizable-s{bottom:-5px;height:5px;width:100%}.typo3-module-viewpage .resizable-e{top:0;right:-5px;height:100%;width:5px}.viewpage-item{position:relative;display:inline-block;background-color:#292929;box-shadow:0 2px 0 rgba(0,0,0,.2);color:#fafafa}.viewpage-item iframe{display:block}.viewpage-topbar{height:40px;flex-shrink:0;padding:.75em 1em;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.viewpage-topbar-orientation a{color:#fafafa;opacity:.5;transition:all .2s ease-in-out}.viewpage-topbar-orientation a:hover{opacity:1}.viewpage-topbar-size input{background-color:transparent;padding-left:0;padding-right:0;border:0;border-bottom:1px solid rgba(0,120,230,.5);transition:all .5s ease-in-out;color:#fafafa;color-scheme:dark}.viewpage-topbar-size input:focus,.viewpage-topbar-size input:hover{outline:0;border-bottom-color:#0078e6}.viewpage-resizeable{background-color:#fafafa}.workspace-panel tr.collapsing{transition:none}.workspace-panel tr.collapse{display:none}.workspace-panel tr.collapse.show{display:table-row}.workspace-panel .page-link{height:100%}.workspace-state-unchanged{color:#000}.workspace-state-modified{color:#ff8700}.workspace-state-moved{color:#457fb8}.workspace-state-new{color:#3c9934}.workspace-state-hidden{color:#abaaaa}.workspace-state-deleted{color:#000;text-decoration:line-through}.workspace-legend{margin:5px;height:18px;color:#888}.workspace-legend dd,.workspace-legend dt{display:inline;overflow:hidden}.workspace-legend dd span{display:inline-block;padding:4px} \ No newline at end of file +.diff{background-color:#fff;border:1px solid #ccc;display:table}.diff-item{display:table-row}.diff-item+.diff-item{border-top:1px solid #ccc}.diff-item-result,.diff-item-title{padding:10px;display:table-cell}.diff-item-title{background-color:#fafafa;padding-right:10px;font-style:italic;white-space:nowrap}.diff-item-result{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;width:100%;white-space:pre-wrap;word-break:break-word;word-wrap:break-word}.diff-item-result del{color:#c80c05;background-color:#fff6f6;text-decoration:none;display:inline-block}.diff-item-result ins{color:#44a512;background-color:#ebfce3;text-decoration:none;display:inline-block}.diff-item-result.diff-item-result-inline{white-space:normal}:root{--module-bg:#fff;--module-color:inherit;--module-dark-bg:#333;--module-dark-color:#ccc;--module-docheader-height:67px;--module-docheader-zindex:300;--module-docheader-padding-y:5px;--module-docheader-padding-x:24px;--module-docheader-padding:var(--module-docheader-padding-y) var(--module-docheader-padding-x);--module-docheader-spacing-y:4px;--module-docheader-spacing-x:8px;--module-docheader-spacing:var(--module-docheader-spacing-y) var(--module-docheader-spacing-x);--module-docheader-bg:#eee;--module-docheader-border:#c3c3c3;--module-docheader-bar-height:26px;--module-docheader-scroll-offset:calc(-1 * (var(--module-docheader-bar-height) + var(--module-docheader-padding-y)));--module-body-padding-y:24px;--module-body-padding-x:24px;--module-body-padding:var(--module-body-padding-y) var(--module-body-padding-x)}.module{height:100%;width:100%;background-color:var(--module-bg);color:var(--module-color);overflow-y:auto}.module-dark{--module-color:var(--module-dark-color);--module-bg:var(--module-dark-bg)}.module-loading-indicator{position:fixed;min-height:5px;width:100%;z-index:999999}.module-loading-indicator.nprogress-custom-parent{position:fixed;top:0}.module-docheader{position:sticky;width:100%;top:0;left:0;display:flex;flex-direction:column;min-height:var(--module-docheader-height);z-index:var(--module-docheader-zindex);background-color:var(--module-docheader-bg);border-bottom:1px solid var(--module-docheader-border);padding:var(--module-docheader-padding);gap:var(--module-docheader-spacing);transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.module-docheader{transition:none}}.module-docheader-folded{transform:translateY(var(--module-docheader-scroll-offset))}.module-docheader .module-docheader-bar{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--module-docheader-spacing);min-height:var(--module-docheader-bar-height);line-height:var(--module-docheader-bar-height)}.module-docheader .module-docheader-bar label{margin-top:0;margin-bottom:0}.module-docheader .module-docheader-bar .form-group{margin:0}.module-docheader .module-docheader-bar-container{display:flex;gap:var(--module-docheader-spacing);flex-wrap:wrap}.module-body{padding:var(--module-body-padding)}.module-body>.callout:first-child{margin-top:0}.module-body>.container{padding-left:0;padding-right:0}.module-body .container-small{max-width:768px;margin:0 auto}:root{--panel-bg:#fff;--panel-border-color:#ccc;--panel-border-radius:var(--typo3-component-border-radius);--panel-border-width:var(--typo3-component-border-width);--panel-padding:1rem;--panel-header-padding-x:1rem;--panel-header-padding-y:.75rem;--panel-spacing:var(--typo3-spacing);--panel-box-shadow:var(--typo3-component-box-shadow);--panel-primary-border-color:#99c9f5;--panel-primary-progress-bg:#0078e6;--panel-primary-heading-color:#000;--panel-primary-heading-bg:#d9ebfb;--panel-secondary-border-color:#c7c7c7;--panel-secondary-progress-bg:rgb(115, 115, 115);--panel-secondary-heading-color:#000;--panel-secondary-heading-bg:#eaeaea;--panel-success-border-color:#9fcb9f;--panel-success-progress-bg:#107c10;--panel-success-heading-color:#000;--panel-success-heading-bg:#dbebdb;--panel-info-border-color:#c5ddf3;--panel-info-progress-bg:#6daae0;--panel-info-heading-color:#000;--panel-info-heading-bg:#e9f2fa;--panel-warning-border-color:#f6dab1;--panel-warning-progress-bg:#e8a33d;--panel-warning-heading-color:#000;--panel-warning-heading-bg:#fcf1e2;--panel-danger-border-color:#e9b1b1;--panel-danger-progress-bg:#c83c3c;--panel-danger-heading-color:#000;--panel-danger-heading-bg:#f7e2e2;--panel-light-border-color:#c4c4c4;--panel-light-progress-bg:gainsboro;--panel-light-heading-color:#000;--panel-light-heading-bg:whitesmoke;--panel-default-border-color:#c4c4c4;--panel-default-progress-bg:gainsboro;--panel-default-heading-color:#000;--panel-default-heading-bg:whitesmoke;--panel-notice-border-color:#adadad;--panel-notice-progress-bg:rgb(51, 51, 51);--panel-notice-heading-color:#000;--panel-notice-heading-bg:#e0e0e0;--panel-dark-border-color:#a5a5a5;--panel-dark-progress-bg:rgb(30, 30, 30);--panel-dark-heading-color:#000;--panel-dark-heading-bg:#dddddd}.panel-group{display:flex;flex-flow:column;overflow:hidden;margin-bottom:var(--panel-spacing);border-radius:var(--panel-border-radius);box-shadow:var(--panel-box-shadow)}.panel-group>.panel{border-radius:0;margin-bottom:0;box-shadow:none;margin-top:calc(var(--panel-border-width) * -1)}.panel-group>.panel:first-child{margin-top:0;border-top-left-radius:var(--panel-border-radius);border-top-right-radius:var(--panel-border-radius)}.panel-group>.panel:last-child{border-bottom-left-radius:var(--panel-border-radius);border-bottom-right-radius:var(--panel-border-radius)}.panel{position:relative;display:flex;flex-direction:column;overflow:hidden;min-width:0;word-wrap:break-word;background-clip:border-box;background-color:var(--panel-bg);border:var(--panel-border-width) solid var(--panel-border-color);border-radius:var(--panel-border-radius);box-shadow:var(--typo3-component-box-shadow);margin-bottom:var(--typo3-spacing);transition:all .2s ease-in-out;transition-property:box-shadow,border,transform}.panel>.table-fit{border:none}.panel-progress{display:none;position:absolute;top:0;left:0;height:3px;width:100%;z-index:1;background-color:transparent}.panel-progress .panel-progress-bar{display:block;height:100%;background-color:var(--panel-progress-bg,#0078e6)}.panel-has-progress>.panel-progress{display:block}.panel-heading{position:relative;color:var(--panel-heading-color);background-color:var(--panel-heading-bg);font-weight:700;padding:var(--panel-header-padding-y) var(--panel-header-padding-x)}.panel-heading .caret{transition:all .25s ease-in-out;border-top-color:var(--panel-heading-color)}@media (prefers-reduced-motion:reduce){.panel-heading .caret{transition:none}}.panel-collapsed .panel-heading .caret,.panel-heading .collapsed>.caret,.panel-heading .collapsed>.form-irre-header-icon .caret{transform:rotate(-90deg)}.panel-heading a,.panel-heading a:active,.panel-heading a:focus,.panel-heading a:hover{text-decoration:none;color:inherit}.panel-title{font-size:12px;margin-top:0;margin-bottom:0}.panel-body{padding:var(--panel-padding)}.panel-body>p>a{text-decoration:underline}.panel-body>:first-child{margin-top:0}.panel-body>:last-child{margin-bottom:0}.panel-footer{padding:var(--panel-padding)}.panel-table td:first-child,.panel-table th:first-child{padding-left:var(--panel-header-padding-x)}.panel-table td:last-child,.panel-table th:last-child{padding-right:var(--panel-header-padding-x)}.panel-condensed{--panel-padding:.5rem;--panel-header-padding-x:.5rem;--panel-header-padding-y:.5rem}.panel-collapsed .panel-collapse{display:none;visibility:hidden}.panel-tab{--panel-border-radius:0;border:1px solid #ccc;background-color:#fafafa}.panel-tab+.form-section,.panel-tab+.panel-tab{margin-top:-19px}.tab-pane>.panel-tab:first-child{border-top:none}.panel-primary{--panel-border-color:var(--panel-primary-border-color);--panel-progress-bg:var(--panel-primary-progress-bg);--panel-heading-color:var(--panel-primary-heading-color);--panel-heading-bg:var(--panel-primary-heading-bg)}.panel-secondary{--panel-border-color:var(--panel-secondary-border-color);--panel-progress-bg:var(--panel-secondary-progress-bg);--panel-heading-color:var(--panel-secondary-heading-color);--panel-heading-bg:var(--panel-secondary-heading-bg)}.panel-success{--panel-border-color:var(--panel-success-border-color);--panel-progress-bg:var(--panel-success-progress-bg);--panel-heading-color:var(--panel-success-heading-color);--panel-heading-bg:var(--panel-success-heading-bg)}.panel-info{--panel-border-color:var(--panel-info-border-color);--panel-progress-bg:var(--panel-info-progress-bg);--panel-heading-color:var(--panel-info-heading-color);--panel-heading-bg:var(--panel-info-heading-bg)}.panel-warning{--panel-border-color:var(--panel-warning-border-color);--panel-progress-bg:var(--panel-warning-progress-bg);--panel-heading-color:var(--panel-warning-heading-color);--panel-heading-bg:var(--panel-warning-heading-bg)}.panel-danger{--panel-border-color:var(--panel-danger-border-color);--panel-progress-bg:var(--panel-danger-progress-bg);--panel-heading-color:var(--panel-danger-heading-color);--panel-heading-bg:var(--panel-danger-heading-bg)}.panel-light{--panel-border-color:var(--panel-light-border-color);--panel-progress-bg:var(--panel-light-progress-bg);--panel-heading-color:var(--panel-light-heading-color);--panel-heading-bg:var(--panel-light-heading-bg)}.panel-default{--panel-border-color:var(--panel-default-border-color);--panel-progress-bg:var(--panel-default-progress-bg);--panel-heading-color:var(--panel-default-heading-color);--panel-heading-bg:var(--panel-default-heading-bg)}.panel-notice{--panel-border-color:var(--panel-notice-border-color);--panel-progress-bg:var(--panel-notice-progress-bg);--panel-heading-color:var(--panel-notice-heading-color);--panel-heading-bg:var(--panel-notice-heading-bg)}.panel-dark{--panel-border-color:var(--panel-dark-border-color);--panel-progress-bg:var(--panel-dark-progress-bg);--panel-heading-color:var(--panel-dark-heading-color);--panel-heading-bg:var(--panel-dark-heading-bg)}.panel-active{--panel-border-color:var(--panel-primary-border-color);--panel-progress-bg:var(--panel-primary-progress-bg);--panel-heading-color:var(--panel-primary-heading-color);--panel-heading-bg:var(--panel-primary-heading-bg)}.panel-feature{--panel-border-color:var(--panel-success-border-color);--panel-progress-bg:var(--panel-success-progress-bg);--panel-heading-color:var(--panel-success-heading-color);--panel-heading-bg:var(--panel-success-heading-bg)}.panel-important{--panel-border-color:var(--panel-info-border-color);--panel-progress-bg:var(--panel-info-progress-bg);--panel-heading-color:var(--panel-info-heading-color);--panel-heading-bg:var(--panel-info-heading-bg)}.panel-deprecation{--panel-border-color:var(--panel-warning-border-color);--panel-progress-bg:var(--panel-warning-progress-bg);--panel-heading-color:var(--panel-warning-heading-color);--panel-heading-bg:var(--panel-warning-heading-bg)}.panel-breaking{--panel-border-color:var(--panel-danger-border-color);--panel-progress-bg:var(--panel-danger-progress-bg);--panel-heading-color:var(--panel-danger-heading-color);--panel-heading-bg:var(--panel-danger-heading-bg)}.panel-collapse>.alert,.panel>.alert{margin:0;border:none;border-top:var(--panel-border-width) solid var(--panel-border-color);--bs-alert-padding-x:var(--panel-header-padding-x)}.panel-collapse>.form-section,.panel-collapse>.tab-content>.form-section,.panel-collapse>.tab-content>.tab-pane>.form-section,.panel-collapse>[role=tabpanel]>.tab-content>.form-section,.panel-collapse>[role=tabpanel]>.tab-content>.tab-pane>.form-section,.panel>.form-section,.panel>.tab-content>.form-section,.panel>.tab-content>.tab-pane>.form-section,.panel>[role=tabpanel]>.tab-content>.form-section,.panel>[role=tabpanel]>.tab-content>.tab-pane>.form-section{border-left:0;border-right:0;border-bottom:0}.panel-collapse>.nav-tabs,.panel-collapse>[role=tabpanel]>.nav-tabs,.panel>.nav-tabs,.panel>[role=tabpanel]>.nav-tabs{border-top:1px solid #ccc;padding-top:8px}.panel-collapse>.nav-tabs>li,.panel-collapse>[role=tabpanel]>.nav-tabs>li,.panel>.nav-tabs>li,.panel>[role=tabpanel]>.nav-tabs>li{margin-left:-1px}.panel-collapse>.table,.panel-collapse>.table-fit,.panel-collapse>.table-responsive>.table,.panel-collapse>.table-responsive>.table-fit,.panel>.table,.panel>.table-fit,.panel>.table-responsive>.table,.panel>.table-responsive>.table-fit{margin-bottom:0;border-left:0;border-right:0;border-bottom:0}.panel label,.panel-collapse label{margin-bottom:0}.form-check .form-check-input{opacity:1}.form-check .form-check-spinner{float:left;margin-left:-1.5em;margin-top:.25em}.form-check.form-check-type-icon-toggle .form-check-input{opacity:0}.form-check .form-check-label{position:relative;display:inline-flex;align-items:baseline;padding:0;min-height:0;transition:all .3s ease-in-out}.form-check .form-check-label-icon,.form-check .form-check-label-switch{flex-shrink:0;transition:all .3s ease-in-out}.form-check:not(.disabled) .form-check-label-icon,.form-check:not(.disabled) .form-check-label-switch{cursor:pointer}.form-check input+.help-link{margin-left:.5rem;font-weight:400}.form-check .form-check-input:disabled+.form-check-label{opacity:.5}.form-switch .form-check-input{background-color:#f4f4f4;height:16px;cursor:pointer}.form-switch .form-check-input:checked{border-color:#bbb;background-color:#79a548}.form-switch .form-check-input:focus{border-color:#aaa;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,0,0,.35)}.form-switch .form-check-label{line-height:1.8em}.form-check-type-labeled-toggle{padding-left:0}.form-check-type-labeled-toggle .form-check-input{display:none}.form-check-type-labeled-toggle .form-check-label-switch{height:24px;background-color:#e74856;border-radius:2px;margin-right:.5rem;border:1px solid rgba(0,0,0,.3);color:#fff;display:inline-flex;flex-direction:column;line-height:22px;text-align:center}.form-check-type-labeled-toggle .form-check-label-switch-checked,.form-check-type-labeled-toggle .form-check-label-switch-unchecked{padding-left:8px;padding-right:8px;flex-grow:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.form-check-type-labeled-toggle .form-check-label-switch-checked{order:2;display:none}.form-check-type-labeled-toggle .form-check-label-switch-unchecked{order:1;display:block}.form-check-type-labeled-toggle .form-check-input:checked+.form-check-label .form-check-label-switch{background-color:#79a548}.form-check-type-labeled-toggle .form-check-input:checked+.form-check-label .form-check-label-switch .form-check-label-switch-checked{order:1;display:block}.form-check-type-labeled-toggle .form-check-input:checked+.form-check-label .form-check-label-switch .form-check-label-switch-unchecked{order:2;display:none}.form-check-type-labeled-toggle .form-check-input:focus+.form-check-label .form-check-label-switch{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,0,0,.35);border:1px solid rgba(0,0,0,.45)}.form-check-type-icon-toggle{padding-left:0}.input-group .form-check-type-icon-toggle .form-label,.input-group .form-check-type-icon-toggle label,.input-group .form-check-type-icon-toggle.form-check{margin-bottom:0}.form-check-type-icon-toggle .form-check-label-icon{border-radius:2px;height:24px;width:24px;padding-top:2px;padding-bottom:2px;text-align:center;background-color:#dadada;color:#333;border:1px solid rgba(0,0,0,.3)}.input-group .form-check-type-icon-toggle .form-check-label-icon{width:revert;height:revert;padding:6px}.form-check-type-icon-toggle:not(.disabled) .form-check-label-icon{cursor:pointer}.form-check-type-icon-toggle .form-check-label-text{padding-left:.5rem}.form-check-type-icon-toggle .form-check-label-icon-checked{display:none}.form-check-type-icon-toggle .form-check-label-icon-unchecked{display:inline-block}.form-check-type-icon-toggle .form-check-input:checked+.form-check-label .form-check-label-icon{background-color:#79a548;color:#fff}.form-check-type-icon-toggle .form-check-input:checked+.form-check-label .form-check-label-icon-checked{display:inline-block}.form-check-type-icon-toggle .form-check-input:checked+.form-check-label .form-check-label-icon-unchecked{display:none}.form-check-type-icon-toggle .form-check-input:focus+.form-check-label .form-check-label-icon{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,0,0,.35);border:1px solid rgba(0,0,0,.45)}.simpletable{padding:0;margin-bottom:1.5em}.simpletable td,.simpletable th{padding:.25em 1em}.simpletable td:first-child,.simpletable th:first-child{padding-left:0}.simpletable td:last-child,.simpletable th:last-child{padding-right:0}.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chosen-container *{box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15);clip:rect(0,0,0,0)}.chosen-container.chosen-with-drop .chosen-drop{clip:auto}.chosen-container a{cursor:pointer}.chosen-container .chosen-single .group-name,.chosen-container .search-choice .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#999}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:2px;background-color:#fff;background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;font-size:1px}.chosen-container-single .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;font-size:1em;font-family:sans-serif;line-height:normal}.chosen-container-single .chosen-drop{margin-top:-1px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;clip:rect(0,0,0,0)}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#e8a33d;color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto;border:1px solid #aaa;background-color:#fff;cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;height:25px;outline:0;border:0!important;background:0 0!important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;width:25px}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:4px 20px 4px 5px;max-width:100%;background-color:#e8a33d;background-clip:padding-box;color:#fff;line-height:16px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:3px;right:0;display:block;width:16px;height:16px}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{text-decoration:none}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:after{content:"";vertical-align:middle;-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M11.9 5.5 9.4 8l2.5 2.5c.2.2.2.5 0 .7l-.7.7c-.2.2-.5.2-.7 0L8 9.4l-2.5 2.5c-.2.2-.5.2-.7 0l-.7-.7c-.2-.2-.2-.5 0-.7L6.6 8 4.1 5.5c-.2-.2-.2-.5 0-.7l.7-.7c.2-.2.5-.2.7 0L8 6.6l2.5-2.5c.2-.2.5-.2.7 0l.7.7c.2.2.2.5 0 .7z'/%3e%3c/g%3e%3c/svg%3e");mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M11.9 5.5 9.4 8l2.5 2.5c.2.2.2.5 0 .7l-.7.7c-.2.2-.5.2-.7 0L8 9.4l-2.5 2.5c-.2.2-.5.2-.7 0l-.7-.7c-.2-.2-.2-.5 0-.7L6.6 8 4.1 5.5c-.2-.2-.2-.5 0-.7l.7-.7c.2-.2.5-.2.7 0L8 6.6l2.5-2.5c.2-.2.5-.2.7 0l.7.7c.2.2.2.5 0 .7z'/%3e%3c/g%3e%3c/svg%3e");background-color:#fff;background-size:contain;display:inline-block;width:16px;height:16px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.input-group .chosen-container{display:flex;flex:1 1 auto;width:auto!important}.input-group .chosen-container .chosen-choices{border:1px solid #bbb;border-radius:.125rem}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:0 0}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}.cropper-container{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.cropper-container img{display:block;image-orientation:0deg!important;height:100%;width:100%;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal{position:absolute;top:0;right:0;bottom:0;left:0}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;width:100%;overflow:hidden;outline:1px solid #69f;outline-color:rgba(102,153,255,.75)}.cropper-dashed{position:absolute;display:block;border:0 dashed #fff;opacity:.5}.cropper-dashed.dashed-h{top:33.3333333333%;left:0;width:100%;height:33.3333333333%;border-top-width:1px;border-bottom-width:1px}.cropper-dashed.dashed-v{top:0;left:33.3333333333%;width:33.3333333333%;height:100%;border-right-width:1px;border-left-width:1px}.cropper-face,.cropper-line,.cropper-point{position:absolute;display:block;opacity:.1;height:100%;width:100%}.cropper-face{top:0;left:0;cursor:move;background-color:#fff}.cropper-line{background-color:#69f}.cropper-line.line-e{top:0;right:-3px;width:5px;cursor:e-resize}.cropper-line.line-n{top:-3px;left:0;height:5px;cursor:n-resize}.cropper-line.line-w{top:0;left:-3px;width:5px;cursor:w-resize}.cropper-line.line-s{bottom:-3px;left:0;height:5px;cursor:s-resize}.cropper-point{height:5px;width:5px;background-color:#69f;opacity:.75}.cropper-point.point-e{top:50%;right:-3px;margin-top:-3px;cursor:e-resize}.cropper-point.point-n{top:-3px;left:50%;margin-left:-3px;cursor:n-resize}.cropper-point.point-w{top:50%;left:-3px;margin-top:-3px;cursor:w-resize}.cropper-point.point-s{bottom:-3px;left:50%;margin-left:-3px;cursor:s-resize}.cropper-point.point-ne{top:-3px;right:-3px;cursor:ne-resize}.cropper-point.point-nw{top:-3px;left:-3px;cursor:nw-resize}.cropper-point.point-sw{bottom:-3px;left:-3px;cursor:sw-resize}.cropper-point.point-se{right:-3px;bottom:-3px;height:20px;width:20px;cursor:se-resize;opacity:1}.cropper-point.point-se:before{position:absolute;right:-50%;bottom:-50%;display:block;height:200%;width:200%;content:" ";background-color:#69f;opacity:0}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;width:5px;opacity:.75}}.cropper-invisible{opacity:0}.cropper-hide{position:fixed;top:0;left:0;z-index:-1;width:auto!important;height:auto!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;opacity:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;touch-action:none}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.sortable-ghost{opacity:.4!important}th[role=columnheader]:not([data-sort-method=none]){cursor:pointer;position:relative;background-clip:padding-box}th[role=columnheader]:not([data-sort-method=none]):after{content:"";position:absolute;margin:7px 0 0 3px;border-width:4px 4px 0;border-style:solid;border-color:#404040 transparent;visibility:hidden;opacity:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}th[role=columnheader]:not([data-sort-method=none]):hover:after{visibility:visible;opacity:1}th[aria-sort=descending]:not([data-sort-method=none]):after{border-width:0 4px 4px}th[aria-sort]:not([data-sort-method=none]):after{visibility:visible;opacity:.4}#nprogress{pointer-events:none}#nprogress .bar{background:#ff8700;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;padding:0;box-shadow:0 0 10px #ff8700,0 0 5px #ff8700;opacity:1;transform:rotate(3deg) translate(0,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#ff8700;border-left-color:#ff8700;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.minicolors{position:relative}.userTS .minicolors{position:absolute}.userTS .minicolors-panel{margin-top:31px}.userTS .minicolors-swatch{z-index:100000}.minicolors-sprite{background-image:url(../Images/colorpicker/jquery.minicolors.png)}.minicolors-swatch{position:absolute;vertical-align:middle;background-position:-80px 0;cursor:text;padding:0;margin:0;display:inline-block;top:50%;left:6px;z-index:2;transform:translate(0,-50%);width:20px;height:20px;border-radius:1px}.minicolors-swatch-color{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:inherit}.minicolors-input{float:none;padding-left:32px}.minicolors-panel{margin-top:1px;overflow:hidden;border-radius:.125rem;position:absolute;width:173px;height:152px;background:#fff;border:solid 1px #bbb;box-shadow:0 0 20px rgba(0,0,0,.2);z-index:99999;box-sizing:content-box;display:none}.minicolors-panel.minicolors-with-swatches{height:182px}.minicolors-panel.minicolors-visible{display:block}.minicolors-position-top .minicolors-panel{top:-154px}.minicolors-position-right .minicolors-panel{right:0}.minicolors-position-bottom .minicolors-panel{top:auto}.minicolors-position-left .minicolors-panel{left:0}.minicolors-with-opacity .minicolors-panel{width:194px}.minicolors .minicolors-grid{position:absolute;top:1px;left:1px;width:150px;height:150px;background-position:-120px 0;cursor:crosshair}.minicolors .minicolors-grid-inner{position:absolute;top:0;left:0;width:150px;height:150px}.minicolors-slider-saturation .minicolors-grid{background-position:-420px 0}.minicolors-slider-saturation .minicolors-grid-inner{background-position:-270px 0;background-image:inherit}.minicolors-slider-brightness .minicolors-grid{background-position:-570px 0}.minicolors-slider-brightness .minicolors-grid-inner{background-color:#000}.minicolors-slider-wheel .minicolors-grid{background-position:-720px 0}.minicolors-opacity-slider,.minicolors-slider{position:absolute;top:1px;left:152px;width:20px;height:150px;background-color:#fff;background-position:0 0;cursor:row-resize}.minicolors-slider-saturation .minicolors-slider{background-position:-60px 0}.minicolors-slider-brightness .minicolors-slider{background-position:-20px 0}.minicolors-slider-wheel .minicolors-slider{background-position:-20px 0}.minicolors-opacity-slider{left:173px;background-position:-40px 0;display:none}.minicolors-with-opacity .minicolors-opacity-slider{display:block}.minicolors-grid .minicolors-picker{position:absolute;top:70px;left:70px;width:12px;height:12px;border:solid 1px #000;border-radius:10px;margin-top:-6px;margin-left:-6px;background:0 0}.minicolors-grid .minicolors-picker>div{position:absolute;top:0;left:0;width:8px;height:8px;border-radius:8px;border:solid 2px #fff;box-sizing:content-box}.minicolors-picker{position:absolute;top:0;left:0;width:18px;height:2px;background:#fff;border:solid 1px #000;margin-top:-2px;box-sizing:content-box}.minicolors-swatches,.minicolors-swatches li{margin:0;padding:0;list-style:none;overflow:hidden;position:absolute;top:157px;left:5px}.minicolors-swatches .minicolors-swatch{position:relative;float:left;cursor:pointer;margin:0 4px 0 0;top:0;left:0;width:20px;height:20px}.minicolors-with-opacity .minicolors-swatches .minicolors-swatch{margin-right:7px}.minicolors-swatch.selected{border-color:#000}:root{--flatpickr-bar-size:40px;--flatpickr-grid-size:32px;--flatpickr-grid-spacing:2px;--flatpickr-width:calc((var(--flatpickr-grid-size) * 7) + (var(--flatpickr-grid-spacing) * 10) + 2px)}.flatpickr-calendar{opacity:0;display:none;text-align:center;visibility:hidden;padding:0;animation:none;direction:ltr;color:var(--typo3-component-color);border:var(--typo3-component-border-width) solid var(--typo3-component-border-color);border-radius:var(--typo3-component-border-radius);font-size:var(--typo3-component-font-size);position:absolute;width:var(--flatpickr-width);touch-action:manipulation;background:var(--typo3-component-bg);box-shadow:var(--typo3-component-box-shadow)}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar:after,.flatpickr-calendar:before{position:absolute;display:block;pointer-events:none;border:6px solid transparent;content:"";height:0;width:0;left:22px}.flatpickr-calendar.inline,.flatpickr-calendar.open{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:200}.flatpickr-calendar.open.animate{animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:199;display:block}.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:var(--typo3-component-bg)}.flatpickr-calendar.arrowTop:after{border-bottom-color:var(--typo3-component-bg)}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:var(--typo3-component-bg)}.flatpickr-calendar.arrowBottom:after{border-top-color:var(--typo3-component-bg)}.flatpickr-calendar.hasTime .flatpickr-innerContainer{border-bottom:var(--typo3-component-border-width) solid var(--typo3-component-border-color);margin-bottom:1px}.flatpickr-calendar .flatpickr-am-pm:hover,.flatpickr-calendar .flatpickr-next-month:hover,.flatpickr-calendar .flatpickr-prev-month:hover,.flatpickr-calendar input:hover,.flatpickr-calendar select:hover{color:var(--typo3-component-hover-color);background:var(--typo3-component-hover-bg);outline:1px solid var(--typo3-component-hover-border-color);outline-offset:-1px}.flatpickr-calendar .flatpickr-am-pm:focus,.flatpickr-calendar .flatpickr-next-month:focus,.flatpickr-calendar .flatpickr-prev-month:focus,.flatpickr-calendar input:focus,.flatpickr-calendar select:focus{color:var(--typo3-component-focus-color);background:var(--typo3-component-focus-bg);outline:1px solid var(--typo3-component-focus-border-color);outline-offset:-1px}.flatpickr-calendar .flatpickr-am-pm[disabled],.flatpickr-calendar .flatpickr-next-month[disabled],.flatpickr-calendar .flatpickr-prev-month[disabled],.flatpickr-calendar input[disabled],.flatpickr-calendar select[disabled]{color:var(--typo3-component-disabled-color);background:var(--typo3-component-disabled-bg);outline:1px solid var(--typo3-component-disabled-border-color);outline-offset:-1px;pointer-events:none}.flatpickr-calendar .flatpickr-am-pm::-ms-clear,.flatpickr-calendar .flatpickr-next-month::-ms-clear,.flatpickr-calendar .flatpickr-prev-month::-ms-clear,.flatpickr-calendar input::-ms-clear,.flatpickr-calendar select::-ms-clear{display:none}.flatpickr-calendar .flatpickr-am-pm::-webkit-inner-spin-button,.flatpickr-calendar .flatpickr-am-pm::-webkit-outer-spin-button,.flatpickr-calendar .flatpickr-next-month::-webkit-inner-spin-button,.flatpickr-calendar .flatpickr-next-month::-webkit-outer-spin-button,.flatpickr-calendar .flatpickr-prev-month::-webkit-inner-spin-button,.flatpickr-calendar .flatpickr-prev-month::-webkit-outer-spin-button,.flatpickr-calendar input::-webkit-inner-spin-button,.flatpickr-calendar input::-webkit-outer-spin-button,.flatpickr-calendar select::-webkit-inner-spin-button,.flatpickr-calendar select::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;appearance:none}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:flex;padding:1px;border-bottom:1px solid var(--typo3-component-border-color)}.flatpickr-month{position:relative;color:var(--typo3-component-color);fill:var(--typo3-component-color);height:var(--flatpickr-bar-size);line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-grow:1;overflow:hidden;align-items:center;justify-content:center}.flatpickr-next-month,.flatpickr-prev-month{display:flex;justify-content:center;align-items:center;text-decoration:none;cursor:pointer;height:var(--flatpickr-bar-size);width:var(--flatpickr-bar-size);z-index:3;color:inherit;fill:currentColor;-webkit-user-select:none;-moz-user-select:none;user-select:none}.flatpickr-next-month svg,.flatpickr-prev-month svg{display:block;width:14px;height:14px}.flatpickr-next-month svg path,.flatpickr-prev-month svg path{transition:fill .1s}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%;padding:0 .5em}.numInputWrapper span{color:inherit;position:absolute;right:2px;width:12px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer}.numInputWrapper span svg path{color:currentColor}.numInputWrapper span:active,.numInputWrapper span:hover{color:var(--typo3-component-hover-color);background:var(--typo3-component-hover-bg)}.numInputWrapper span:focus{color:var(--typo3-component-focus-color);background:var(--typo3-component-focus-bg)}.numInputWrapper span:after{display:block;content:"";position:absolute;top:calc(50% - 2px)}.numInputWrapper span.arrowUp{top:2px}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid currentColor}.numInputWrapper span.arrowDown{bottom:2px}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid currentColor}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{display:flex;gap:1em;font-weight:300;color:inherit;padding:0;line-height:1;justify-content:center;height:var(--flatpickr-bar-size)}.flatpickr-current-month .numInputWrapper{width:5em}.flatpickr-current-month .cur-year{background:0 0;color:var(--typo3-component-color);border:1px solid transparent;border-radius:0;display:block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:100%}.flatpickr-current-month .flatpickr-monthDropdown-months{-webkit-appearance:menulist;-moz-appearance:menulist;appearance:menulist;background:0 0;border:none;border-radius:0;color:var(--typo3-component-color);cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:100%;line-height:inherit;position:relative;vertical-align:initial;width:auto;padding:0 .5em}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:var(--typo3-component-bg);padding:0}.flatpickr-weekdays{height:var(--flatpickr-grid-size)}.flatpickr-weekdaycontainer{display:flex;flex-wrap:wrap;width:var(--flatpickr-width);gap:var(--flatpickr-grid-spacing);padding:0 calc(var(--flatpickr-grid-spacing) * 2)}.flatpickr-weekday{cursor:default;display:block;font-size:90%;background:0 0;color:var(--typo3-component-color);text-align:center;height:var(--flatpickr-grid-size);width:var(--flatpickr-grid-size);line-height:var(--flatpickr-grid-size);font-weight:bolder}.flatpickr-weekwrapper{box-shadow:1px 0 0 var(--typo3-component-border-color)}.flatpickr-weeks{display:flex;flex-wrap:wrap;gap:var(--flatpickr-grid-spacing);padding:calc(var(--flatpickr-grid-spacing) * 2) 0}.flatpickr-weeks .flatpickr-day{--flatpickr-day-bg:transparent!important;--flatpickr-day-color:var(--typo3-component-disabled-color)!important;--flatpickr-day-border-color:transparent!important;cursor:default!important}.flatpickr-days{position:relative;overflow:hidden;display:flex;align-items:flex-start;width:var(--flatpickr-width)}.dayContainer{display:flex;flex-wrap:wrap;width:var(--flatpickr-width);gap:var(--flatpickr-grid-spacing);padding:calc(var(--flatpickr-grid-spacing) * 2);transform:translate3d(0,0,0);opacity:1}.dayContainer+.dayContainer{box-shadow:-1px 0 0 var(--typo3-component-border-color)}.flatpickr-day{display:block;position:relative;text-align:center;border:1px solid var(--flatpickr-day-border-color,transparent);border-radius:var(--typo3-component-border-radius);color:var(--flatpickr-day-color,inherit);background:var(--flatpickr-day-bg,transparent);font-weight:400;width:var(--flatpickr-grid-size);height:var(--flatpickr-grid-size);line-height:var(--flatpickr-grid-size)}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:hover{cursor:pointer;--flatpickr-day-color:var(--typo3-component-hover-color);--flatpickr-day-bg:var(--typo3-component-hover-bg);--flatpickr-day-border-color:var(--typo3-component-hover-border-color)}.flatpickr-day.nextMonthDay:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day:focus{cursor:pointer;--flatpickr-day-color:var(--typo3-component-focus-color);--flatpickr-day-bg:var(--typo3-component-focus-bg);--flatpickr-day-border-color:var(--typo3-component-focus-border-color)}.flatpickr-day.today{--flatpickr-day-color:var(--typo3-component-active-color);--flatpickr-day-bg:var(--typo3-component-active-bg);--flatpickr-day-border-color:var(--typo3-component-active-border-color)}.flatpickr-day.today:hover{--flatpickr-day-color:var(--typo3-component-hover-color);--flatpickr-day-bg:var(--typo3-component-hover-bg)}.flatpickr-day.today:focus{--flatpickr-day-color:var(--typo3-component-focus-color);--flatpickr-day-bg:var(--typo3-component-focus-bg)}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{--flatpickr-day-color:var(--typo3-component-active-color);--flatpickr-day-bg:var(--typo3-component-active-bg);--flatpickr-day-border-color:var(--typo3-component-active-border-color)}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:var(--typo3-component-border-radius) 0 0 var(--typo3-component-border-radius)}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 var(--typo3-component-border-radius) var(--typo3-component-border-radius) 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 0 var(--typo3-component-active-bg)}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:var(--typo3-component-border-radius)}.flatpickr-day.inRange{border-radius:0}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{--flatpickr-day-color:var(--typo3-component-disabled-color);--flatpickr-day-bg:var(--typo3-component-disabled-bg);--flatpickr-day-border-color:var(--typo3-component-disabled-border-color);cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{--flatpickr-day-color:var(--typo3-component-disabled-color);--flatpickr-day-bg:var(--typo3-component-disabled-bg);--flatpickr-day-border-color:var(--typo3-component-disabled-border-color);cursor:not-allowed}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 0 var(--typo3-component-active-bg),5px 0 0 var(--typo3-component-active-bg)}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-innerContainer{display:flex}.flatpickr-time{display:flex;gap:1px;text-align:center;padding:1px}.flatpickr-time .numInputWrapper{flex:1;width:40%;height:var(--flatpickr-bar-size)}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:0 0;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:var(--typo3-component-color);font-size:var(--typo3-component-font-size);position:relative;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{height:var(--flatpickr-bar-size);line-height:var(--flatpickr-bar-size);color:var(--typo3-component-color);font-weight:700;width:2%;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-self:center}.flatpickr-time .flatpickr-am-pm{width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-input[readonly]{cursor:pointer}@keyframes fpFadeInDown{from{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translate3d(0,0,0)}}:root{--svgtree-drag-info-bg:#fff;--svgtree-drag-info-color:#000;--svgtree-drag-info-icon-size:16px;--svgtree-drag-info-border-radius:2px;--svgtree-drag-info-padding-y:.5rem;--svgtree-drag-info-padding-x:.75rem;--svgtree-drag-dropindicator-color:#3393eb;--svgtree-structure-line-color:#ddd;--svgtree-node-color:#000;--svgtree-node-bg:transparent;--svgtree-node-border-color:transparent;--svgtree-node-version-bg:rgba(247, 200, 152, 0.5);--svgtree-node-version-border-color:#c6a07a;--svgtree-node-focus-bg:rgba(230, 242, 253, 0.5);--svgtree-node-focus-border-color:#3393eb;--svgtree-node-hover-bg:rgba(250, 250, 250, 0.5);--svgtree-node-hover-border-color:#d7d7d7;--svgtree-node-selected-bg:rgba(255, 255, 255, 0.5);--svgtree-node-selected-border-color:#d7d7d7;--svgtree-highlight-color:#0078e6;--svgtree-info-bg:#c5ddf3;--svgtree-info-color:#000}.svg-tree{position:relative}.svg-tree-loader{display:none;position:absolute;width:100%;height:calc(100% - var(--module-docheader-height));top:var(--module-docheader-height);left:0;text-align:center;background:rgba(0,0,0,.3);z-index:3000;-webkit-user-select:none;-moz-user-select:none;user-select:none}.element-browser .svg-tree-loader{height:calc(100% - 39px);top:39px}.svg-tree-loader>*{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}.node-loader{display:none;position:absolute;width:100%;height:20px;top:0;left:0;text-align:center;background:rgba(0,0,0,.3);z-index:3000}.node-loader>*{position:absolute;top:0;bottom:0;right:10px;margin:auto}.node-toggle-icon{transform-origin:50% 50%}.node-toggle--expanded .node-toggle-icon{transform:rotate(90deg)}.svg-tree-element{display:flex;flex-direction:column;border:1px solid rgba(0,0,0,.25)}.svg-tree-element>.svg-tree-wrapper{flex:1 0 0}.svg-tree-element typo3-backend-form-selecttree-toolbar{display:block;background-color:#fafafa;position:sticky;top:0;padding:.5em;border-bottom:1px solid rgba(0,0,0,.25)}.svg-tree-wrapper{display:block;position:relative;overflow-y:scroll}.svg-tree-wrapper>svg{margin-top:15px}.svg-tree-wrapper path.link{fill:none;shape-rendering:crispEdges;stroke:var(--svgtree-structure-line-color);stroke-width:1;pointer-events:none}.svg-tree-wrapper .node-bg{fill:var(--svgtree-node-bg);stroke:var(--svgtree-node-border-color);stroke-width:1px}.svg-tree-wrapper .node-bg__border{display:none;pointer-events:none;fill:var(--svgtree-drag-dropindicator-color);stroke:var(--svgtree-drag-dropindicator-color);stroke-width:1;shape-rendering:crispedges}.svg-tree-wrapper .node-bg.ver-element,.svg-tree-wrapper .node-bg.ver-page,.svg-tree-wrapper .node-bg.ver-versions{--svgtree-node-bg:var(--svgtree-node-version-bg);--svgtree-node-border-color:var(--svgtree-node-version-border-color)}.svg-tree-wrapper .node:focus{outline:0}.svg-tree-wrapper .node-over{--svgtree-node-bg:var(--svgtree-node-hover-bg);--svgtree-node-border-color:var(--svgtree-node-hover-border-color)}.svg-tree-wrapper .node-selected{--svgtree-node-bg:var(--svgtree-node-selected-bg);--svgtree-node-border-color:var(--svgtree-node-selected-border-color)}.svg-tree-wrapper .node-focused{--svgtree-node-bg:var(--svgtree-node-focus-bg)!important;--svgtree-node-border-color:var(--svgtree-node-focus-border-color)!important}.svg-tree-wrapper .nodes-wrapper{cursor:pointer}.svg-tree-wrapper .nodes-wrapper--dragging{cursor:grabbing}.svg-tree-wrapper .nodes-wrapper--nodrop{cursor:no-drop}.node-dd{position:fixed;display:none;padding:0;margin:0;border:0;color:var(--svgtree-drag-info-color);background-color:var(--svgtree-drag-info-bg);border-radius:var(--svgtree-drag-info-border-radius);box-shadow:0 2px 2px 2px rgba(0,0,0,.25);z-index:9999}.node-dd__ctrl-icon{position:absolute;top:var(--svgtree-drag-info-padding-y);left:var(--svgtree-drag-info-padding-x);display:block;width:var(--svgtree-drag-info-icon-size);height:var(--svgtree-drag-info-icon-size);background-color:transparent;background-position:center;background-repeat:no-repeat;z-index:1}.node-dd__text{display:flex;padding:var(--svgtree-drag-info-padding-y) var(--svgtree-drag-info-padding-x);gap:.25rem}.node-dd--nodrop .node-dd__ctrl-icon{background-image:url(../Images/pagetree-drag-place-denied.png)}.node-dd--ok-below.node-dd--copy .node-dd__ctrl-icon{background-image:url(../Images/pagetree-drag-copy-below.png)}.node-dd--ok-below .node-dd__ctrl-icon{background-image:url(../Images/pagetree-drag-move-below.png)}.node-dd--ok-between.node-dd--copy .node-dd__ctrl-icon{background-image:url(../Images/pagetree-drag-new-between.png)}.node-dd--ok-between .node-dd__ctrl-icon{background-image:url(../Images/pagetree-drag-move-between.png)}.node-dd--ok-append.node-dd--copy .node-dd__ctrl-icon{background-image:url(../Images/pagetree-drag-new-inside.png)}.node-dd--ok-append .node-dd__ctrl-icon{background-image:url(../Images/pagetree-drag-move-into.png)}.node-dd--ok-above.node-dd--copy .node-dd__ctrl-icon{background-image:url(../Images/pagetree-drag-copy-above.png)}.node-dd--ok-above .node-dd__ctrl-icon{background-image:url(../Images/pagetree-drag-move-above.png)}.nodes-drop-zone[data-open=false]:not(.animating){display:none}.nodes-drop-zone rect{fill:#c83c3c;cursor:grabbing}.nodes-drop-zone text{fill:#fff;pointer-events:none}.node-name{fill:var(--svgtree-node-color)}.node-name .node-highlight-text{fill:var(--svgtree-highlight-color);font-weight:700}.node-edit{position:absolute;top:0;left:0;padding:.25rem;border:1px solid #3393eb;outline:0}.scaffold-content .svg-toolbar{min-height:var(--module-docheader-height)}.svg-toolbar{padding:4px 10px 0;border-bottom:1px solid var(--module-docheader-border);background-color:var(--module-docheader-bg)}.svg-toolbar .btn-toolbar{padding:0 .25rem}.svg-toolbar__menu{margin:.125rem 0 .375rem;padding-right:32px;display:flex}.svg-toolbar__menu .svg-toolbar__search{flex:1 0 auto;margin:0 .5rem 0 .25rem}.svg-toolbar__menuitem{display:inline-block;padding:.25rem;border:none;background:0 0;font-size:11px}.svg-toolbar__drag-node{cursor:move}.svg-toolbar__submenu{margin:.125rem 0 0}.node-mount-point{display:flex;border:0;background-color:var(--svgtree-info-bg);border-bottom:1px solid rgba(0,0,0,.25);color:var(--svgtree-info-color);padding:.75em 1.167em;gap:.5em;align-items:center}.node-mount-point__icon{flex:0 auto}.node-mount-point__icon.mountpoint-close{cursor:pointer}.node-mount-point__text{flex:1 0 0;padding:0 .5em;overflow:hidden}.node-action{opacity:0;cursor:pointer}.node-action rect{opacity:0}.node-action.node-action-over{opacity:1}.node-action.node-action-over rect{opacity:1}.element-browser{display:flex;flex-flow:nowrap column;width:100%}.element-browser .h3,.element-browser h3{font-size:1.2em}.element-browser-body{overflow:unset;padding:.75rem}.element-browser-body>:first-child{margin-top:0}.element-browser-body>:last-child{margin-bottom:0}.element-browser-title{padding:.75rem;color:#fff;background-color:#292929;position:sticky;top:0;z-index:3}.element-browser-title a{color:inherit;text-decoration:underline}.element-browser-tabs{position:sticky;top:0;z-index:3}.element-browser-tabs .nav-tabs{padding:.75rem;padding-bottom:0}.link-browser-has-title .element-browser-tabs{top:42px}.element-browser-attributes{padding:.75rem;background-color:#fafafa;border-bottom:1px solid #ddd}@media (min-width:600px){.element-browser-main{display:flex;flex-wrap:nowrap;flex:1 auto}}.element-browser-main-sidebar{background-color:#f2f2f2;position:sticky;top:0;height:100vh}.link-browser .element-browser-main-sidebar{top:44px;height:calc(100vh - 44px)}.link-browser.link-browser-has-title .element-browser-main-sidebar{top:86px;height:calc(100vh - 86px)}@media (min-width:600px){.element-browser-main-sidebar{flex-shrink:0;width:260px;border-right:1px solid #ddd}}@media (min-width:720px){.element-browser-main-sidebar{width:280px}}@media (min-width:840px){.element-browser-main-sidebar{width:300px}}@media (min-width:960px){.element-browser-main-sidebar{width:320px}}.element-browser-main-sidebar .list-tree li:last-child:before{background-color:#f2f2f2}.scaffold-content-navigation-available .element-browser-main-sidebar{display:none}.scaffold-content-navigation-available.scaffold-content-navigation-expanded .element-browser-main-sidebar{display:flex}.link-browser .scaffold-content-navigation-available .scaffold-content-navigation-drag,.link-browser .scaffold-content-navigation-available .scaffold-content-navigation-switcher{position:sticky;top:44px}.link-browser .scaffold-content-navigation-available .scaffold-content-navigation-drag{height:calc(100vh - 44px)}.link-browser.link-browser-has-title .scaffold-content-navigation-available .scaffold-content-navigation-drag,.link-browser.link-browser-has-title .scaffold-content-navigation-available .scaffold-content-navigation-switcher{position:sticky;top:86px}.link-browser.link-browser-has-title .scaffold-content-navigation-available .scaffold-content-navigation-drag{height:calc(100vh - 86px)}@media (min-width:600px){.element-browser-main-content{overflow:auto;flex:1 auto}}.table .table{margin:0}.table .table+.table{margin-top:6px}.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>th{white-space:nowrap;vertical-align:middle}.table>tbody>tr>td,.table>tfoot>tr>td,.table>thead>tr>td{vertical-align:middle}.table>thead>tr th.col-checkbox+th.col-title label{margin-bottom:0}.table>thead>tr td i,.table>thead>tr th i{font-weight:400}.table>tbody>tr{border-color:#ccc}.table .pagination{margin:0}.table .col-icon{text-align:center}.table .col-checkbox,.table .col-icon{padding-right:0}.table .col-title{width:99%}.table .col-clipboard,.table .col-control,.table .col-nowrap{white-space:nowrap!important}.table .col-clipboard,.table .col-control{text-align:right}.table .col-control{padding:4px 6px}.table .col-border-left{border-left:1px solid var(--bs-table-border-color)}.table .col-min{min-width:150px}.table .col-responsive{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width:768px){.table .col-word-break{word-wrap:break-word;word-break:break-all}}.table-transparent{--bs-table-bg:transparent}.table-vertical-top td,.table-vertical-top th{vertical-align:top}.table-center td,.table-center th{text-align:center}.table-fit{width:100%;margin-bottom:1.5em;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ccc}.table-fit>.table{margin-top:0;margin-bottom:0}.table-fit>.table colgroup:first-child+tbody tr:first-child td,.table-fit>.table colgroup:first-child+tbody tr:first-child th,.table-fit>.table tbody:first-child tr:first-child td,.table-fit>.table tbody:first-child tr:first-child th{border-top:0}.table-fit>.table tr>td,.table-fit>.table tr>th{white-space:nowrap}@media (min-width:768px){.table-fit>.table tr>td.col-word-break,.table-fit>.table tr>th.col-word-break{white-space:normal}}.table-fit>.table tr>td:first-child,.table-fit>.table tr>th:first-child{border-left:0}.table-fit>.table tr>td:last-child,.table-fit>.table tr>th:last-child{border-right:0}.table-fit>.table tr:last-child td{border-bottom:0}.table-fit-wrap td,.table-fit-wrap th{white-space:normal}.table-fit-inline-block{max-width:100%;width:auto;display:inline-block;margin:0}.table-fit-inline-block>.table{width:auto}.media{display:grid;grid-template-columns:2rem auto;grid-gap:1rem}.media .media-body{grid-column:1/3}.media .media-left+.media-body{grid-column:2/3;align-self:center}.modal .close{background:0 0;border:none;color:inherit;padding:0;margin:0;text-shadow:rgba(0,0,0,.5) 0 0 3px;opacity:.5;-webkit-user-select:none;-moz-user-select:none;user-select:none}.modal .close:active,.modal .close:hover{box-shadow:none;outline:0;background:0 0;opacity:1}.modal-dialog{display:flex;flex-direction:column;align-items:stretch;justify-content:center;margin:0 auto!important;height:100vh;width:100vw}.modal-content{display:flex;flex-direction:column;margin:0 auto;max-height:calc(100vh - 40px);max-width:calc(100vw - 40px)}.modal-content .help-block{margin-bottom:0}.modal-body{overflow-y:auto}.modal-body>:first-child{margin-top:0}.modal-body>:last-child{margin-bottom:0}.modal-footer,.modal-header{padding:calc(var(--bs-modal-padding)/ 2) var(--bs-modal-padding)}.modal-footer .btn{margin-right:0;padding-left:1em;padding-right:1em;display:inline-flex;align-items:center}.modal-footer .btn typo3-backend-icon{margin-left:-2px;margin-right:4px}.modal-footer .progress{flex-basis:100%;margin-right:0;margin-left:0}.modal-footer .modal-btn-group{margin-right:0;margin-left:0}.modal-content{transition:margin-top .1s ease-in;border:none}.modal-content .modal-loading{height:100%;display:flex;flex:1 0 auto;justify-content:center;align-items:center}.modal-image-manipulation .modal-body{padding:0}@media (min-width:768px){.modal-image-manipulation .modal-body{flex-direction:row}}.modal-image-manipulation .modal-panel-main{overflow:visible;background-image:url(../Images/cropper-background.png);display:flex;align-items:center;justify-content:center;padding:20px;width:100%}@media (min-width:768px){.modal-image-manipulation .modal-panel-main{width:calc(100% - 250px)}}@media (min-width:992px){.modal-image-manipulation .modal-panel-main{width:calc(100% - 300px)}}.modal-image-manipulation .modal-panel-main img{max-width:100%;max-height:100%;height:auto}.modal-image-manipulation .modal-panel-sidebar{padding:15px;flex-shrink:0;border-left:1px solid rgba(0,0,0,.25);position:relative;overflow:auto;-webkit-overflow-scrolling:touch;width:100%}@media (min-width:768px){.modal-image-manipulation .modal-panel-sidebar{width:250px}}@media (min-width:992px){.modal-image-manipulation .modal-panel-sidebar{width:300px}}.modal-image-manipulation .panel-heading .is-active{pointer-events:none}.modal-image-manipulation .panel{margin-bottom:0}.modal-image-manipulation .panel-body{border-left:2px solid #ff8700}.modal-type-iframe{padding:0}.modal-type-iframe .modal-body{padding:0}.modal-iframe{display:block;border:0;height:100%;width:100%;position:absolute;top:0;left:0}.modal-size-small .modal-content{width:440px}.modal-size-default .modal-content{width:600px}.modal-size-medium .modal-content{width:800px;height:520px}.modal-size-large .modal-content{width:1000px;height:800px}.modal-size-full .modal-content{width:1800px;height:1200px}.modal-severity-primary .modal-header{background-color:#0078e6;color:#fff;border-bottom-color:#006ccf}.modal-severity-secondary .modal-header{background-color:#737373;color:#fff;border-bottom-color:#686868}.modal-severity-success .modal-header{background-color:#107c10;color:#fff;border-bottom-color:#0e700e}.modal-severity-info .modal-header{background-color:#6daae0;color:#000;border-bottom-color:#6299ca}.modal-severity-warning .modal-header{background-color:#e8a33d;color:#000;border-bottom-color:#d19337}.modal-severity-danger .modal-header{background-color:#c83c3c;color:#fff;border-bottom-color:#b43636}.modal-severity-light .modal-header{background-color:#f5f5f5;color:#000;border-bottom-color:#ddd}.modal-severity-default .modal-header{background-color:#f5f5f5;color:#000;border-bottom-color:#ddd}.modal-severity-notice .modal-header{background-color:#333;color:#fff;border-bottom-color:#2e2e2e}.modal-severity-dark .modal-header{background-color:#1e1e1e;color:#fff;border-bottom-color:#1b1b1b}.modal-style-dark{color:#fff}.modal-style-dark .modal-header{color:#fff;background-color:#484848;border-bottom-color:#000}.modal-style-dark .modal-content{overflow:hidden;background-color:#292929}.modal-style-dark .modal-body,.modal-style-dark .modal-footer{background-color:#292929;color:#fff}.modal-style-dark .modal-footer{border-top:1px solid #000}.t3js-modal-footer .form-inline{display:block;margin:1em 0;width:100%}.t3js-modal-footer label{margin-right:10px}.modal-multi-step-wizard .modal-body .carousel.slide{min-height:21em}.modal-multi-step-wizard .modal-body .carousel-inner{width:auto;margin:0 -5px;padding:0 5px}.modal-multi-step-wizard .modal-footer .btn+.btn{margin-left:.5em}.modal-multi-step-wizard .modal-footer .progress-bar.inactive{background:0 0;color:#000}:root{--note-primary-color:#000;--note-primary-bg:#d9ebfb;--note-primary-header-color:#000;--note-primary-header-bg:#99c9f5;--note-secondary-color:#000;--note-secondary-bg:#eaeaea;--note-secondary-header-color:#000;--note-secondary-header-bg:#c7c7c7;--note-success-color:#000;--note-success-bg:#dbebdb;--note-success-header-color:#000;--note-success-header-bg:#9fcb9f;--note-info-color:#000;--note-info-bg:#e9f2fa;--note-info-header-color:#000;--note-info-header-bg:#c5ddf3;--note-warning-color:#000;--note-warning-bg:#fcf1e2;--note-warning-header-color:#000;--note-warning-header-bg:#f6dab1;--note-danger-color:#000;--note-danger-bg:#f7e2e2;--note-danger-header-color:#000;--note-danger-header-bg:#e9b1b1;--note-light-color:#000;--note-light-bg:#fefefe;--note-light-header-color:#000;--note-light-header-bg:#fbfbfb;--note-default-color:#000;--note-default-bg:#fefefe;--note-default-header-color:#000;--note-default-header-bg:#fbfbfb;--note-notice-color:#000;--note-notice-bg:#e0e0e0;--note-notice-header-color:#000;--note-notice-header-bg:#adadad;--note-dark-color:#000;--note-dark-bg:#dddddd;--note-dark-header-color:#000;--note-dark-header-bg:#a5a5a5;--note-light-bg:rgb(245, 245, 245);--note-light-header-bg:#dddddd;--note-default-bg:rgb(238, 238, 238);--note-default-header-bg:#d6d6d6}.note-list{margin:1rem 0}.note{border-radius:var(--typo3-component-border-radius);margin-bottom:1rem;overflow:hidden;position:relative;z-index:1;color:var(--note-color);background-color:var(--note-bg);box-shadow:var(--typo3-component-box-shadow);--note-color:var(--note-default-color);--note-bg:var(--note-default-bg);--note-header-color:var(--note-default-header-color);--note-header-bg:var(--note-default-header-bg)}.note-header{color:var(--note-header-color);background-color:var(--note-header-bg);padding:.5rem 1rem}.note-header-bar{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.note-actions{margin-left:auto}.note-body{padding:1rem}.note-body>:first-child{margin-top:0}.note-body>:last-child{margin-bottom:0}.note-primary{--note-color:var(--note-primary-color);--note-bg:var(--note-primary-bg);--note-header-color:var(--note-primary-header-color);--note-header-bg:var(--note-primary-header-bg)}.note-secondary{--note-color:var(--note-secondary-color);--note-bg:var(--note-secondary-bg);--note-header-color:var(--note-secondary-header-color);--note-header-bg:var(--note-secondary-header-bg)}.note-success{--note-color:var(--note-success-color);--note-bg:var(--note-success-bg);--note-header-color:var(--note-success-header-color);--note-header-bg:var(--note-success-header-bg)}.note-info{--note-color:var(--note-info-color);--note-bg:var(--note-info-bg);--note-header-color:var(--note-info-header-color);--note-header-bg:var(--note-info-header-bg)}.note-warning{--note-color:var(--note-warning-color);--note-bg:var(--note-warning-bg);--note-header-color:var(--note-warning-header-color);--note-header-bg:var(--note-warning-header-bg)}.note-danger{--note-color:var(--note-danger-color);--note-bg:var(--note-danger-bg);--note-header-color:var(--note-danger-header-color);--note-header-bg:var(--note-danger-header-bg)}.note-light{--note-color:var(--note-light-color);--note-bg:var(--note-light-bg);--note-header-color:var(--note-light-header-color);--note-header-bg:var(--note-light-header-bg)}.note-default{--note-color:var(--note-default-color);--note-bg:var(--note-default-bg);--note-header-color:var(--note-default-header-color);--note-header-bg:var(--note-default-header-bg)}.note-notice{--note-color:var(--note-notice-color);--note-bg:var(--note-notice-bg);--note-header-color:var(--note-notice-header-color);--note-header-bg:var(--note-notice-header-bg)}.note-dark{--note-color:var(--note-dark-color);--note-bg:var(--note-dark-bg);--note-header-color:var(--note-dark-header-color);--note-header-bg:var(--note-dark-header-bg)}.note-category-1{--note-color:var(--note-info-color);--note-bg:var(--note-info-bg);--note-header-color:var(--note-info-header-color);--note-header-bg:var(--note-info-header-bg)}.note-category-2{--note-color:var(--note-warning-color);--note-bg:var(--note-warning-bg);--note-header-color:var(--note-warning-header-color);--note-header-bg:var(--note-warning-header-bg)}.note-category-3{--note-color:var(--note-notice-color);--note-bg:var(--note-notice-bg);--note-header-color:var(--note-notice-header-color);--note-header-bg:var(--note-notice-header-bg)}.note-category-4{--note-color:var(--note-success-color);--note-bg:var(--note-success-bg);--note-header-color:var(--note-success-header-color);--note-header-bg:var(--note-success-header-bg)}.card{overflow:hidden;box-shadow:0 1px 1px rgba(0,0,0,.2);border-color:#ccc;margin-bottom:20px;transition:all .2s ease-in-out;transition-property:box-shadow,border,transform}a.card:hover{text-decoration:none;border:1px solid #b3b3b3;transform:translate(0,-1px);box-shadow:0 2px 1px rgba(0,0,0,.3)}.card-container{display:flex;flex-wrap:wrap;margin:10px -10px}.card-container .card{margin-left:10px;margin-right:10px}.card-size-large,.card-size-medium,.card-size-small{width:calc(100% - 20px)}@media (min-width:768px){.card-size-small{width:calc(50% - 20px)}}@media (min-width:992px){.card-size-small{width:calc(25% - 20px)}}@media (min-width:768px){.card-size-medium{width:calc(50% - 20px)}}.card-size-fixed-small{width:calc(100% - 20px)}@media (min-width:624px){.card-size-fixed-small{width:calc(50% - 20px)}}@media (min-width:768px){.card-size-fixed-small{width:300px}}.card-disabled{opacity:.4}.card-body,.card-footer,.card-header,.card-image{padding:1.5em 1.5em 0 1.5em}.card-body:last-child,.card-footer:last-child,.card-header:last-child,.card-image:last-child{padding-bottom:1.5em}.card-body :first-child,.card-footer :first-child,.card-header :first-child,.card-image :first-child{margin-top:0}.card-body :last-child,.card-footer :last-child,.card-header :last-child,.card-image :last-child{margin-bottom:0}.card-image{position:relative;padding-left:0;padding-right:0}.card-image:first-child{padding-top:0}.card-image:first-child .card-image-badge{top:.75em}.card-image:last-child{padding-bottom:0}.card-image .card-image-badge{position:absolute;top:1.5em;right:.75em}.card-image img{display:block;height:auto;width:100%;margin:0 auto}.card-header{border-bottom:none}.card-header .card-icon{float:left;margin-right:.75em}.card-header .card-header-body{display:block;overflow:hidden}.card-header .card-title{font-family:inherit;font-weight:500;display:block;font-size:1.35em;line-height:1.2em;margin:0}.card-header .card-subtitle{display:block;margin-top:.5em;font-size:1em;line-height:1.2em;opacity:.5}.card-header .card-longdesc{margin-top:1em}.card-footer{border-top:none}.card-table td:first-child,.card-table th:first-child{padding-left:1.5em}.card-table td:last-child,.card-table th:last-child{padding-right:1.5em}.form-wizard-icon-list{background:var(--typo3-component-bg);border:var(--typo3-component-border-width) solid var(--typo3-component-border-color);border-radius:.125rem;margin-top:.25rem;padding:calc(var(--typo3-spacing)/ 4);display:flex;flex-wrap:wrap;gap:2px}.form-wizard-icon-list-item a{display:flex;height:100%;border-radius:calc(var(--typo3-component-border-radius)/ 2);padding:calc(var(--typo3-spacing)/ 2);align-items:center;justify-content:center;outline-offset:-1px}.form-wizard-icon-list-item a:hover{color:var(--typo3-list-item-hover-color);background-color:var(--typo3-list-item-hover-bg);outline:1px solid var(--typo3-list-item-hover-border-color)}.form-wizard-icon-list-item a:focus{color:var(--typo3-list-item-focus-color);background-color:var(--typo3-list-item-focus-bg);outline:1px solid var(--typo3-list-item-focus-border-color)}.form-wizard-icon-list-item a.active,.form-wizard-icon-list-item a:active{color:var(--typo3-list-item-active-color);background-color:var(--typo3-list-item-active-bg);outline:1px solid var(--typo3-list-item-active-border-color)}.form-wizard-icon-list-item a,.form-wizard-icon-list-item a>span[title]{display:block;line-height:1}.form-wizard-icon-list-item img{display:block;min-width:16px;max-width:128px;max-height:128px}.context-menu{font-size:var(--typo3-component-font-size);line-height:var(--typo3-component-line-height);padding:2px;position:absolute;z-index:310;color:var(--typo3-component-color);border:var(--typo3-component-border-width) solid var(--typo3-component-border-color);background-color:var(--typo3-component-bg);box-shadow:var(--typo3-component-box-shadow);border-radius:var(--typo3-component-border-radius)}.context-menu-group{position:relative;display:flex;flex-direction:column;gap:1px;list-style:none;padding:0;margin:0;min-width:150px}.context-menu-item{position:relative;display:flex;border-radius:calc(var(--typo3-component-border-radius) - var(--typo3-component-border-width));gap:.5em;padding:var(--typo3-list-item-padding-y) var(--typo3-list-item-padding-x);cursor:pointer;text-decoration:none}.context-menu-item:focus,.context-menu-item:hover{z-index:1;outline-offset:-1px}.context-menu-item:hover{color:var(--typo3-component-hover-color);background-color:var(--typo3-component-hover-bg);outline:1px solid var(--typo3-component-hover-border-color)}.context-menu-item:focus{color:var(--typo3-component-focus-color);background-color:var(--typo3-component-focus-bg);outline:1px solid var(--typo3-component-focus-border-color)}.context-menu-item-icon{flex-shrink:0;flex-grow:0;width:var(--icon-size-small)}.context-menu-item-label{flex-grow:1}.context-menu-item-indicator{flex-shrink:0;flex-grow:0;width:var(--icon-size-small)}.context-menu-item-divider{padding:0;height:0;margin-top:var(--typo3-list-item-padding-y);margin-bottom:var(--typo3-list-item-padding-y);border-top:var(--typo3-component-border-width) solid var(--typo3-component-border-color)}typo3-backend-live-search{display:flex;flex-direction:column;height:100%}typo3-backend-live-search .sticky-form-actions{z-index:50}typo3-backend-live-search-result-item-container,typo3-backend-live-search-result-item-detail-container{position:relative;flex-grow:1;flex-basis:50%;overflow:auto;padding:var(--bs-modal-padding)}typo3-backend-live-search-result-item-container{padding-top:0}typo3-backend-live-search-result-container{--livesearch-item-opacity:.5;--livesearch-preamble-delimiter-border-width:1px;--livesearch-preamble-delimiter-border-color:rgb(215, 215, 215);display:flex;flex-direction:row;margin:calc(var(--bs-modal-padding) * -1);height:100%;overflow:auto}typo3-backend-live-search-result-action-list,typo3-backend-live-search-result-list{display:flex;flex-direction:column;gap:1px}typo3-backend-live-search-result-list .livesearch-result-item-group-label{font-weight:700;line-height:inherit;padding:var(--typo3-list-item-padding-y) 0;border-bottom:1px solid rgba(0,0,0,.1);margin-bottom:var(--typo3-list-item-padding-y);background-color:#fff;z-index:20}typo3-backend-live-search-result-list .livesearch-result-item-group-label.sticky{position:sticky;top:0;z-index:15}typo3-backend-live-search-result-item-detail-container .livesearch-detail-preamble{text-align:center;padding-bottom:1em;margin-bottom:1em;border-bottom:var(--livesearch-preamble-delimiter-border-width) solid var(--livesearch-preamble-delimiter-border-color)}typo3-backend-live-search-result-item-detail-container .livesearch-detail-preamble .livesearch-detail-preamble-type{opacity:var(--livesearch-item-opacity)}typo3-backend-live-search-result-item,typo3-backend-live-search-result-item-action{display:flex;gap:1.5em;font-size:var(--typo3-component-font-size);line-height:var(--typo3-component-line-height);padding:var(--typo3-list-item-padding-y) var(--typo3-list-item-padding-x);border-radius:calc(var(--typo3-component-border-radius) - var(--typo3-component-border-width));color:#000;background-color:#fff;cursor:pointer}typo3-backend-live-search-result-item-action.active,typo3-backend-live-search-result-item-action:focus,typo3-backend-live-search-result-item-action:hover,typo3-backend-live-search-result-item.active,typo3-backend-live-search-result-item:focus,typo3-backend-live-search-result-item:hover{z-index:1;outline-offset:-1px}typo3-backend-live-search-result-item-action:hover,typo3-backend-live-search-result-item:hover{background-color:#f2f8fe;outline:1px solid #d9ebfb}typo3-backend-live-search-result-item-action.active,typo3-backend-live-search-result-item-action:focus,typo3-backend-live-search-result-item.active,typo3-backend-live-search-result-item:focus{background-color:#f2f8fe;outline:1px solid #3393eb}typo3-backend-live-search-result-item .livesearch-expand-action,typo3-backend-live-search-result-item-action .livesearch-expand-action{flex:0;align-items:center;margin:calc(var(--typo3-list-item-padding-y) * -1) calc(var(--typo3-list-item-padding-x) * -1);padding:var(--typo3-list-item-padding-y) calc(var(--typo3-list-item-padding-x)/ 2);border-left:1px solid transparent}typo3-backend-live-search-result-item .livesearch-expand-action:hover,typo3-backend-live-search-result-item-action .livesearch-expand-action:hover{border-left:1px solid #d9ebfb}typo3-backend-live-search-result-item-action>*,typo3-backend-live-search-result-item>*{display:flex;gap:.5em;flex:1}typo3-backend-live-search-result-item-action>* .livesearch-result-item-icon,typo3-backend-live-search-result-item>* .livesearch-result-item-icon{display:flex;gap:.5em;flex-grow:0;flex-shrink:0;align-items:center}typo3-backend-live-search-result-item-action>* .livesearch-result-item-title,typo3-backend-live-search-result-item>* .livesearch-result-item-title{flex-grow:1;word-break:break-word}typo3-backend-live-search-result-item-action>* .livesearch-result-item-title .small,typo3-backend-live-search-result-item-action>* .livesearch-result-item-title small,typo3-backend-live-search-result-item>* .livesearch-result-item-title .small,typo3-backend-live-search-result-item>* .livesearch-result-item-title small{opacity:var(--livesearch-item-opacity)}.resource-tiles{--resource-tiles-grid-spacing:.5rem;--resource-tiles-grid-width:150px;--resource-tile-spacing:1rem;--resource-tile-border-radius:4px;--resource-tile-nameplate-size:12px;--resource-tile-nameplate-activity-size:10px;--resource-tile-checkbox-size:16px;--resource-tile-color:#313131;--resource-tile-bg:#fff;--resource-tile-border-color:rgb(215, 215, 215);--resource-tile-hover-color:var(--resource-tile-color);--resource-tile-hover-bg:rgba(0, 0, 0, .05);--resource-tile-hover-border-color:rgb(215, 215, 215);--resource-tile-focus-color:var(--resource-tile-color);--resource-tile-focus-bg:rgba(0, 0, 0, .05);--resource-tile-focus-border-color:rgb(187, 187, 187);--resource-tile-active-color:var(--resource-tile-color);--resource-tile-active-bg:#f2f8fe;--resource-tile-active-border-color:#3393eb;display:grid;grid-template-columns:repeat(auto-fill,var(--resource-tiles-grid-width));gap:var(--resource-tiles-grid-spacing);-webkit-user-select:none;-moz-user-select:none;user-select:none;margin-bottom:1rem}@media (min-width:480px){.resource-tiles{--resource-tiles-grid-width:170px}}@media (min-width:768px){.resource-tiles{--resource-tiles-grid-width:200px}}.resource-tile{position:relative;padding-top:98%;color:var(--resource-tile-color);background-color:var(--resource-tile-bg);border:1px solid var(--resource-tile-border-color);border-radius:var(--resource-tile-border-radius)}.resource-tile a{color:inherit}.resource-tile:hover{--resource-tile-color:var(--resource-tile-hover-color);--resource-tile-bg:var(--resource-tile-hover-bg);--resource-tile-border-color:var(--resource-tile-hover-border-color);text-decoration:none}.resource-tile:focus-within{--resource-tile-color:var(--resource-tile-focus-color);--resource-tile-bg:var(--resource-tile-focus-bg);--resource-tile-border-color:var(--resource-tile-focus-border-color)}.resource-tile.active{--resource-tile-color:var(--resource-tile-active-color);--resource-tile-bg:var(--resource-tile-active-bg);--resource-tile-border-color:var(--resource-tile-active-border-color)}.resource-tile.active .resource-tile-checkbox,.resource-tile:hover .resource-tile-checkbox{display:block}.resource-tile a{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;text-decoration:none;outline:0}.resource-tile-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.resource-tile-preview{flex:1;position:relative;margin:var(--resource-tile-spacing);margin-bottom:0}.resource-tile-preview-content{position:absolute;top:0;left:0;height:100%;width:100%}.resource-tile-icon{display:flex;height:100%;width:100%;justify-content:center;align-items:center}.resource-tile-image{display:flex;height:100%;width:100%;justify-content:center;align-items:center}.resource-tile-image img{max-height:100%;max-width:100%;outline:2px solid #fff;outline-offset:0;border-radius:2px;box-shadow:0 0 4px 4px rgba(0,0,0,.05)}.resource-tile-image-icon{position:absolute;top:calc(var(--resource-tile-spacing) * -.5);left:calc(var(--resource-tile-spacing) * -.5)}.resource-tile-nameplate{display:flex;flex-direction:column;padding:var(--resource-tile-spacing);text-align:center;font-size:var(--resource-tile-nameplate-size)}.resource-tile-nameplate-label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.resource-tile-nameplate-activity{font-size:var(--resource-tile-nameplate-activity-size);opacity:.75}.resource-tile-checkbox{display:none;position:absolute;font-size:var(--resource-tile-checkbox-size);right:calc(var(--resource-tile-spacing)/ 2);top:calc(var(--resource-tile-spacing)/ 2)}.btn-group typo3-backend-switch-user .btn{margin-left:-1px;display:initial}.collapse-horizontal{height:auto;width:0;vertical-align:middle;overflow:hidden}.collapse-horizontal.show{display:inline-block;width:auto}.collapse-horizontal.collapsing{display:inline-block;transition-property:width,visibility;width:0}.cropper .cropper-line{background-color:transparent}.cropper .cropper-dashed{border:1px dashed #ff8700}.cropper .cropper-point{background-color:#ff8700}.cropper .cropper-point.point-nw{left:0;top:0}.cropper .cropper-point.point-w{left:0}.cropper .cropper-point.point-sw{left:0;bottom:0}.cropper .cropper-point.point-ne{right:0;top:0}.cropper .cropper-point.point-e{right:0}.cropper .cropper-point.point-se{right:0;bottom:0}.cropper .cropper-point.point-se:before{background-color:#fff}.cropper .cropper-point.point-n{top:0}.cropper .cropper-point.point-s{bottom:0}.cropper .cropper-view-box{outline:1px dashed #ff8700}.cropper .cropper-bg{background-image:url(../Images/cropper-background.png)}.cropper .cropper-image-container{display:block;width:100%;max-width:1000px}.cropper .ratio-buttons{margin-bottom:10px}.cropper .ratio-buttons .btn.btn-default{margin-bottom:5px}.cropper .panel-group{position:relative;margin:-15px}.cropper .panel-group [aria-expanded=true]{border-left:2px solid #ff8700;position:relative}.cropper .panel-group [aria-expanded=true][data-bs-toggle=collapse]{background-color:#333}.cropper .panel-group [aria-expanded=false]{border-left:2px solid #444;position:relative}.cropper .panel-group label,.cropper .panel-group table{color:#fff}.cropper .panel-collapse.collapse{background-color:#2c2c2c!important}.cropper .panel-heading{padding:0}.cropper .panel-heading .panel-title>[data-crop-variant]{display:flex;padding:10px 15px;justify-content:space-between}.cropper .panel-heading .panel-title>a{text-decoration:none!important;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:13px}.cropper .panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#333}.cropper .panel,.cropper .panel-default .panel-heading,.cropper .panel-group{background:#222;border:none;color:#fff}.cropper .cropper-container.cropper-bg{overflow:visible}.cropper .cropper-crop-box{overflow:hidden}.cropper .cropper-crop-box:after{background-color:#ff8700;content:"Cropped area";position:absolute;left:0;top:0;font-size:10px;color:#000;height:16px;width:100%;max-width:80px;text-overflow:ellipsis;white-space:nowrap;padding:0 4px;pointer-events:none;overflow:hidden}.cropper .cropper-line.line-w{left:0}.cropper .cropper-line.line-e{right:0}.cropper .cropper-line.line-n{top:0}.cropper .cropper-line.line-s{bottom:0}.cropper .ui-resizable-handle.ui-resizable-e,.cropper .ui-resizable-handle.ui-resizable-n,.cropper .ui-resizable-handle.ui-resizable-s,.cropper .ui-resizable-handle.ui-resizable-w{border-color:transparent;transform:none}.cropper .ui-resizable-handle.ui-resizable-e,.cropper .ui-resizable-handle.ui-resizable-w{width:6px}.cropper .ui-resizable-handle.ui-resizable-n,.cropper .ui-resizable-handle.ui-resizable-s{height:6px}.cropper .ui-resizable-handle.ui-resizable-e{right:0}.cropper .ui-resizable-handle.ui-resizable-w{left:0}.cropper .ui-resizable-handle.ui-resizable-n{top:0}.cropper .ui-resizable-handle.ui-resizable-s{bottom:0}.cropper .ui-resizable-handle.ui-resizable-ne,.cropper .ui-resizable-handle.ui-resizable-nw,.cropper .ui-resizable-handle.ui-resizable-se,.cropper .ui-resizable-handle.ui-resizable-sw{transform:none;background-color:#ccc;height:6px;width:6px}.cropper .ui-resizable-handle.ui-resizable-nw{top:0;left:0}.cropper .ui-resizable-handle.ui-resizable-ne{top:0;right:0}.cropper .ui-resizable-handle.ui-resizable-se{bottom:0;right:0}.cropper .ui-resizable-handle.ui-resizable-sw{bottom:0;left:0}.cropper .cropper-focus-area{cursor:move;height:200px;width:200px;background-color:rgba(215,187,0,.5);position:absolute;z-index:999999;opacity:1;overflow:hidden;transition:background-color .3s}.cropper .cropper-focus-area.has-nodrop,.cropper .cropper-focus-area.has-nodrop:hover{background-color:rgba(211,35,46,.6)!important;transition:background-color .3s}.cropper .cropper-focus-area:focus,.cropper .cropper-focus-area:hover{background-color:rgba(215,187,0,.7)}.cropper .cropper-focus-area:after{background-color:rgba(255,255,255,.95);content:"Focus";position:absolute;left:0;top:0;font-size:10px;color:#000;height:16px;width:100%;max-width:44px;text-overflow:ellipsis;white-space:nowrap;padding:0 4px 0 8px;pointer-events:none;overflow:hidden}.cropper .cropper-cover-area{background:url(../Images/cropper-background-cover-area.svg);pointer-events:none;cursor:not-allowed;position:absolute;opacity:1;z-index:99999}.cropper .cropper-cover-area:after{background-color:rgba(255,255,255,.95);content:"Cover area";position:absolute;left:0;top:0;font-size:10px;color:#000;height:16px;width:100%;max-width:80px;text-overflow:ellipsis;white-space:nowrap;padding:0 4px;pointer-events:none;overflow:hidden}.cropper .cropper-preview-thumbnail{position:relative;max-width:100px;max-height:100px;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cropper .cropper-preview-thumbnail:after{background-color:rgba(0,0,0,.5);content:" ";top:0;left:0;bottom:0;right:0;position:absolute;z-index:9}.cropper .cropper-preview-thumbnail.wide{width:100px;height:auto}.cropper .cropper-preview-thumbnail.tall{width:auto;height:80px}.cropper .cropper-preview-thumbnail-image{left:0;top:0}.cropper .wide .cropper-preview-thumbnail-image{width:100%;height:auto}.cropper .tall .cropper-preview-thumbnail-image{width:auto;height:100%}.cropper .cropper-preview-thumbnail-crop-area{border:1px solid #ff8700;position:absolute;z-index:10;overflow:hidden}.cropper .cropper-preview-thumbnail-focus-area{background-color:rgba(215,187,0,.7);position:absolute;z-index:11}:root .cropper-preview-thumbnail-crop-image{image-orientation:0deg;display:block;height:100%;width:100%;min-width:0;max-width:none;min-height:0;max-height:none}.cropper-preview-container{overflow:hidden;position:relative}.cropper-preview-container img{display:block;position:absolute;width:100%;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important}input[type=range].slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:0;display:inline-block;position:relative;width:210px;height:32px;background:0 0;margin:0 6px}input[type=range].slider::-webkit-slider-thumb{margin-top:20px;-webkit-appearance:none;appearance:none;border:1px solid #959595;border-radius:.125rem;height:20px;width:16px;margin-top:-4px;cursor:grab;box-shadow:inset 0 calc(20px / 4 * -1) 0 0 #eee,inset 0 calc(20px / 4) 0 0 #eee;background-color:#eee;background-image:linear-gradient(90deg,#eee 30%,#333 30%,#333 40%,#eee 40%,#eee 60%,#333 60%,#333 70%,#eee 70%,#eee)}input[type=range].slider::-webkit-slider-thumb:active,input[type=range].slider::-webkit-slider-thumb:focus,input[type=range].slider::-webkit-slider-thumb:hover{background-color:#d5d5d5;border-color:#767676}input[type=range].slider::-webkit-slider-thumb:active{cursor:grabbing}input[type=range].slider::-webkit-slider-runnable-track{height:12px;background:#ddd;border-radius:.125rem;box-sizing:border-box;box-shadow:inset 0 0 2px rgba(0,0,0,.25)}input[type=range].slider::-moz-range-thumb{-moz-appearance:none;appearance:none;border:1px solid #959595;border-radius:.125rem;height:20px;width:16px;margin-top:-4px;cursor:grab;box-shadow:inset 0 calc(20px / 4 * -1) 0 0 #eee,inset 0 calc(20px / 4) 0 0 #eee;background-color:#eee;background-image:linear-gradient(90deg,#eee 30%,#333 30%,#333 40%,#eee 40%,#eee 60%,#333 60%,#333 70%,#eee 70%,#eee)}input[type=range].slider::-moz-range-thumb:active,input[type=range].slider::-moz-range-thumb:focus,input[type=range].slider::-moz-range-thumb:hover{background-color:#d5d5d5;border-color:#767676}input[type=range].slider::-moz-range-thumb:active{cursor:grabbing}input[type=range].slider::-moz-range-track{height:12px;background:#ddd;border-radius:.125rem;box-sizing:border-box;box-shadow:inset 0 0 2px rgba(0,0,0,.25);width:100%}input[type=range].slider::-moz-range-progress{background:#999}input[type=range].slider::-ms-thumb{appearance:none;border:1px solid #959595;border-radius:.125rem;height:20px;width:16px;margin-top:-4px;cursor:grab;box-shadow:inset 0 calc(20px / 4 * -1) 0 0 #eee,inset 0 calc(20px / 4) 0 0 #eee;background-color:#eee;background-image:linear-gradient(90deg,#eee 30%,#333 30%,#333 40%,#eee 40%,#eee 60%,#333 60%,#333 70%,#eee 70%,#eee);margin-top:inherit}input[type=range].slider::-ms-thumb:active,input[type=range].slider::-ms-thumb:focus,input[type=range].slider::-ms-thumb:hover{background-color:#d5d5d5;border-color:#767676}input[type=range].slider::-ms-thumb:active{cursor:grabbing}input[type=range].slider::-ms-track{height:12px;background:#ddd;border-radius:.125rem;box-sizing:border-box;box-shadow:inset 0 0 2px rgba(0,0,0,.25)}input[type=range].slider::-ms-fill-lower{background:#999;border-radius:.125rem;box-sizing:border-box}input[type=range].slider::-ms-fill-upper{background:0 0;border-radius:.125rem;box-sizing:border-box}input[type=range].slider[disabled]::-webkit-slider-thumb{cursor:not-allowed;background-color:#c83c3c;border:1px solid #8f2828}input[type=range].slider[disabled]::-webkit-slider-thumb:active,input[type=range].slider[disabled]::-webkit-slider-thumb:focus,input[type=range].slider[disabled]::-webkit-slider-thumb:hover{background-color:#a32e2e;border-color:#5f1b1b}input[type=range].slider[disabled]::-webkit-slider-thumb:after,input[type=range].slider[disabled]::-webkit-slider-thumb:before{background-color:#fff}input[type=range].slider[disabled]::-webkit-slider-runnable-track{cursor:not-allowed}input[type=range].slider[disabled]::-moz-range-thumb{cursor:not-allowed;background-color:#c83c3c;border:1px solid #8f2828}input[type=range].slider[disabled]::-moz-range-thumb:active,input[type=range].slider[disabled]::-moz-range-thumb:focus,input[type=range].slider[disabled]::-moz-range-thumb:hover{background-color:#a32e2e;border-color:#5f1b1b}input[type=range].slider[disabled]::-moz-range-thumb:after,input[type=range].slider[disabled]::-moz-range-thumb:before{background-color:#fff}input[type=range].slider[disabled]::-moz-range-track{cursor:not-allowed}input[type=range].slider[disabled]::-ms-thumb{cursor:not-allowed;background-color:#c83c3c;border:1px solid #8f2828}input[type=range].slider[disabled]::-ms-thumb:active,input[type=range].slider[disabled]::-ms-thumb:focus,input[type=range].slider[disabled]::-ms-thumb:hover{background-color:#a32e2e;border-color:#5f1b1b}input[type=range].slider[disabled]::-ms-thumb:after,input[type=range].slider[disabled]::-ms-thumb:before{background-color:#fff}input[type=range].slider[disabled]::-ms-track{cursor:not-allowed}.form-wizards-items>input[type=range].slider.slider-horizontal{margin-left:8px;margin-right:8px}.slider-wrapper{display:flex;align-items:center}.slider-wrapper.slider-vertical{width:auto;margin-bottom:calc(100% - 32px);transform-origin:top left;transform:rotate(-90deg) translate(-100%)}.slider-wrapper.slider-vertical .slider{margin:6px 0}.nav-tabs{border-radius:.125rem .125rem 0 0;background-color:#ededed}.nav-tabs>li+li{margin-left:2px}.nav-tabs>li>a.nav-link,.nav.nav-tabs>li:not(.nav-item)>a:not(.nav-link){margin-right:0;transition:all .25s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-tabs>li>a.nav-link,.nav.nav-tabs>li:not(.nav-item)>a:not(.nav-link){transition:none}}.nav-tabs>li>a.nav-link:focus,.nav-tabs>li>a.nav-link:hover,.nav.nav-tabs>li:not(.nav-item)>a:focus:not(.nav-link),.nav.nav-tabs>li:not(.nav-item)>a:hover:not(.nav-link){border-color:#d7d7d7 #d7d7d7 #ccc;background:#e1e1e1}.nav-tabs>li>a.nav-link.active,.nav.nav-tabs>li:not(.nav-item)>a.active:not(.nav-link){border:1px solid #ccc;border-bottom-color:#fafafa;background-color:#fafafa}.nav-tabs>li[class*=has-]>a.nav-link:before,.nav.nav-tabs>li[class*=has-]:not(.nav-item)>a:not(.nav-link):before{transition:all .25s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-tabs>li[class*=has-]>a.nav-link:before,.nav.nav-tabs>li[class*=has-]:not(.nav-item)>a:not(.nav-link):before{transition:none}}.nav-tabs>li.has-validation-error>a.nav-link,.nav.nav-tabs>li.has-validation-error:not(.nav-item)>a:not(.nav-link){background-color:#c83c3c;border-color:#a32e2e;color:#fff}.nav-tabs>li.has-validation-error>a.nav-link:focus,.nav-tabs>li.has-validation-error>a.nav-link:hover,.nav.nav-tabs>li.has-validation-error:not(.nav-item)>a:focus:not(.nav-link),.nav.nav-tabs>li.has-validation-error:not(.nav-item)>a:hover:not(.nav-link){color:#fff;background-color:#ce5050;border-color:#b73434}.nav-tabs>li.has-validation-error>a.nav-link:before,.nav.nav-tabs>li.has-validation-error:not(.nav-item)>a:not(.nav-link):before{content:"";vertical-align:middle;-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M8 2c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6 2.7-6 6-6m0-1C4.1 1 1 4.1 1 8s3.1 7 7 7 7-3.1 7-7-3.1-7-7-7z'/%3e%3ccircle cx='8' cy='11' r='1'/%3e%3cpath d='M8.5 9h-1l-.445-4.45A.5.5 0 0 1 7.552 4h.896a.5.5 0 0 1 .497.55L8.5 9z'/%3e%3c/g%3e%3c/svg%3e");mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M8 2c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6 2.7-6 6-6m0-1C4.1 1 1 4.1 1 8s3.1 7 7 7 7-3.1 7-7-3.1-7-7-7z'/%3e%3ccircle cx='8' cy='11' r='1'/%3e%3cpath d='M8.5 9h-1l-.445-4.45A.5.5 0 0 1 7.552 4h.896a.5.5 0 0 1 .497.55L8.5 9z'/%3e%3c/g%3e%3c/svg%3e");background-color:#fff;background-size:contain;display:inline-block;border-radius:50%;width:14px;height:14px}.nav-tabs>li.has-validation-error>a.nav-link.active,.nav.nav-tabs>li.has-validation-error:not(.nav-item)>a.active:not(.nav-link){color:inherit;border:1px solid #ccc;border-bottom-color:#fafafa;background-color:#fafafa}.nav-tabs>li.has-validation-error>a.nav-link.active:before,.nav.nav-tabs>li.has-validation-error:not(.nav-item)>a.active:not(.nav-link):before{background-color:#c83c3c;color:#fff}.tooltip-inner{padding:5px 10px}.popover{padding:0}.popover-header{margin-top:0;border-bottom:0;padding:.75rem}.popover-content p{margin:0}.popover-content .list-group{margin:-9px -14px}.popover-content .list-group .list-group-item{border-radius:0;border-left:0;border-right:0}.popover-content .list-group .list-group-item:last-child{border-bottom:0}.popover .close{margin-right:10px;margin-top:10px}.popover.bottom .arrow:after{border-bottom-color:#f7f7f7}.popover.no-title .arrow:after{border-bottom-color:#fff}.typo3-TCEforms{width:100%}.sortableHandle{cursor:move!important}.t3-form-field-add-flexsection{border-top:1px solid #cdcdcd;padding:10px 5px 5px 0}img.t3-tceforms-sysfile-imagepreview{float:left;margin-right:10px;margin-bottom:10px}.typo3-TCEforms span.typo3-TCEforms-newToken{color:#900;font-weight:700}.t3-form-original-language{background-color:#dadada;border:1px solid silver;padding:2px;font-size:.9em;margin-top:4px;word-break:break-all}.t3-form-original-language-diff{border:1px solid silver;font-size:.9em;margin-top:4px}.t3-form-original-language-diffheader{font-weight:700;padding:2px}.t3-form-original-language-diffcontent{padding:2px}.t3-form-original-language .icon{margin-right:5px}div.t3-form-field-container:first-child .t3-form-field-label-flex{border-top:0}.form-irre-object,.t3-flex-section{transition:opacity .5s;opacity:1}.form-irre-object--deleted,.t3-flex-section--deleted{opacity:0!important}.t3-form-field-container-inline-hidden,.t3-form-field-container-inline-placeHolder{opacity:.3}.t3-form-field-disable{display:none}.formengine-field-item.disabled{position:relative}.formengine-field-item.disabled .t3-form-field-disable{z-index:100;background:#fafafa;display:block;position:absolute;width:100%;height:100%;opacity:.5}.t3-form-field-eval-null-checkbox{z-index:150;position:relative}.list-tree,.list-tree ul{margin-left:8px;padding:0;list-style:none;position:relative}.list-tree ul:before,.list-tree:before{content:"";display:block;width:0;position:absolute;top:0;bottom:11px;left:0;margin-bottom:-2px;border-left:1px dotted #666}.list-tree li{margin:0;padding-left:16px;line-height:21px;position:relative}.list-tree li.active>.list-tree-group:before{content:"";position:absolute;right:-6px;left:-6px;top:-1px;bottom:-1px;display:block;border:1px solid rgba(0,0,0,.25);background-color:rgba(255,255,255,.75);border-radius:2px}.list-tree li:before{content:"";display:block;width:9px;height:0;border-top:1px dotted #666;margin-top:-2px;position:absolute;top:12px;left:2px}.list-tree li.list-tree-comment:before,.list-tree li.list-tree-constant-substitution:before{width:0}.list-tree li:last-child:before{background:#fff;height:auto;left:0;width:11px;bottom:0}.list-tree li .list-tree-control .icon{margin-right:-4px;margin-top:4px}.list-tree li .list-tree-control .icon svg{width:12px;height:12px;background-color:#fff}.list-tree-group{position:relative;display:block;white-space:nowrap}.list-tree-group>span{position:relative}.list-tree-value{font-weight:700}.list-tree-icon{top:-2px}.list-tree-show{position:relative;display:inline-block;width:20px;text-align:center;margin-left:-2px}.list-tree-control{position:absolute;top:0;left:0;display:block;margin-left:-26px;text-align:center;line-height:20px;width:20px;height:20px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-tree-control:before,.list-tree-control:target:before{content:"";position:absolute;top:50%;left:50%;margin-top:-6px;margin-left:-6px;width:12px;height:12px;background-color:#fff}.list-tree-control:active,.list-tree-control:focus,.list-tree-control:hover{cursor:pointer;outline:0;text-decoration:none}.list-tree-control typo3-backend-icon{display:block}.list-tree-control[aria-expanded=true] typo3-backend-icon[identifier=actions-caret-right]{display:none}.list-tree-control[aria-expanded=false] typo3-backend-icon[identifier=actions-caret-down]{display:none}.list-tree-root{margin-left:0}.list-tree-root:before{display:none}.list-tree-root>li{padding-left:20px}.list-tree-root>li:before{display:none}.list-tree-root>li.list-tree-path{margin-left:-20px}.list-tree-root>li>.list-tree-group>.list-tree-control{margin-left:-20px}.list-tree-root>li>.list-tree-group>.list-tree-control:before{background-color:transparent}.list-tree-root-clean>li{padding-left:0}.panel-tab .list-tree li:last-child:before{background-color:#fafafa}.treeline-icon{position:relative;display:inline-block;margin-top:-6px;margin-bottom:-6px;margin-right:2px;padding:0;height:31px;width:16px;white-space:nowrap;overflow:hidden;vertical-align:top}.treeline-icon:after,.treeline-icon:before{position:absolute;content:"";left:50%}.treeline-icon:before{top:0;height:100%;width:2px;margin-left:-1px;border-left:1px dotted #666}.treeline-icon:after{border-top:1px dotted #666;height:2px;width:100%;top:50%;margin-top:-1px}.treeline-icon-jointop:before{top:50%}.treeline-icon-joinbottom:before{top:-50%}.treeline-icon-line:after{display:none}.treeline-icon-blank{display:none}.treeline-icon-clear:after,.treeline-icon-clear:before{display:none}body#typo3-pagetree{margin:0;padding:0}#typo3-pagetree #typo3-inner-docbody{padding:10px 0}span.dragIcon{display:inline-block;height:16px}#dragIcon{position:absolute;visibility:hidden;z-index:20;opacity:.5;white-space:nowrap}.scaffold-content-navigation-component,.scaffold-content-navigation-component .navigation-tree-container,.scaffold-content-navigation-component .svg-tree,.scaffold-content-navigation-component .svg-tree>div{flex:1 0 0;display:flex;flex-direction:column}.scaffold-content-navigation-component .svg-tree-wrapper{flex:1 0 0}.scaffold-content-navigation-component .navigation-tree-container{background-color:#f5f5f5}.ui-block{text-align:center;padding-top:200px;position:absolute;z-index:3000;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.3)}.pagination .paginator-input{display:inline-block;width:auto;margin:-7px 0}.dropzone{position:relative;cursor:pointer;margin:15px 0;padding:1.25em;padding-right:46px;color:#333;border:1px dashed #ccc;transition:all .3s ease-in-out}@media (prefers-reduced-motion:reduce){.dropzone{transition:none}}.dropzone:hover{border-color:#999}.dropzone-mask{position:absolute;left:0;right:0;bottom:0;top:0}.dropzone-close{cursor:pointer;position:absolute;top:5px;right:5px;height:26px;width:26px;text-align:center;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0,0);overflow:hidden;background-color:#eaeaea;color:#333;border:0}.dropzone-close:hover{background-color:#c83c3c}.dropzone-close:hover:before{content:"";vertical-align:middle;-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M11.9 5.5 9.4 8l2.5 2.5c.2.2.2.5 0 .7l-.7.7c-.2.2-.5.2-.7 0L8 9.4l-2.5 2.5c-.2.2-.5.2-.7 0l-.7-.7c-.2-.2-.2-.5 0-.7L6.6 8 4.1 5.5c-.2-.2-.2-.5 0-.7l.7-.7c.2-.2.5-.2.7 0L8 6.6l2.5-2.5c.2-.2.5-.2.7 0l.7.7c.2.2.2.5 0 .7z'/%3e%3c/g%3e%3c/svg%3e");mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M11.9 5.5 9.4 8l2.5 2.5c.2.2.2.5 0 .7l-.7.7c-.2.2-.5.2-.7 0L8 9.4l-2.5 2.5c-.2.2-.5.2-.7 0l-.7-.7c-.2-.2-.2-.5 0-.7L6.6 8 4.1 5.5c-.2-.2-.2-.5 0-.7l.7-.7c.2-.2.5-.2.7 0L8 6.6l2.5-2.5c.2-.2.5-.2.7 0l.7.7c.2.2.2.5 0 .7z'/%3e%3c/g%3e%3c/svg%3e");background-color:#fff;background-size:contain;display:inline-block}.dropzone-close:before{content:"";vertical-align:middle;-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M11.9 5.5 9.4 8l2.5 2.5c.2.2.2.5 0 .7l-.7.7c-.2.2-.5.2-.7 0L8 9.4l-2.5 2.5c-.2.2-.5.2-.7 0l-.7-.7c-.2-.2-.2-.5 0-.7L6.6 8 4.1 5.5c-.2-.2-.2-.5 0-.7l.7-.7c.2-.2.5-.2.7 0L8 6.6l2.5-2.5c.2-.2.5-.2.7 0l.7.7c.2.2.2.5 0 .7z'/%3e%3c/g%3e%3c/svg%3e");mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M11.9 5.5 9.4 8l2.5 2.5c.2.2.2.5 0 .7l-.7.7c-.2.2-.5.2-.7 0L8 9.4l-2.5 2.5c-.2.2-.5.2-.7 0l-.7-.7c-.2-.2-.2-.5 0-.7L6.6 8 4.1 5.5c-.2-.2-.2-.5 0-.7l.7-.7c.2-.2.5-.2.7 0L8 6.6l2.5-2.5c.2-.2.5-.2.7 0l.7.7c.2.2.2.5 0 .7z'/%3e%3c/g%3e%3c/svg%3e");background-color:#333;background-size:contain;display:inline-block;width:14px;height:14px}.dropzone-hint{display:table;background:0 0;border:0;text-align:left;padding:0}.dropzone-hint-body,.dropzone-hint-media{display:table-cell;vertical-align:middle}.dropzone-hint-body :first-child{margin-top:0}.dropzone-hint-body :last-child{margin-bottom:0}.dropzone-hint-media{padding-right:1em}.dropzone-hint-icon{display:flex;justify-content:center;align-items:center;height:40px;width:40px;background-color:#eee;border-radius:50%;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0,0)}.dropzone-hint-icon:before{content:"";vertical-align:middle;-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M10 11h1v1h-1zM12 11h1v1h-1zM11.27 6H4.73a.25.25 0 0 1-.188-.414l3.27-3.743a.244.244 0 0 1 .377 0l3.27 3.743A.25.25 0 0 1 11.27 6z'/%3e%3cpath d='M14.5 9H10v1h4v3H2v-3h4V9H1.5a.5.5 0 0 0-.5.5v4a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 0-.5-.5z'/%3e%3cpath d='M7 6h2v4H7z'/%3e%3c/g%3e%3c/svg%3e");mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M10 11h1v1h-1zM12 11h1v1h-1zM11.27 6H4.73a.25.25 0 0 1-.188-.414l3.27-3.743a.244.244 0 0 1 .377 0l3.27 3.743A.25.25 0 0 1 11.27 6z'/%3e%3cpath d='M14.5 9H10v1h4v3H2v-3h4V9H1.5a.5.5 0 0 0-.5.5v4a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 0-.5-.5z'/%3e%3cpath d='M7 6h2v4H7z'/%3e%3c/g%3e%3c/svg%3e");background-color:#333;background-size:contain;display:inline-block;width:16px;height:16px}.dropzone-hint-title{font-size:12px;font-weight:700;margin-bottom:.25em}.drop-status-ok .dropzone-hint-icon{color:#fff;background:#107c10}.drop-status-ok .dropzone-hint-icon:before{content:"";vertical-align:middle;-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M10 11h1v1h-1zM12 11h1v1h-1zM11.27 6H4.73a.25.25 0 0 1-.188-.414l3.27-3.743a.244.244 0 0 1 .377 0l3.27 3.743A.25.25 0 0 1 11.27 6z'/%3e%3cpath d='M14.5 9H10v1h4v3H2v-3h4V9H1.5a.5.5 0 0 0-.5.5v4a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 0-.5-.5z'/%3e%3cpath d='M7 6h2v4H7z'/%3e%3c/g%3e%3c/svg%3e");mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M10 11h1v1h-1zM12 11h1v1h-1zM11.27 6H4.73a.25.25 0 0 1-.188-.414l3.27-3.743a.244.244 0 0 1 .377 0l3.27 3.743A.25.25 0 0 1 11.27 6z'/%3e%3cpath d='M14.5 9H10v1h4v3H2v-3h4V9H1.5a.5.5 0 0 0-.5.5v4a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 0-.5-.5z'/%3e%3cpath d='M7 6h2v4H7z'/%3e%3c/g%3e%3c/svg%3e");background-color:#fff;background-size:contain;display:inline-block}.drop-in-progress .dropzone-hint-icon:before{content:"";vertical-align:middle;-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M7 2v7.3H5c-.4 0-.6.5-.4.8l3 3.7c.2.2.6.2.8 0l3-3.7c.2-.3 0-.8-.4-.8H9V2H7z'/%3e%3c/g%3e%3c/svg%3e");mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M7 2v7.3H5c-.4 0-.6.5-.4.8l3 3.7c.2.2.6.2.8 0l3-3.7c.2-.3 0-.8-.4-.8H9V2H7z'/%3e%3c/g%3e%3c/svg%3e");background-color:#fff;background-size:contain;display:inline-block}.upload-queue{margin:15px 0}.upload-queue-progress{position:relative;padding:5px;color:#fff;background-color:#999;border:1px solid rgba(0,0,0,.15);text-align:right}.upload-queue-progress-bar{position:absolute;z-index:1;top:0;left:0;bottom:0;background-color:#107c10}.upload-queue-progress-message,.upload-queue-progress-percentage{display:inline;position:relative;z-index:2}.upload-file-picker{position:fixed;bottom:0;right:0;height:1px;width:1px;visibility:hidden}.uploading .upload-queue-progress-bar{background-color:#6daae0}.error .upload-queue-progress-bar{background-color:#c83c3c}.typo3-install{padding:30px;background-color:#dadada}.typo3-install .h1,.typo3-install h1{font-size:28px}.typo3-install .h2,.typo3-install h2{font-size:18px}.typo3-install .h3,.typo3-install h3{font-size:16px}.typo3-install .btn{font-size:inherit;padding:.5em 1em}.typo3-install .alert{padding:1.5em}.typo3-install .alert .h3,.typo3-install .alert h3{font-size:14px;margin-bottom:0}.typo3-install .alert>:first-child{margin-top:0}.typo3-install .alert>:last-child{margin-bottom:0}.typo3-install-container{margin:4em auto;max-width:620px}.typo3-install-content{background-color:#fff;box-shadow:0 2px 1px rgba(0,0,0,.15);overflow:hidden;border-radius:5px}.typo3-install-content>div>:first-child{margin-top:0}.typo3-install-content>div>:last-child{margin-bottom:0}.typo3-install-content-header{padding:35px}.typo3-install-content-header-logo{margin:0 auto;margin-bottom:15px}.typo3-install-content-progress{padding:15px 35px;border-top:1px solid #eaeaea;background-color:#fafafa}.typo3-install-content-body{border-top:1px solid #eaeaea;padding:35px}.typo3-install-content-body>:first-child{margin-top:0}.typo3-install-content-body>:last-child{margin-bottom:0}.typo3-install-content-spacer{margin-top:2em}.typo3-install-content-spacer-small{margin-top:1em}.extensionConfiguration-form .tab-content{margin-bottom:15px}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.text-normal{font-weight:400}.text-pre-wrap{white-space:pre-wrap}.text-wrap-allowed{word-break:break-all;overflow-wrap:break-word}.lead{font-size:1.25em;margin-bottom:1.125rem}@media (min-width:768px){.dl-horizontal dt{text-align:left}}a.disabled{color:#d7d7d7;pointer-events:none;opacity:.4}.media-new-content-element-wizard .media-left input{margin-left:2px}.history-block{border-left:5px solid #a9a9a9;border-bottom:1px dotted #a9a9a9}.belog-filter-form .input-group{max-width:190px}.typo3-login{display:flex;flex-direction:row;width:100%;height:auto!important;background-color:#eee;background-size:cover;background-position:center center}.typo3-login-inner{margin:0 auto;width:99.999%;min-height:100vh;display:flex;flex-direction:column}.typo3-login-container{z-index:100;padding:1.5em;display:flex;flex-direction:column;flex:1 1 auto;align-items:center;justify-content:center}.typo3-login-footnote{margin-left:auto;margin-right:auto;font-size:.95em;text-align:center;padding:1em 1.5em;display:block;color:#666}@media (min-width:768px){.typo3-login-footnote{flex:none;position:absolute;bottom:1.5em;right:0}}.typo3-login-footnote p{margin:0}.typo3-login-wrap{width:100%;max-width:320px;margin:0 auto}.typo3-login-wrap.typo3-login-wrap-large{max-width:960px}.typo3-login-links{padding-top:inherit;margin-top:20px;margin-bottom:20px}.typo3-login-links .disabled{cursor:not-allowed!important;text-decoration:none!important;color:#737373!important}.typo3-login-links .disabled span{cursor:inherit}#t3js-login-url{width:0;height:0;border:0;padding:0;overflow:hidden;clip:rect(0,0,0,0);cursor:default}.typo3-login-logo{padding-top:1em}.typo3-login-logo img{display:block;max-width:100%;height:auto;margin:0 auto}.typo3-login-news-heading{font-size:14px;line-height:1.3em;margin-top:0}.card-login{border-color:#d5d5d5;border-radius:3px;overflow:visible}.card-login .card-heading{padding:2.5em 2.5em 0;border-top-left-radius:2px;border-top-right-radius:2px}.card-login .card-body{padding:1.75em 2.5em 2.5em}.card-login .card-footer{padding:1.5em 2.5em;border-top:3px solid #f80;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.card-login a{font-weight:700}@media (max-width:767px){.card-login{margin-bottom:0}}.card-login.card-mfa .card-heading .h2,.card-login.card-mfa .card-heading h2{margin:.75rem 0}.input-login{height:41.2px;padding:12px 12px;font-size:12px;line-height:1.3333333;border-radius:2px}select.input-login{height:41.2px;line-height:41.2px}select[multiple].input-login,textarea.input-login{height:auto}.input-login{border-color:#949494}.input-login:active,.input-login:active:focus,.input-login:active:hover,.input-login:focus,.input-login:hover{outline:1px solid #000;outline-offset:-1px}.btn-login{--bs-btn-padding-y:12px;--bs-btn-padding-x:12px;--bs-btn-font-size:0.75rem;--bs-btn-border-radius:2px;--bs-btn-color:#fff;--bs-btn-bg:#f80;--bs-btn-border-color:rgba(0, 0, 0, 0.1);--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#d97400;--bs-btn-hover-border-color:rgba(0, 0, 0, 0.1);--bs-btn-focus-shadow-rgb:196,196,196;--bs-btn-active-color:#fff;--bs-btn-active-bg:#cc6d00;--bs-btn-active-border-color:rgba(0, 0, 0, 0.325);--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f80;--bs-btn-disabled-border-color:rgba(0, 0, 0, 0.1);line-height:1.3em;white-space:normal}.typo3-login-carousel{padding:2.5em}.typo3-login-carousel-control{top:50%;margin-top:-30px;height:60px;line-height:60px;width:20px;background-color:#fff;text-align:center;position:absolute;opacity:.75;padding:0;transition:opacity .2s ease-in-out}@media (prefers-reduced-motion:reduce){.typo3-login-carousel-control{transition:none}}.typo3-login-carousel-control:hover{opacity:1}.typo3-login-carousel-control.left{left:-20px;border:1px solid #d5d5d5;border-right:0;border-radius:2px 0 0 2px}.typo3-login-carousel-control.right{right:-20px;border:1px solid #d5d5d5;border-left:0;border-radius:0 2px 2px 0}.typo3-login-copyright-link{font-weight:400!important}.typo3-login-copyright-link>img{float:right;margin-top:-4px}.typo3-login-copyright-text{font-size:.95em;padding-top:1em;color:#444}.typo3-login-copyright-text>:first-child{margin-top:0}.typo3-login-copyright-text>:last-child{margin-bottom:0}.h1,h1{font-family:var(--typo3-header-font-family);font-variant:normal;font-weight:400;margin-top:0;margin-bottom:1.375rem}.h2,.h3,h2,h3{margin-top:1.5rem;margin-bottom:.75rem}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small{font-size:.65em;color:#5a5a5a}blockquote,ol,ul{margin-bottom:9px}ol,ul{padding-left:3em}pre{margin:0}hr{background:0 0;border:none;height:1px}a span{cursor:pointer}video{background-color:#000}.nowrap{white-space:nowrap}.nowrap-disabled{white-space:normal!important}tr:hover .t3-page-ce a{text-decoration:none}em{font-style:italic}.typo3-app-icon{position:relative;display:inline-block;padding:0;height:32px;width:32px;overflow:hidden;border-radius:.125rem;background-color:#484848;vertical-align:middle;transform:translate3d(0,0,0)}.typo3-app-icon>span{display:table;height:100%;width:100%}.typo3-app-icon>span>span{display:table-cell;text-align:center;vertical-align:middle}.typo3-app-icon img{max-height:32px;max-width:32px;margin:0 auto}.typo3-app-icon:after{position:absolute;content:"";display:block;top:0;left:0;right:0;bottom:0;border:1px solid rgba(255,255,255,.1);border-radius:.125rem}.section{margin-bottom:15px}.diff-r{color:red}div.diff-r{background-color:red;color:#000}.diff-g{color:green}div.diff-g{background-color:green;color:#000}div.diff-g,div.diff-r{padding:3px}.t3-overview-list dt{font-weight:700}.media-gallery__list .media-gallery__item{display:inline-block;float:none;margin-bottom:15px;margin-right:-4px;vertical-align:top}.media-gallery__list .media-gallery__item .media-object{max-height:158px;overflow:hidden}.media-gallery__list .media-gallery__item img.thumbnail{height:auto;margin-bottom:0;max-height:150px;max-width:100%}.media-gallery__list .media-gallery__item span.thumbnail{display:inline-block;margin-bottom:0}:root{--grideditor-grid-spacing:1rem;--grideditor-cell-spacing:1rem;--grideditor-cell-bg:#fff;--grideditor-cell-border-radius:4px;--grideditor-cell-shadow:0 1px 2px 1px rgba(0, 0, 0, .15);--grideditor-action-size:32px;--grideditor-action-spacing:2px;--grideditor-action-bg:#fafafa;--grideditor-action-focus-bg:#e6f2fd;--grideditor-action-focus-outline-color:#3393eb;--grideditor-action-hover-bg:#f2f8fe}.grideditor{display:grid;grid-template:"grideditor-control-top ." "grideditor-editor grideditor-control-right" "grideditor-control-bottom ." "grideditor-preview grideditor-preview" auto/minmax(auto,1fr);gap:var(--grideditor-grid-spacing)}.grideditor-control{justify-content:center;align-items:center;display:flex}.grideditor-control-top{grid-area:grideditor-control-top}.grideditor-control-right{grid-area:grideditor-control-right}.grideditor-control-bottom{grid-area:grideditor-control-bottom}.grideditor-editor{grid-area:grideditor-editor}.grideditor-editor-grid{display:grid;gap:1em;width:100%}.grideditor-preview{grid-area:grideditor-preview}.grideditor-preview typo3-t3editor-codemirror{border:1px solid #d7d7d7}.grideditor-cell{--grideditor-cell-col-start:var(--grideditor-cell-col, 1);--grideditor-cell-col-end:calc(var(--grideditor-cell-col, 1) + var(--grideditor-cell-colspan, 1));--grideditor-cell-row-start:var(--grideditor-cell-row, 1);--grideditor-cell-row-end:calc(var(--grideditor-cell-row, 1) + var(--grideditor-cell-rowspan, 1));grid-column:var(--grideditor-cell-col-start)/var(--grideditor-cell-col-end);grid-row:var(--grideditor-cell-row-start)/var(--grideditor-cell-row-end);height:100%;width:100%;display:flex;min-height:100px;flex-direction:column;border:1px solid var(--grideditor-cell-bg);background-color:var(--grideditor-cell-bg);border-radius:var(--grideditor-cell-border-radius);box-shadow:var(--grideditor-cell-shadow)}.grideditor-cell>*{width:100%}.grideditor-cell-actions{position:relative;flex-grow:1;min-height:calc(var(--grideditor-cell-spacing) + (var(--grideditor-action-size) + var(--grideditor-action-spacing)) * 3);min-width:calc(var(--grideditor-cell-spacing) + (var(--grideditor-action-size) + var(--grideditor-action-spacing)) * 3)}.grideditor-cell-info{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:.75rem;line-height:1.2em;padding:calc(var(--grideditor-cell-spacing)/ 2) var(--grideditor-cell-spacing);background-color:rgba(0,0,0,.05);border-bottom-left-radius:var(--grideditor-cell-border-radius);border-bottom-right-radius:var(--grideditor-cell-border-radius)}.grideditor-action{position:absolute;display:flex;justify-content:center;align-items:center;top:50%;left:50%;transform:translate(-50%,-50%);width:var(--grideditor-action-size);height:var(--grideditor-action-size);border-radius:2px;background-color:var(--grideditor-action-bg)}.grideditor-action:focus,.grideditor-action:hover{outline:0;background-color:var(--grideditor-action-hover-bg)}.grideditor-action:focus{z-index:1;background-color:var(--grideditor-action-focus-bg);outline:1px solid var(--grideditor-action-focus-outline-color);outline-offset:0}.grideditor-action-expand-down{top:calc(50% + var(--grideditor-action-size) + var(--grideditor-action-spacing))}.grideditor-action-expand-right{left:calc(50% + var(--grideditor-action-size) + var(--grideditor-action-spacing))}.grideditor-action-shrink-up{top:calc(50% - var(--grideditor-action-size) - var(--grideditor-action-spacing))}.grideditor-action-shrink-left{left:calc(50% - var(--grideditor-action-size) - var(--grideditor-action-spacing))}::-ms-clear{display:none}.has-change .checkbox,.has-change .checkbox-inline,.has-change .control-label,.has-change .form-check-input,.has-change .help-block,.has-change .radio,.has-change .radio-inline,.has-change.checkbox label,.has-change.checkbox-inline label,.has-change.form-check-label,.has-change.radio label,.has-change.radio-inline label{color:#6daae0}.has-change .form-control{border-color:#6daae0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-change .form-control:focus{border-color:#4392d7;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c1dbf2}.has-change .input-group-addon{color:#6daae0;background-color:#e9f2fa;border-color:#6daae0}.has-change .form-control-feedback{color:#6daae0}.has-change .thumbnail-status{border:1px solid #6daae0}.input-group-icon{vertical-align:middle}.input-group-icon img{max-height:18px}.input-group-addon{min-width:2.5rem}label .icon img{pointer-events:none}.form-control{min-width:120px}.form-control-adapt{width:auto;max-width:100%}.form-control-wrap{margin:.5rem 0}.form-control-holder{position:relative}.row>.form-group>.form-control-wrap{margin-bottom:0}.form-group .t3js-formengine-field-item{position:relative}.form-group .t3js-formengine-field-item>.t3js-charcounter-wrapper{left:0;position:absolute;top:100%;display:flex;margin:0 -2px}.form-group .t3js-formengine-field-item>.t3js-charcounter-wrapper .t3js-charcounter{margin:0 2px}.form-group .t3js-formengine-field-item>.t3js-charcounter-wrapper .t3js-charcounter-min{margin:0 2px}.form-group>.form-label,.form-group>label{font-weight:600;margin:0 0 .25rem;word-break:break-all}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{color:#737373}.form-control-icon{position:absolute;top:50%;left:15px;transform:translate(0,-50%);z-index:1;pointer-events:none}.form-control-icon+.form-control,.form-control-icon+.form-control-clearable .form-control{padding-left:3.25em}.form-group.has-error label:before{content:"";vertical-align:middle;-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M8 2c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6 2.7-6 6-6m0-1C4.1 1 1 4.1 1 8s3.1 7 7 7 7-3.1 7-7-3.1-7-7-7z'/%3e%3ccircle cx='8' cy='11' r='1'/%3e%3cpath d='M8.5 9h-1l-.445-4.45A.5.5 0 0 1 7.552 4h.896a.5.5 0 0 1 .497.55L8.5 9z'/%3e%3c/g%3e%3c/svg%3e");mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M8 2c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6 2.7-6 6-6m0-1C4.1 1 1 4.1 1 8s3.1 7 7 7 7-3.1 7-7-3.1-7-7-7z'/%3e%3ccircle cx='8' cy='11' r='1'/%3e%3cpath d='M8.5 9h-1l-.445-4.45A.5.5 0 0 1 7.552 4h.896a.5.5 0 0 1 .497.55L8.5 9z'/%3e%3c/g%3e%3c/svg%3e");background-color:#c83c3c;background-size:contain;display:inline-block;border-radius:50%;width:14px;height:14px}.form-group.has-error .btn-toolbar label:before{font-family:inherit;font-size:inherit;margin-right:inherit;text-align:inherit;content:"";color:inherit;display:block}.form-group.has-error .input-group-btn label{border-color:#c83c3c}.form-group.has-error .input-group-btn label:before{font-family:inherit;font-size:inherit;margin-right:inherit;text-align:inherit;content:"";color:inherit;display:block}select.form-select[multiple],select.form-select[size]:not([size="1"]){min-height:156px}select.form-select>optgroup{margin-top:9px}select.form-select>optgroup:first-child{margin-top:0}select.form-select option{padding-top:2px;padding-bottom:2px}select.icon-select option{padding-left:22px}.form-control-clearable{position:relative;border:0;padding:0}.form-control-clearable input[type=search]::-webkit-search-cancel-button{display:none}.form-control-clearable .form-control{padding-right:2.3em}.form-control-clearable .close{border:none;background-color:transparent;position:absolute;height:16px;z-index:3;top:50%;right:.5em;transform:translate(0,-50%);opacity:.2}.form-control-clearable .close:hover{opacity:.5}.form-control-clearable .close .icon{vertical-align:0}.form-control-clearable:focus{box-shadow:none;border-color:inherit}.form-inline .form-control-clearable{display:inline-block}.form-notice-capslock{position:absolute;right:25px;top:50%;margin-top:-10px;height:20px;width:20px;padding:3px;z-index:10;background-color:#fff}.form-notice-capslock>img{display:block;opacity:.5}.form-group-dashed+.form-group-dashed{padding-top:15px;border-top:1px dashed #ccc}.form-section{border:1px solid #ccc;background-color:#fafafa;padding:15px 12px 3px}.form-section+.form-section{margin-top:-1px}.tab-pane>.form-section:first-child{border-top:none}.form-section-headline{margin-top:0;margin-bottom:10px}.form-section-headline+.form-section-description{margin-top:-5px;margin-bottom:10px}.form-wizards-wrap{width:100%;display:grid;grid-template:"top . ." "main side-move side-control" "bottom . .";grid-template-rows:auto;grid-template-columns:1fr auto auto}.form-wizards-wrap>.form-wizards-element{grid-area:main;min-width:120px}.form-wizards-wrap>.form-wizards-element .col-icon img,.form-wizards-wrap>.form-wizards-element .inline-icon img{max-width:2em;max-height:2em}.form-wizards-wrap>.form-wizards-element .radio:not(.disabled) input[type=radio]{cursor:pointer}.form-wizards-wrap>.form-wizards-items-top{width:100%;grid-area:top}.form-wizards-wrap>.form-wizards-items-aside{align-self:flex-start;white-space:nowrap;padding-left:5px}.form-wizards-wrap>.form-wizards-items-aside--move{grid-area:side-move}.form-wizards-wrap>.form-wizards-items-aside--field-control{grid-area:side-control}.form-wizards-wrap>.form-wizards-items-bottom{grid-area:bottom}.form-wizards-wrap>.form-wizards-items-bottom .tablelist-item-nolink{padding:6px;display:inline-block}.form-wizards-wrap>.form-wizards-items-bottom:first-child{margin-top:4px}.form-irre-header{display:flex;align-items:center;margin:-5px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.form-irre-header-cell{vertical-align:middle;white-space:nowrap;padding:5px}.form-irre-header-button{display:flex;text-align:left;align-items:center;align-self:stretch;background:0 0;border:0;width:100%;margin-left:-15px;padding-left:20px}.form-irre-header-body{width:100%;font-weight:400;white-space:normal;padding-left:5px}.form-irre-header-body dd,.form-irre-header-body dl,.form-irre-header-body dt{margin-bottom:0}.form-irre-header-icon{padding-right:0}.form-irre-header-thumbnail{padding-right:5px}.form-irre-header-control{cursor:auto}.form-irre-header-control .btn-group>.btn{float:none}.form-multigroup-wrap{width:100%;display:flex}.form-multigroup-wrap .form-multigroup-item{width:50%;align-self:flex-start}.form-multigroup-wrap .form-multigroup-item+.form-multigroup-item{padding-left:5px}.form-multigroup-wrap .form-multigroup-item-wizard{margin-bottom:5px}.form-multigroup-wrap .form-multigroup-item-wizard+select.form-select[multiple],.form-multigroup-wrap .form-multigroup-item-wizard+select.form-select[size]{min-height:125px}.form-multigroup-wrap .form-wizards-wrap{width:100%}.checkbox-row,.radio-row{margin-top:10px;margin-bottom:5px}.checkbox-column,.radio-column{margin-bottom:5px}.checkbox-column>.checkbox,.checkbox-column>.form-check-input,.checkbox-column>.radio,.radio-column>.checkbox,.radio-column>.form-check-input,.radio-column>.radio{margin:0}.checkbox-inline.checkbox,.checkbox-inline.form-check-input,.checkbox-inline.radio,.radio-inline.checkbox,.radio-inline.form-check-input,.radio-inline.radio{display:block;margin-left:0;margin-right:10px;margin-bottom:10px;padding:0}@media (max-width:767px){.checkbox-inline.checkbox+.checkbox,.checkbox-inline.checkbox+.form-check-in,.checkbox-inline.checkbox+.radio,.checkbox-inline.form-check-input+.checkbox,.checkbox-inline.form-check-input+.form-check-in,.checkbox-inline.form-check-input+.radio,.checkbox-inline.radio+.checkbox,.checkbox-inline.radio+.form-check-in,.checkbox-inline.radio+.radio,.radio-inline.checkbox+.checkbox,.radio-inline.checkbox+.form-check-in,.radio-inline.checkbox+.radio,.radio-inline.form-check-input+.checkbox,.radio-inline.form-check-input+.form-check-in,.radio-inline.form-check-input+.radio,.radio-inline.radio+.checkbox,.radio-inline.radio+.form-check-in,.radio-inline.radio+.radio{margin-top:-5px}}@media (min-width:768px){.checkbox-inline.checkbox,.checkbox-inline.form-check-input,.checkbox-inline.radio,.radio-inline.checkbox,.radio-inline.form-check-input,.radio-inline.radio{display:inline-block;margin-top:10px}.checkbox-inline.checkbox label,.checkbox-inline.form-check-input label,.checkbox-inline.radio label,.radio-inline.checkbox label,.radio-inline.form-check-input label,.radio-inline.radio label{white-space:nowrap}}textarea.formengine-textarea{resize:none}.input-group>.form-control-clearable{flex:1 1 auto;width:1%;min-width:0}.form-control:not(.hidden)+.form-control-clearable{flex-grow:0;width:auto}.form-control.hidden+.close{display:none}.form-toggle{padding-left:2em;width:2em;color:rgba(0,0,0,.25)}.form-toggle:hover{cursor:pointer}.form-toggle input[type=checkbox]{border:0;width:16px;height:16px;background-size:contain;background-image:url("data:image/svg+xml, %3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M13 2c.6 0 1 .4 1 1v10c0 .6-.4 1-1 1H3c-.6 0-1-.4-1-1V3c0-.6.4-1 1-1h10m0-1H3c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2z'/%3e%3c/g%3e%3c/svg%3e")}.form-toggle input[type=checkbox]:hover{cursor:pointer}.form-toggle input[type=checkbox]:active{filter:brightness(100%)}.form-toggle input[type=checkbox]:checked{background-image:url("data:image/svg+xml, %3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cg class='icon-color'%3e%3cpath d='M12.1 5.3l-.4-.3c-.1-.1-.3-.1-.4 0L6.6 9.8l-2-2c-.1-.1-.3-.1-.4 0l-.3.4c-.1.1-.1.3 0 .4L6 10.7l.4.3c.1.1.3.1.4 0l.4-.4 4.9-4.9c.1-.1.1-.3 0-.4z'/%3e%3cpath d='M13 2c.6 0 1 .4 1 1v10c0 .6-.4 1-1 1H3c-.6 0-1-.4-1-1V3c0-.6.4-1 1-1h10m0-1H3c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2z'/%3e%3c/g%3e%3c/svg%3e");background-color:#fff}.form-toggle input[type=checkbox]:disabled{opacity:.5}.sticky-form-actions{position:sticky;top:0;z-index:2;padding:calc(1rem / 2) 1rem;background:#fff}.modal-body .sticky-form-actions{margin-left:calc(var(--bs-modal-padding) * -1);margin-right:calc(var(--bs-modal-padding) * -1);margin-bottom:var(--bs-modal-padding);padding:calc(var(--bs-modal-padding)/ 2) var(--bs-modal-padding);border-bottom:var(--bs-modal-border-width) solid var(--bs-modal-border-color)}.modal-body .sticky-form-actions:first-child{transform:translateY(calc(var(--bs-modal-padding) * -1));margin-bottom:0}.multi-record-selection-actions-wrapper{min-height:26px;margin:.5rem 0}.input-group>.btn{display:flex;align-items:center}.media-new-content-element-wizard .media-left input{margin-left:2px}.localization-wizard .option{margin-bottom:4px}[data-bs-slide=localize-summary] .input-group{margin-bottom:4px}[data-bs-slide=localize-summary] .input-group .form-control{height:auto;font-weight:400;margin:0}[data-bs-slide=localize-summary] .localization-fieldset{margin-bottom:12px}[data-bs-slide=localize-summary] .localization-fieldset>label{padding:0 4px}[data-bs-slide=localize-summary] .localization-fieldset>label input[type=checkbox]{margin:0 6px}.recordlist{overflow:unset}.recordlist .recordlist-heading{font-weight:700;background-color:#d7d7d7;color:#5a5a5a}.recordlist .recordlist-heading a{color:inherit}.recordlist table tr td.deletePlaceholder{text-decoration:line-through}.recordlist .pagination{display:inline-flex}div.typo3-localizationLink,div.typo3-newRecordLink,div.typo3-synchronizationLink{display:inline}.t3-filelist-info-container{display:flex;min-height:300px;flex-direction:column;justify-content:center;align-items:center;margin-top:-2rem}.filelist-main .dropzone{position:absolute;cursor:pointer;margin:0;padding:0;top:var(--module-docheader-height);left:0;z-index:10;height:calc(100% - var(--module-docheader-height));width:100%;border:2px dashed #6daae0;background-color:rgba(222,235,255,.48);mix-blend-mode:normal;color:#333}.filelist-main .dropzone:hover{border-color:#6daae0}.filelist-main .dropzone .dropzone-close{top:.5rem;right:.5rem;height:2rem;width:2rem;font-size:1rem;line-height:1.5rem;background-color:#fff;color:#333}.filelist-main .dropzone .dropzone-close:hover{color:#fff;background-color:#c83c3c}.filelist-main .dropzone .dropzone-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;padding:1rem;box-shadow:0 .25rem .5rem rgba(0,0,0,.15)}pre.ts-hl{font-family:"Lucida Console","Lucida Sans Typewriter","Bitsream Vera Sans Mono",monospace}pre.ts-hl .ts-operator{color:#000;font-weight:700}pre.ts-hl .ts-value{color:#c00}pre.ts-hl .ts-objstr{color:#00c}pre.ts-hl .ts-value_copy{color:#060}pre.ts-hl .ts-default,pre.ts-hl .ts-ignored,pre.ts-hl .ts-value_unset{background-color:#6c6}pre.ts-hl .ts-comment{color:#666;font-style:italic}pre.ts-hl .ts-condition{background-color:maroon;color:#fff;font-weight:700}pre.ts-hl .ts-error{background-color:#ff0;border:1px red dashed;font-weight:700;color:#000}pre.ts-hl .ts-linenum{background-color:#eee;color:#212424}.access-legend{margin-bottom:18px}.access-legend .number{border:1px solid #000;border-radius:2px;width:16px;height:16px;display:inline-block;text-align:center;margin-right:5px;margin-left:10px;line-height:14px;font-weight:700}.access-legend .edge span{width:1px;height:10px;background:#000;display:block;margin-top:8px;margin-left:6px}.access-legend .edge span span{width:10px;height:1px;margin-left:1px}.access-legend .hr span{width:20px;height:1px;background:#000;display:block;margin-top:-1px;margin-left:-4px}.access-legend .t3-vr span{width:1px;height:20px;background:#000;margin-top:-2px;margin-left:6px;display:block}#tx_beuser_compare .list-tree-value{white-space:normal}.extensionmanager-is-loading{opacity:0!important}.extensionmanager-is-hidden{display:none!important}.extensionmanager-is-shown{display:block!important}.extension-list-last-updated{font-weight:700;padding-right:.4em;cursor:help}.extension-list th:nth-child(1),.extension-list th:nth-child(2){width:4%}.extension-list th:nth-child(3),.extension-list th:nth-child(4){width:30%}.extension-list th:nth-child(5),.extension-list th:nth-child(6),.extension-list th:nth-child(7){width:7%}.extension-list th:nth-child(8){width:11%}.extension-list tr.installed td{background-color:#ccdec2}.extension-list tr.available td{background-color:#e1e1aa}.extension-list tr.insecure,.extension-list tr.insecure td{background-color:#ffd9d9}.extension-list tr.outdated,.extension-list tr.outdated td{background-color:#d1d0ff}.extension-list tr.inactive,.extension-list tr.inactive td{color:#aaa}.extension-list-search{padding-right:2.3em}.extension-icon{height:16px;width:16px}#terTableWrapper{position:relative;margin-top:1em}#terTableWrapper .splash-receivedata{display:none;position:absolute;top:50px;left:0;right:0;text-align:center}.distribution-official-badge{position:absolute;bottom:0;right:.75em;transform:translate(0,25%)}.distribution-official-badge img{width:50px;display:block}@media (min-width:768px){.distribution-official-badge img{width:64px}}.distribution-image{display:block;max-height:225px;overflow:hidden}.distribution-detail-previewpane{margin-bottom:2em;max-width:100%}@media (min-width:768px){.distribution-detail-previewpane{float:left;margin-right:3em}}.distribution-detail-body{overflow:hidden;zoom:1}.distribution-detail-header{margin-bottom:2.5em}.distribution-detail-header .h1,.distribution-detail-header h1{margin-bottom:.5em}.distribution-detail-header p{padding:0;max-width:500px;margin-bottom:1.25em}.distribution-detail-actions{list-style:none;padding:0}.distribution-detail-actions li{margin:.25em 0}.help-view img{margin:1em 0}.help-copyright{margin-top:1em;padding-top:1em;border-top:1px solid rgba(0,0,0,.15)}.help-teaser{cursor:help!important}.help-has-link{cursor:pointer!important}#PageInformationControllerTable a[data-contextmenu-trigger]{margin-right:4px}.install-tool-init .logo-pageheader img{padding-bottom:3px;vertical-align:bottom}.install-tool-installer{overflow-y:auto}.install-tool-installer .typo3-message>.h4,.install-tool-installer .typo3-message>h4{margin-bottom:0}.install-tool-installer .typo3-message p{margin-top:9px}.install-tool-modal .panel-rst .panel-collapse,.install-tool-modal .panel-version .panel-collapse{position:relative;overflow:auto}.install-tool-modal .panel-rst .panel-heading,.install-tool-modal .panel-version .panel-heading{position:relative}.install-tool-modal .panel-rst .panel-heading button.link-action,.install-tool-modal .panel-version .panel-heading button.link-action{padding:0}.install-tool-modal .panel-rst .panel-heading strong,.install-tool-modal .panel-version .panel-heading strong{line-height:1.5em}.install-tool-modal .panel-rst .rst-tags,.install-tool-modal .panel-version .rst-tags{position:absolute;display:flex;gap:.5rem;top:calc(var(--panel-padding)/ 2);right:var(--panel-padding)}.install-tool-modal .panel-rst .rst-tags~.panel-body,.install-tool-modal .panel-version .rst-tags~.panel-body{padding-top:calc(var(--panel-padding) * 2)}.install-tool-modal .panel-rst .rst-links,.install-tool-modal .panel-version .rst-links{position:absolute;display:flex;gap:.5rem;bottom:calc(var(--panel-padding)/ 2);right:var(--panel-padding)}.install-tool-modal .panel-rst .rst-links~.panel-body,.install-tool-modal .panel-version .rst-links~.panel-body{padding-bottom:calc(var(--panel-padding) * 2)}.install-tool-modal .list-group-item a{display:block}.install-tool-modal .list-group-item.active a{color:#fff}.install-tool-modal a[data-bs-toggle=collapse]{display:block}.install-tool-modal hr{border-top:1px solid #ddd}.install-tool-modal .table .t3-languagePacks-inactive,.install-tool-modal .table .t3-languagePacks-inactive td{color:#aaa}.install-tool-modal .t3-install-displaytwinimageimages{border:1px solid #ccc;padding:10px}.install-tool-modal .t3-install-displaytwinimagetextarea pre{border-top:0}.install-tool-modal .bg-transparent-emulation{padding:10px;text-align:center;background:url(../Images/bg_transparent_emulation.png)}.install-tool-modal .bg-transparent-emulation img{max-width:300px}.install-tool-modal #phpinfo table{width:100%;table-layout:fixed;word-wrap:break-word;background:#fff}.install-tool-modal .upgrade_analysis_item_to_filter pre a{text-decoration:underline}.install-tool-modal .upgradeWizards-wizards-output .row-explanation{white-space:pre-wrap}.install-tool-modal ul{word-wrap:anywhere}.panel-success.risk-high{--panel-success-high-border-color:#409640;--panel-success-high-progress-bg:#107c10;--panel-success-high-heading-color:#000;--panel-success-high-heading-bg:#7cb77c;--panel-border-color:var(--panel-success-high-border-color);--panel-progress-bg:var(--panel-success-high-progress-bg);--panel-heading-color:var(--panel-success-high-heading-color);--panel-heading-bg:var(--panel-success-high-heading-bg)}.panel-success.risk-medium{--panel-success-medium-border-color:#70b070;--panel-success-medium-progress-bg:#107c10;--panel-success-medium-heading-color:#000;--panel-success-medium-heading-bg:#abd1ab;--panel-border-color:var(--panel-success-medium-border-color);--panel-progress-bg:var(--panel-success-medium-progress-bg);--panel-heading-color:var(--panel-success-medium-heading-color);--panel-heading-bg:var(--panel-success-medium-heading-bg)}.panel-warning.risk-high{--panel-warning-high-border-color:#edb564;--panel-warning-high-progress-bg:#e8a33d;--panel-warning-high-heading-color:#000;--panel-warning-high-heading-bg:#f2cc94;--panel-border-color:var(--panel-warning-high-border-color);--panel-progress-bg:var(--panel-warning-high-progress-bg);--panel-heading-color:var(--panel-warning-high-heading-color);--panel-heading-bg:var(--panel-warning-high-heading-bg)}.panel-warning.risk-medium{--panel-warning-medium-border-color:#f1c88b;--panel-warning-medium-progress-bg:#e8a33d;--panel-warning-medium-heading-color:#000;--panel-warning-medium-heading-bg:#f7dfbb;--panel-border-color:var(--panel-warning-medium-border-color);--panel-progress-bg:var(--panel-warning-medium-progress-bg);--panel-heading-color:var(--panel-warning-medium-heading-color);--panel-heading-bg:var(--panel-warning-medium-heading-bg)}.panel-danger.risk-high{--panel-danger-high-border-color:#d36363;--panel-danger-high-progress-bg:#c83c3c;--panel-danger-high-heading-color:#000;--panel-danger-high-heading-bg:#e19494;--panel-border-color:var(--panel-danger-high-border-color);--panel-progress-bg:var(--panel-danger-high-progress-bg);--panel-heading-color:var(--panel-danger-high-heading-color);--panel-heading-bg:var(--panel-danger-high-heading-bg)}.panel-danger.risk-medium{--panel-danger-medium-border-color:#de8a8a;--panel-danger-medium-progress-bg:#c83c3c;--panel-danger-medium-heading-color:#000;--panel-danger-medium-heading-bg:#ecbbbb;--panel-border-color:var(--panel-danger-medium-border-color);--panel-progress-bg:var(--panel-danger-medium-progress-bg);--panel-heading-color:var(--panel-danger-medium-heading-color);--panel-heading-bg:var(--panel-danger-medium-heading-bg)}.panel-info.risk-high{--panel-info-high-border-color:#8abbe6;--panel-info-high-progress-bg:#6daae0;--panel-info-high-heading-color:#000;--panel-info-high-heading-bg:#afd0ee;--panel-border-color:var(--panel-info-high-border-color);--panel-progress-bg:var(--panel-info-high-progress-bg);--panel-heading-color:var(--panel-info-high-heading-color);--panel-heading-bg:var(--panel-info-high-heading-bg)}.panel-info.risk-medium{--panel-info-medium-border-color:#a7ccec;--panel-info-medium-progress-bg:#6daae0;--panel-info-medium-heading-color:#000;--panel-info-medium-heading-bg:#cce1f4;--panel-border-color:var(--panel-info-medium-border-color);--panel-progress-bg:var(--panel-info-medium-progress-bg);--panel-heading-color:var(--panel-info-medium-heading-color);--panel-heading-bg:var(--panel-info-medium-heading-bg)}.localconf-list{display:flex;flex-direction:column;gap:1rem}.localconf-item{width:100%;border:1px solid #bebebe}.localconf-item.searchhit~.alert{display:none}.localconf-item-heading{padding:.5rem 1rem;background-color:#eee}.localconf-item-body{padding:1rem}.localconf-item-body>:first-child{margin-top:0}.localconf-item-body>:last-child{margin-bottom:0}.localconf-item-body .form-text{font-size:1em;margin-top:0}html{scroll-behavior:smooth}:target:before{content:"";display:block;height:80px;margin:-80px 0 0}:root{--pagemodule-grid-spacing:1rem;--pagemodule-grid-inner-spacing:1rem;--pagemodule-grid-cell-header-size:1em;--pagemodule-grid-cell-border-radius:4px;--pagemodule-grid-cell-bg:#f2f2f2;--pagemodule-grid-cell-restricted-bg:#fcf1e2;--pagemodule-grid-column-unused-bg:#fcf1e2;--pagemodule-element-spacing:1rem;--pagemodule-element-bg:#fff;--pagemodule-element-border-radius:2px;--pagemodule-element-box-shadow:0 1px 2px 1px rgba(0, 0, 0, .15);--pagemodule-element-warning-bg:#fcf1e2;--pagemodule-element-warning-border-color:#f6dab1;--pagemodule-element-hidden-bg:#f2f2f2;--pagemodule-dropzone-bg:#fcf1e2;--pagemodule-dropzone-possible-bg:#dbebdb}.t3-grid-table{border-collapse:separate;border-spacing:var(--pagemodule-grid-spacing);min-width:100%;table-layout:fixed}.t3-grid-container{margin:0 calc(var(--pagemodule-grid-spacing) * -1)}.t3-grid-cell{border-radius:var(--pagemodule-grid-cell-border-radius);background-color:var(--pagemodule-grid-cell-bg);padding:calc(var(--pagemodule-grid-inner-spacing) - var(--pagemodule-grid-spacing)) 0}.t3-grid-cell-restricted{background-color:var(--pagemodule-grid-cell-restricted-bg)}.t3-page-column-unused{background-color:var(--pagemodule-grid-column-unused-bg)}.t3-grid-cell-hidden{display:none}.t3-grid-cell-unassigned{background-image:repeating-linear-gradient(-45deg,rgba(0,0,0,.05),rgba(0,0,0,.05) 5px,transparent 5px,transparent 10px)}.t3-page-columns{min-width:100%;border:0}.t3-page-column{min-width:150px;max-width:300px}.t3-page-column-lang-name .h2,.t3-page-column-lang-name h2{margin:0}.t3-page-column-header{font-weight:700;margin:var(--pagemodule-element-spacing) var(--pagemodule-grid-inner-spacing);margin-right:calc(var(--pagemodule-grid-inner-spacing) * 2);position:relative;text-align:left;font-size:var(--pagemodule-grid-cell-header-size)}.t3-page-column-header a{position:relative}.t3-page-column-header-icons{transition:opacity .15s ease-in;opacity:.3;position:absolute;right:calc(var(--pagemodule-grid-inner-spacing) * -1);bottom:0}@media (prefers-reduced-motion:reduce){.t3-page-column-header-icons{transition:none}}.t3-page-column-header-icons:hover{opacity:1}.t3-page-lang-copyce{margin:var(--pagemodule-grid-spacing)}.t3-page-ce{display:block;position:relative;margin:var(--pagemodule-grid-spacing) var(--pagemodule-grid-inner-spacing);transition:height .4s ease-out;overflow:hidden}.t3-page-ce.active-drag{z-index:4500}.t3-page-ce-element{border:1px solid var(--pagemodule-element-bg);background-color:var(--pagemodule-element-bg);border-radius:var(--pagemodule-element-border-radius);box-shadow:var(--pagemodule-element-box-shadow);margin-bottom:var(--pagemodule-grid-spacing)}.t3-page-ce-hidden .t3-page-ce-element{opacity:.5;border:1px dashed rgba(0,0,0,.5);background-color:var(--pagemodule-element-hidden-bg);box-shadow:none;transition:opacity .3s ease-in-out}.t3-page-ce-hidden .t3-page-ce-element:hover{opacity:1}.t3-page-ce-warning .t3-page-ce-element{border:1px solid var(--pagemodule-element-warning-border-color);background-color:var(--pagemodule-element-warning-bg);box-shadow:none}.t3-page-ce-header{display:flex;align-items:center;gap:.5rem;padding:var(--pagemodule-element-spacing)}.t3-page-ce-header-left,.t3-page-ce-header-right{flex-shrink:0}.t3-page-ce-header-title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex-grow:1;font-weight:700}.t3-page-ce-body{padding:var(--pagemodule-grid-spacing);word-wrap:break-word;margin-top:calc(var(--pagemodule-grid-spacing) * -1)}.t3-page-ce-body:empty{display:none}.t3-page-ce-body img{max-width:100%;height:auto}.t3-page-ce-footer{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:.75rem;padding:calc(var(--pagemodule-grid-spacing)/ 2) var(--pagemodule-grid-spacing);background-color:rgba(0,0,0,.05);border-bottom-left-radius:var(--pagemodule-element-border-radius);border-bottom-right-radius:var(--pagemodule-element-border-radius)}.t3-page-ce-actions{text-align:center;z-index:2;height:40px}.t3-page-ce-dropzone{position:relative;top:0;z-index:297;border-radius:var(--pagemodule-element-border-radius);background-color:var(--pagemodule-dropzone-bg)}.t3-page-ce-dropzone.active{border:1px dashed rgba(0,0,0,.15);height:40px;width:100%}.t3-page-ce-dropzone.active.t3-page-ce-dropzone-possible{background-color:var(--pagemodule-dropzone-possible-bg);z-index:298}.element-preview-header:empty{display:none}.element-preview-header-status{font-size:10.5px;opacity:.5}.element-preview-header-date{font-size:10.5px}.element-preview-header-header{font-weight:700}.element-preview-header-subheader{font-weight:700}.element-preview-header+.element-preview-content{margin-top:.5rem}.element-preview-content:empty{display:none}.element-preview-content>:first-child{margin-top:0}.element-preview-content>:last-child{margin-bottom:0}.element-preview-content .preview-thumbnails{margin-top:.5rem}:root{--preview-thumbnails-size:64px}.preview-thumbnails{display:flex;flex-wrap:wrap;gap:.5rem}.preview-thumbnails-element{display:block}.preview-thumbnails-element-image{height:var(--preview-thumbnails-size);width:var(--preview-thumbnails-size);display:flex;background-color:rgba(0,0,0,.05);overflow:hidden;border-radius:2px;justify-content:center;align-items:center}.preview-thumbnails-element-image .icon{height:calc(var(--preview-thumbnails-size)/ 2);width:calc(var(--preview-thumbnails-size)/ 2)}.t3-page-ce-dragitem .t3-page-ce-header-draggable:hover{cursor:move}.draggable-dragging{position:absolute;z-index:299!important;opacity:.5;box-shadow:0 1px 24px rgba(0,0,0,.5)}.draggable-dragging .t3-page-ce-actions{display:none}.draggable-dragging .t3-page-ce-element{margin-bottom:0}.draggable-dragging .draggable-copy-message{font-size:10.5px;position:absolute;top:-1.25rem}.t3-new-content-element-wizard-window{background-color:#fafafa;padding:0}.t3-new-content-element-wizard-window .t3-new-content-element-wizard-title{background-color:#292929;color:#fff;padding:.625rem 1rem}.t3-new-content-element-wizard-window .t3-new-content-element-wizard-title .h2,.t3-new-content-element-wizard-window .t3-new-content-element-wizard-title h2{font-size:1rem;margin:0}.t3-new-content-element-wizard-window .t3-new-content-element-wizard-title+.nav-tabs{padding-top:0}.t3-new-content-element-wizard-window .t3-new-content-element-wizard-body{padding:.75rem}.t3-new-content-element-wizard-window .nav-tabs{padding:.75rem .75rem 0;background:0 0}.t3-new-content-element-wizard-window .panel{border:0;box-shadow:none}.t3-new-content-element-wizard-window .panel .panel-body{display:flex;flex-flow:row wrap;padding-top:0}.t3-new-content-element-wizard-window .panel .panel-body .media{margin-top:15px}@media (min-width:992px){.media-new-content-element-wizard{width:50%}}.tx_recycler_recycler tr.collapse{display:none}.tx_recycler_recycler tr.collapse.show{display:table-row}.tx_recycler_recycler .page-link{height:100%}.tstemplate-constanteditor .input-group.userTS .input-group-addon.colorbox{display:inline-block;height:100%;position:absolute}.tstemplate-tsobjectbrowser-content{overflow-x:auto}.tstemplate-tree-wrapper{padding:15px 12px}.tstemplate-tree-wrapper li{margin-top:8px}.tstemplate-tree-wrapper>ul>li:first-child{margin-top:0}.typo3-module-viewpage{background-color:#494949}.typo3-module-viewpage .module{background-color:transparent}.typo3-module-viewpage .module-body{text-align:center}.typo3-module-viewpage .module-body .typo3-messages{text-align:left}.typo3-module-viewpage .resizable-e,.typo3-module-viewpage .resizable-s,.typo3-module-viewpage .resizable-w{position:absolute;z-index:90}.typo3-module-viewpage .resizable-w{top:0;left:-5px;height:100%;width:5px}.typo3-module-viewpage .resizable-s{bottom:-5px;height:5px;width:100%}.typo3-module-viewpage .resizable-e{top:0;right:-5px;height:100%;width:5px}.viewpage-item{position:relative;display:inline-block;background-color:#292929;box-shadow:0 2px 0 rgba(0,0,0,.2);color:#fafafa}.viewpage-item iframe{display:block}.viewpage-topbar{height:40px;flex-shrink:0;padding:.75em 1em;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.viewpage-topbar-orientation a{color:#fafafa;opacity:.5;transition:all .2s ease-in-out}.viewpage-topbar-orientation a:hover{opacity:1}.viewpage-topbar-size input{background-color:transparent;padding-left:0;padding-right:0;border:0;border-bottom:1px solid rgba(0,120,230,.5);transition:all .5s ease-in-out;color:#fafafa;color-scheme:dark}.viewpage-topbar-size input:focus,.viewpage-topbar-size input:hover{outline:0;border-bottom-color:#0078e6}.viewpage-resizeable{background-color:#fafafa}.workspace-panel tr.collapsing{transition:none}.workspace-panel tr.collapse{display:none}.workspace-panel tr.collapse.show{display:table-row}.workspace-panel .page-link{height:100%}.workspace-state-unchanged{color:#000}.workspace-state-modified{color:#ff8700}.workspace-state-moved{color:#457fb8}.workspace-state-new{color:#3c9934}.workspace-state-hidden{color:#abaaaa}.workspace-state-deleted{color:#000;text-decoration:line-through}.workspace-legend{margin:5px;height:18px;color:#888}.workspace-legend dd,.workspace-legend dt{display:inline;overflow:hidden}.workspace-legend dd span{display:inline-block;padding:4px} \ No newline at end of file diff --git a/typo3/sysext/backend/Resources/Public/JavaScript/page-tsconfig.js b/typo3/sysext/backend/Resources/Public/JavaScript/page-tsconfig.js deleted file mode 100644 index 4649e76c05d5dbff13ec3fe064ee990b8dad434b..0000000000000000000000000000000000000000 --- a/typo3/sysext/backend/Resources/Public/JavaScript/page-tsconfig.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - * This file is part of the TYPO3 CMS project. - * - * It is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, either version 2 - * of the License, or any later version. - * - * For the full copyright and license information, please read the - * LICENSE.txt file that was distributed with this source code. - * - * The TYPO3 project - inspiring people to share! - */ -import BrowserSession from"@typo3/backend/storage/browser-session.js";import{Collapse as BootstrapCollapse}from"bootstrap";import"@typo3/backend/input/clearable.js";import DocumentService from"@typo3/core/document-service.js";import DebounceEvent from"@typo3/core/event/debounce-event.js";import RegularEvent from"@typo3/core/event/regular-event.js";import Mark from"@typo3/backend/contrib/mark.js";class PageTSconfigBrowser{constructor(){this.termSessionStorageKey="pagets-search-term",DocumentService.ready().then((()=>{if(this.pageTsTreeContainer=document.querySelector(".t3js-pagets-tree"),null===this.pageTsTreeContainer)return;this.searchField=document.querySelector('input[name="searchValue"]'),this.searchForm=this.searchField.closest("form"),this.registerEvents(),this.markInstance=new Mark(this.pageTsTreeContainer);const e=BrowserSession.get(this.termSessionStorageKey);e&&(this.searchField.value=e,this.searchField.dispatchEvent(new Event("keyup")),this.searchForm.requestSubmit())}))}registerEvents(){this.searchField.clearable({onClear:e=>{e.closest("form").requestSubmit()}}),new DebounceEvent("input",(()=>{this.searchForm.requestSubmit()})).bindTo(this.searchField),new RegularEvent("submit",(e=>{e.preventDefault(),this.filterTree(this.searchField.value)})).bindTo(this.searchForm)}filterTree(e){if(e=e.toLowerCase(),this.markInstance.unmark(),BrowserSession.set(this.termSessionStorageKey,e),e.length<3)return;const t=new Set;[...this.findNodesByIdentifier(e),...this.findNodesByValue(e)].forEach((e=>{if(null===e)return;const r=e.parentElement.querySelector('[data-bs-toggle="collapse"]')?.dataset.bsTarget;void 0!==r&&t.add(r.substring(1));const s=this.parents(e,".collapse");for(let e of s)t.add(e.id)}));const r=Array.from(this.pageTsTreeContainer.querySelectorAll(".collapse"));for(let e of r){const r=BootstrapCollapse.getOrCreateInstance(e,{toggle:!1});t.has(e.id)?r.show():r.hide()}this.markInstance.mark(e,{element:"strong",className:"text-danger"})}findNodesByIdentifier(e){const t=[],r=this.pageTsTreeContainer.querySelectorAll('[data-pagets-identifier="'+e+'"]');if(t.push(...r),0===r.length){const r=Array.from(this.pageTsTreeContainer.querySelectorAll('[data-pagets-identifier*="'+e+'"]')).filter((t=>{const r=t.dataset.pagetsIdentifier.indexOf(e)+e.length;return!t.dataset.pagetsIdentifier.substring(r).includes(".")}));t.push(...r)}return t}findNodesByValue(e){return Array.from(this.pageTsTreeContainer.querySelectorAll(".list-tree-value")).filter((t=>t.textContent.toLowerCase().includes(e))).map((e=>e.previousElementSibling))}parents(e,t){const r=[];let s;for(;null!==(s=e.parentElement.closest(t));)e=s,r.push(s);return r}}export default new PageTSconfigBrowser; \ No newline at end of file diff --git a/typo3/sysext/backend/Resources/Public/JavaScript/utility/collapse-state-persister.js b/typo3/sysext/backend/Resources/Public/JavaScript/utility/collapse-state-persister.js index 689e6725c1920a2afffe408d2083f01048082217..a13d515320e2522286834a7b2b1283aabc8b1b61 100644 --- a/typo3/sysext/backend/Resources/Public/JavaScript/utility/collapse-state-persister.js +++ b/typo3/sysext/backend/Resources/Public/JavaScript/utility/collapse-state-persister.js @@ -10,4 +10,4 @@ * * The TYPO3 project - inspiring people to share! */ -import{Collapse as BootstrapCollapse}from"bootstrap";import Client from"@typo3/backend/storage/client.js";import BrowserSession from"@typo3/backend/storage/browser-session.js";import DocumentService from"@typo3/core/document-service.js";import RegularEvent from"@typo3/core/event/regular-event.js";export class CollapseStatePersister{constructor(){this.localStorageKey="collapse-states",DocumentService.ready().then((()=>{this.registerEventListener(),this.recoverStates()}))}registerEventListener(){const e='.collapse[data-persist-collapse-state="true"]';new RegularEvent("show.bs.collapse",(e=>{this.toStorage(e.target.id,!0)})).delegateTo(document,e),new RegularEvent("hide.bs.collapse",(e=>{this.toStorage(e.target.id,!1)})).delegateTo(document,e)}recoverStates(){const e=this.fromStorage();for(const[t,o]of Object.entries(e)){const e=document.getElementById(t);if(null===e||!this.shallRecoverState(e))continue;const r=BootstrapCollapse.getOrCreateInstance(e,{toggle:!1});o?r.show():r.hide()}}shallRecoverState(e){if(void 0===e.dataset.persistCollapseStateNotIf)return!0;const t=e.dataset.persistCollapseStateNotIf,o=Client.get(t)??BrowserSession.get(t);return null===o||""===o}fromStorage(){const e=Client.get(this.localStorageKey);return null===e?{}:JSON.parse(e)}toStorage(e,t){const o=this.fromStorage();o[e]=t,Client.set(this.localStorageKey,JSON.stringify(o))}}export default new CollapseStatePersister; \ No newline at end of file +import{Collapse as BootstrapCollapse}from"bootstrap";import Client from"@typo3/backend/storage/client.js";import DocumentService from"@typo3/core/document-service.js";import RegularEvent from"@typo3/core/event/regular-event.js";export class CollapseStatePersister{constructor(){this.localStorageKey="collapse-states-",this.localStorageKeyDefaultSuffix="general",this.searchValueSelector=".t3js-collapse-search-term",this.searchField=null,this.searchForm=null,DocumentService.ready().then((()=>{this.searchField=document.querySelector(this.searchValueSelector),null!==this.searchField&&(this.searchForm=this.searchField.closest("form"),this.searchField.value=Client.get(this.searchField.dataset.persistCollapseSearchKey)??""),this.registerEventListener(),this.recoverStates()}))}registerEventListener(){const e='.collapse[data-persist-collapse-state="true"]';new RegularEvent("show.bs.collapse",(e=>{const t=e.target;"true"===t.dataset.persistCollapseState&&(null!==this.searchField&&""===this.searchField.value||void 0===t.dataset.persistCollapseStateNotIfSearch)&&this.toStorage(t,!0)})).delegateTo(document,e),new RegularEvent("hide.bs.collapse",(e=>{const t=e.target;"true"===t.dataset.persistCollapseState&&(null!==this.searchField&&""===this.searchField.value||void 0===t.dataset.persistCollapseStateNotIfSearch)&&this.toStorage(t,!1)})).delegateTo(document,e),null!==this.searchForm&&new RegularEvent("submit",(e=>{e.preventDefault(),null!==this.searchField&&""===this.searchField.value&&this.recoverStates()})).bindTo(this.searchForm)}recoverStates(){document.querySelectorAll('.collapse[data-persist-collapse-state="true"]').forEach((e=>{const t=e.dataset.persistCollapseStateSuffix??this.localStorageKeyDefaultSuffix,s=this.fromStorage(t),a=e.id;if(""===a||!this.shallRecoverState(e))return;const l=BootstrapCollapse.getOrCreateInstance(e,{toggle:!1}),r="shown"===(e.dataset.persistCollapseStateIfState??"shown"),o="hidden"===(e.dataset.persistCollapseStateIfState??"hidden");!0===r&&(!0===s[a]?l.show():l.hide()),!0===o&&(!1===s[a]?l.hide():l.show())}))}shallRecoverState(e){return void 0===e.dataset.persistCollapseStateNotIfSearch||"false"===e.dataset.persistCollapseStateNotIfSearch||null!==this.searchField&&""===this.searchField.value}fromStorage(e){const t=Client.get(this.localStorageKey+e);return null===t?{}:JSON.parse(t)}toStorage(e,t){const s=e.id,a=e.dataset.persistCollapseStateSuffix??this.localStorageKeyDefaultSuffix,l=this.fromStorage(a),r="shown"===(e.dataset.persistCollapseStateIfState??"shown"),o="hidden"===(e.dataset.persistCollapseStateIfState??"hidden");!0===t&&!0===r&&!0!==l[s]&&(l[s]=!0,Client.set(this.localStorageKey+a,JSON.stringify(l))),!0===t&&!0===o&&!1===l[s]&&(delete l[s],Client.set(this.localStorageKey+a,JSON.stringify(l))),!1===t&&!0===o&&!1!==l[s]&&(l[s]=!1,Client.set(this.localStorageKey+a,JSON.stringify(l))),!1===t&&!0===r&&!0===l[s]&&(delete l[s],Client.set(this.localStorageKey+a,JSON.stringify(l)))}}export default new CollapseStatePersister; \ No newline at end of file diff --git a/typo3/sysext/backend/Resources/Public/JavaScript/utility/collapse-state-search.js b/typo3/sysext/backend/Resources/Public/JavaScript/utility/collapse-state-search.js new file mode 100644 index 0000000000000000000000000000000000000000..79d53d2bea64b2022a4b11c9aa317fa81f112c5c --- /dev/null +++ b/typo3/sysext/backend/Resources/Public/JavaScript/utility/collapse-state-search.js @@ -0,0 +1,13 @@ +/* + * This file is part of the TYPO3 CMS project. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + * + * For the full copyright and license information, please read the + * LICENSE.txt file that was distributed with this source code. + * + * The TYPO3 project - inspiring people to share! + */ +import Client from"@typo3/backend/storage/client.js";import{Collapse as BootstrapCollapse}from"bootstrap";import"@typo3/backend/input/clearable.js";import DocumentService from"@typo3/core/document-service.js";import DebounceEvent from"@typo3/core/event/debounce-event.js";import RegularEvent from"@typo3/core/event/regular-event.js";import Mark from"@typo3/backend/contrib/mark.js";class CollapseStateSearch{constructor(){this.searchValueSelector=".t3js-collapse-search-term",this.searchValue="",this.markInstances=[],DocumentService.ready().then((()=>{const e=document.querySelectorAll(".t3js-collapse-states-search-tree");if(null!==e){this.treeContainers=e,this.numberOfSearchMatchesContainer=document.querySelectorAll(".t3js-collapse-states-search-numberOfSearchMatches"),this.searchField=document.querySelector(this.searchValueSelector),this.searchForm=this.searchField.closest("form"),this.searchSessionKey=this.searchField.dataset.persistCollapseSearchKey,this.searchValue=Client.get(this.searchSessionKey)??"",this.registerEvents();for(let e=0;e<this.treeContainers.length;e++)this.markInstances[e]=new Mark(this.treeContainers[e]);""!==this.searchValue&&(this.searchField.value=this.searchValue,this.searchField.dispatchEvent(new Event("keyup")),this.searchForm.requestSubmit())}}))}registerEvents(){this.searchField.clearable({onClear:e=>{e.closest("form").requestSubmit()}}),new DebounceEvent("input",(()=>{this.searchForm.requestSubmit()})).bindTo(this.searchField),new RegularEvent("submit",(e=>{e.preventDefault();for(let e=0;e<this.treeContainers.length;e++)this.filterTree(this.searchField.value,this.treeContainers[e],this.numberOfSearchMatchesContainer[e],this.markInstances[e])})).bindTo(this.searchForm)}filterTree(e,t,r,s){if(e=e.toLowerCase(),s.unmark(),Client.set(this.searchSessionKey,e),e.length<3)return void r.classList.add("hidden");const n=new Set,o=[...this.findNodesByIdentifier(e,t),...this.findNodesByValue(e,t),...this.findNodesByComment(e,t),...this.findNodesByConstantSubstitution(e,t)];r.innerText=String(TYPO3.lang["collapse-state-search.numberOfSearchMatches"]).replace("%s",String(o.length)),r.classList.remove("hidden"),o.forEach((e=>{if(null===e)return;const t=e.parentElement.querySelector('[data-bs-toggle="collapse"]')?.dataset.bsTarget;void 0!==t&&n.add(t.substring(1));const r=this.parents(e,".collapse");for(let e of r)n.add(e.id)}));const a=Array.from(t.querySelectorAll(".collapse"));for(let e of a){const t=BootstrapCollapse.getOrCreateInstance(e,{toggle:!1});n.has(e.id)?t.show():t.hide()}s.mark(e,{element:"strong",className:"text-danger"})}findNodesByIdentifier(e,t){return Array.from(t.querySelectorAll(".list-tree-label")).filter((t=>t.textContent.toLowerCase().includes(e)))}findNodesByValue(e,t){return Array.from(t.querySelectorAll(".list-tree-value")).filter((t=>t.textContent.toLowerCase().includes(e))).map((e=>e.previousElementSibling))}findNodesByComment(e,t){return Array.from(t.querySelectorAll(".list-tree-comment")).filter((t=>t.textContent.toLowerCase().includes(e)))}findNodesByConstantSubstitution(e,t){return Array.from(t.querySelectorAll(".list-tree-constant-substitution")).filter((t=>t.textContent.toLowerCase().includes(e)))}parents(e,t){const r=[];let s;for(;null!==(s=e.parentElement.closest(t));)e=s,r.push(s);return r}}export default new CollapseStateSearch; \ No newline at end of file diff --git a/typo3/sysext/core/Classes/TypoScript/AST/CommentAwareAstBuilder.php b/typo3/sysext/core/Classes/TypoScript/AST/CommentAwareAstBuilder.php index c862b4c12e7d06aa469aa480778ac0761fbd9236..45169609eacdd3e82ef6f98d8732c2233f399932 100644 --- a/typo3/sysext/core/Classes/TypoScript/AST/CommentAwareAstBuilder.php +++ b/typo3/sysext/core/Classes/TypoScript/AST/CommentAwareAstBuilder.php @@ -43,8 +43,8 @@ use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\ConstantAwareTokenStream; * different operator lines like "=", "<" and so on. * * This AST builder is comment aware: Comments are assigned to nodes. This is used - * in ext:tstemplate "Constant editor" and "Object Browser" backend module to add - * the comment related TypoScript functionality. + * in ext:tstemplate and PageTsConfig backend modules to add the comment related + * TypoScript functionality. * * This AST builder variant adds runtime overhead and is slower than the main * AstBuilder class. diff --git a/typo3/sysext/core/Classes/TypoScript/AST/Node/AbstractChildNode.php b/typo3/sysext/core/Classes/TypoScript/AST/Node/AbstractChildNode.php index 8d6b258b5f832ce82359562344417c1871ae5a4a..3f7941bc15ac8bc6e6aa2443d5b4d49e11eae474 100644 --- a/typo3/sysext/core/Classes/TypoScript/AST/Node/AbstractChildNode.php +++ b/typo3/sysext/core/Classes/TypoScript/AST/Node/AbstractChildNode.php @@ -57,7 +57,7 @@ abstract class AbstractChildNode extends AbstractNode implements ChildNodeInterf if ($child instanceof ReferenceChildNode) { // Hack for b/w compat parsing of `=<` operator. See ContentObjectRenderer cObjGetSingle() and mergeTSRef() // @todo: adding the whitespace after '<' is another bit of a hack here ... maybe solve in tokenizer? - // compare this for what happens when doing 'foo = bar' in old parser. is the whitespace kept for + // compare this for what happens when doing 'foo = bar' in old parser: Is the whitespace kept for // value to not trigger the ref lookup to often if doing 'foo = <div...' ? // @todo: same situation in RootNode! $childValue = '< ' . $child->getReferenceSourceStream(); diff --git a/typo3/sysext/core/Classes/TypoScript/AST/Node/AbstractNode.php b/typo3/sysext/core/Classes/TypoScript/AST/Node/AbstractNode.php index 927cb33e1c05da38fd0b9bba0ac055761a83fc53..7bab3e4dea4a0b8439357131dd200589827b9e1d 100644 --- a/typo3/sysext/core/Classes/TypoScript/AST/Node/AbstractNode.php +++ b/typo3/sysext/core/Classes/TypoScript/AST/Node/AbstractNode.php @@ -27,6 +27,7 @@ use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\TokenStreamInterface; */ abstract class AbstractNode implements NodeInterface { + protected ?string $identifier = null; protected string $name; private ?string $value = null; private ?string $previousValue = null; @@ -63,6 +64,14 @@ abstract class AbstractNode implements NodeInterface return $result; } + public function setIdentifier(string $parentIdentifier): void + { + $this->identifier = hash('xxh3', $parentIdentifier . $this->name); + foreach ($this->getNextChild() as $child) { + $child->setIdentifier($this->identifier); + } + } + /** * This forces $this->name NOT to be readonly. * Used with '<' operator on tree root to copy: @@ -75,6 +84,18 @@ abstract class AbstractNode implements NodeInterface $this->name = $name; } + public function getIdentifier(): string + { + if ($this->identifier === null) { + throw new \RuntimeException( + 'Identifier has not been initialized. This happens when getIdentifier() is called on' + . ' trees retrieved from cache. The identifier is not supposed to be used in this context.', + 1674620169 + ); + } + return $this->identifier; + } + public function addChild(ChildNodeInterface $node): void { $this->children[$node->getName()] = $node; diff --git a/typo3/sysext/core/Classes/TypoScript/AST/Node/NodeInterface.php b/typo3/sysext/core/Classes/TypoScript/AST/Node/NodeInterface.php index 580a80c14c96c460030d8518a1e59397d3ea8eb1..b8375c6627d418de7f78c9b87eed9ae331043e67 100644 --- a/typo3/sysext/core/Classes/TypoScript/AST/Node/NodeInterface.php +++ b/typo3/sysext/core/Classes/TypoScript/AST/Node/NodeInterface.php @@ -26,13 +26,28 @@ use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\TokenStreamInterface; * Example TypoScript: * "foo = fooValue" * "foo.bar = barValue" - * This creates a NodeRoot with one NodeObject name "foo" and value "fooValue", - * that has a child NodeObject name "bar" and value "barValue". + * This creates a RootNode with one ChildNode name "foo" and value "fooValue", + * that has a child ChildNode name "bar" and value "barValue". * * @internal: Internal AST structure. */ interface NodeInterface { + /** + * An identifier for this node. Typically, a hash of some kind. This identifier + * is unique within the tree, by being created from the parent identifier plus + * the name. This identifier is used in the backend, when referencing single nodes. + * Calculating identifiers is initiated by calling setIdentifier() on RootNode, which + * will recurse the tree. Call this on the final tree, after AST calculation finished, + * so AST building itself does not need to fiddle with identifier updates when for + * instance tree parts are cloned using '<' operator. + * Note this value is skipped when persisting to caches since it's a Backend related + * thing that does not use cached context: When retrieving nodes from cache (e.g. in Frontend), + * the identifier is null and calling the getter will throw an exception. + */ + public function setIdentifier(string $parentIdentifier): void; + public function getIdentifier(): string; + /** * Helper methods for node name. */ diff --git a/typo3/sysext/core/Classes/TypoScript/AST/Node/RootNode.php b/typo3/sysext/core/Classes/TypoScript/AST/Node/RootNode.php index 0277eac645dd92918a7f854beb1dd0f64d7903a0..8a5c7f4ff8a992ee5edc9999f0001c4132ae9b61 100644 --- a/typo3/sysext/core/Classes/TypoScript/AST/Node/RootNode.php +++ b/typo3/sysext/core/Classes/TypoScript/AST/Node/RootNode.php @@ -43,6 +43,14 @@ final class RootNode extends AbstractNode ]; } + public function setIdentifier(string $identifier): void + { + $this->identifier = hash('xxh3', $identifier); + foreach ($this->getNextChild() as $child) { + $child->setIdentifier($this->identifier); + } + } + public function getName(): ?string { return null; diff --git a/typo3/sysext/core/Classes/TypoScript/PageTsConfigFactory.php b/typo3/sysext/core/Classes/TypoScript/PageTsConfigFactory.php index fddb69972cff220e34a780af8ab36f13cd3af9ae..a74e48002c10b2304a1d0533c672b3b9d60038f4 100644 --- a/typo3/sysext/core/Classes/TypoScript/PageTsConfigFactory.php +++ b/typo3/sysext/core/Classes/TypoScript/PageTsConfigFactory.php @@ -61,6 +61,7 @@ final class PageTsConfigFactory if ($userTsConfig instanceof UserTsConfig) { $userTsConfigAst = $userTsConfig->getUserTsConfigTree(); $userTsConfigPageOverrides = ''; + // @todo: This is ugly and expensive. There should be a better way to do this. Similar in BE PageTsConfig controllers. $userTsConfigFlat = $userTsConfigAst->flatten(); foreach ($userTsConfigFlat as $userTsConfigIdentifier => $userTsConfigValue) { if (str_starts_with($userTsConfigIdentifier, 'page.')) { diff --git a/typo3/sysext/core/Tests/Acceptance/Application/Template/TemplateCest.php b/typo3/sysext/core/Tests/Acceptance/Application/Template/TemplateCest.php index a687573f06ad439967cd92a6f219006d1c5f9be1..851c3a555e357c9f4038f33055d15ba1e4e4540d 100644 --- a/typo3/sysext/core/Tests/Acceptance/Application/Template/TemplateCest.php +++ b/typo3/sysext/core/Tests/Acceptance/Application/Template/TemplateCest.php @@ -105,7 +105,6 @@ final class TemplateCest $I->wantTo('change the TypoScript record within the TypoScript Object Browser'); $I->selectOption('.t3-js-jumpMenuBox', 'Active TypoScript'); $I->waitForText('Setup'); - $I->click('#panel-tree-heading-setup'); // find and open [page] in tree $I->waitForText('[page] = PAGE'); $I->click('//span[@class="list-tree-label"]/a[text()=\'page\']/../../a'); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/ChildNodeTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/ChildNodeTest.php new file mode 100644 index 0000000000000000000000000000000000000000..f7f3d6370e1b1cf883075e82af410554e8dcbd56 --- /dev/null +++ b/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/ChildNodeTest.php @@ -0,0 +1,67 @@ +<?php + +declare(strict_types=1); + +/* + * This file is part of the TYPO3 CMS project. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + * + * For the full copyright and license information, please read the + * LICENSE.txt file that was distributed with this source code. + * + * The TYPO3 project - inspiring people to share! + */ + +namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\AST\Node; + +use TYPO3\CMS\Core\TypoScript\AST\Node\ChildNode; +use TYPO3\CMS\Core\TypoScript\AST\Node\ReferenceChildNode; +use TYPO3\CMS\Core\TypoScript\AST\Node\RootNode; +use TYPO3\TestingFramework\Core\Unit\UnitTestCase; + +class ChildNodeTest extends UnitTestCase +{ + /** + * @test + */ + public function getIdentifierThrowsExceptionIfNotIdentifierHasBeenSet(): void + { + $this->expectException(\RuntimeException::class); + $this->expectExceptionCode(1674620169); + (new ChildNode('someName'))->getIdentifier(); + } + + /** + * @test + */ + public function setIdentifierCreatesIdentifierString(): void + { + $node = new ChildNode('someName'); + $node->setIdentifier('testing'); + self::assertIsString($node->getIdentifier()); + } + + /** + * @test + */ + public function setIdentifierTriggersIdentifierCalculationForChild(): void + { + $node = new ChildNode('someName'); + $childNode = new ChildNode('child'); + $node->addChild($childNode); + $referenceChildNode = new ReferenceChildNode('referenceChild'); + $node->addChild($referenceChildNode); + $node->setIdentifier('testing1'); + self::assertSame('a938d0f2f9b8d3ae', $node->getIdentifier()); + self::assertSame('e79dcb87f1a23701', $childNode->getIdentifier()); + self::assertSame('a5690684acd44697', $referenceChildNode->getIdentifier()); + // Update rootNode identifier to verify child identifiers change + $node->setIdentifier('testing2'); + self::assertSame('9432340ddb8d76f8', $node->getIdentifier()); + self::assertSame('8697b1591b1fc4a1', $childNode->getIdentifier()); + self::assertSame('38583b9e9ea973fc', $referenceChildNode->getIdentifier()); + } +} diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/ReferenceChildNodeTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/ReferenceChildNodeTest.php new file mode 100644 index 0000000000000000000000000000000000000000..0d00d8575561fd45782b204778a491c4ebe6dc04 --- /dev/null +++ b/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/ReferenceChildNodeTest.php @@ -0,0 +1,66 @@ +<?php + +declare(strict_types=1); + +/* + * This file is part of the TYPO3 CMS project. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + * + * For the full copyright and license information, please read the + * LICENSE.txt file that was distributed with this source code. + * + * The TYPO3 project - inspiring people to share! + */ + +namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\AST\Node; + +use TYPO3\CMS\Core\TypoScript\AST\Node\ChildNode; +use TYPO3\CMS\Core\TypoScript\AST\Node\ReferenceChildNode; +use TYPO3\TestingFramework\Core\Unit\UnitTestCase; + +class ReferenceChildNodeTest extends UnitTestCase +{ + /** + * @test + */ + public function getIdentifierThrowsExceptionIfNotIdentifierHasBeenSet(): void + { + $this->expectException(\RuntimeException::class); + $this->expectExceptionCode(1674620169); + (new ReferenceChildNode('someName'))->getIdentifier(); + } + + /** + * @test + */ + public function setIdentifierCreatesIdentifierString(): void + { + $rootNode = new ReferenceChildNode('someName'); + $rootNode->setIdentifier('testing'); + self::assertIsString($rootNode->getIdentifier()); + } + + /** + * @test + */ + public function setIdentifierTriggersIdentifierCalculationForChild(): void + { + $node = new ReferenceChildNode('someName'); + $childNode = new ChildNode('child'); + $node->addChild($childNode); + $referenceChildNode = new ReferenceChildNode('referenceChild'); + $node->addChild($referenceChildNode); + $node->setIdentifier('testing1'); + self::assertSame('a938d0f2f9b8d3ae', $node->getIdentifier()); + self::assertSame('e79dcb87f1a23701', $childNode->getIdentifier()); + self::assertSame('a5690684acd44697', $referenceChildNode->getIdentifier()); + // Update rootNode identifier to verify child identifiers change + $node->setIdentifier('testing2'); + self::assertSame('9432340ddb8d76f8', $node->getIdentifier()); + self::assertSame('8697b1591b1fc4a1', $childNode->getIdentifier()); + self::assertSame('38583b9e9ea973fc', $referenceChildNode->getIdentifier()); + } +} diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/RootNodeTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/RootNodeTest.php new file mode 100644 index 0000000000000000000000000000000000000000..3928794454cb54f3d07181dbdb2c9c9449a83984 --- /dev/null +++ b/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/RootNodeTest.php @@ -0,0 +1,67 @@ +<?php + +declare(strict_types=1); + +/* + * This file is part of the TYPO3 CMS project. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + * + * For the full copyright and license information, please read the + * LICENSE.txt file that was distributed with this source code. + * + * The TYPO3 project - inspiring people to share! + */ + +namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\AST\Node; + +use TYPO3\CMS\Core\TypoScript\AST\Node\ChildNode; +use TYPO3\CMS\Core\TypoScript\AST\Node\ReferenceChildNode; +use TYPO3\CMS\Core\TypoScript\AST\Node\RootNode; +use TYPO3\TestingFramework\Core\Unit\UnitTestCase; + +class RootNodeTest extends UnitTestCase +{ + /** + * @test + */ + public function getIdentifierThrowsExceptionIfNotIdentifierHasBeenSet(): void + { + $this->expectException(\RuntimeException::class); + $this->expectExceptionCode(1674620169); + (new RootNode())->getIdentifier(); + } + + /** + * @test + */ + public function setIdentifierCreatesIdentifierString(): void + { + $rootNode = new RootNode(); + $rootNode->setIdentifier('testing'); + self::assertSame('5c638577a9858bb2', $rootNode->getIdentifier()); + } + + /** + * @test + */ + public function setIdentifierTriggersIdentifierCalculationForChild(): void + { + $rootNode = new RootNode(); + $childNode = new ChildNode('child'); + $rootNode->addChild($childNode); + $referenceChildNode = new ReferenceChildNode('referenceChild'); + $rootNode->addChild($referenceChildNode); + $rootNode->setIdentifier('testing1'); + self::assertSame('341005f4ad49cdec', $rootNode->getIdentifier()); + self::assertSame('36b65985c908c6ca', $childNode->getIdentifier()); + self::assertSame('8f99e21e850e6fac', $referenceChildNode->getIdentifier()); + // Update rootNode identifier to verify child identifiers change + $rootNode->setIdentifier('testing2'); + self::assertSame('df6c9d843ccc5d0a', $rootNode->getIdentifier()); + self::assertSame('2233b835e0a2f7a7', $childNode->getIdentifier()); + self::assertSame('b1444e428a66c062', $referenceChildNode->getIdentifier()); + } +} diff --git a/typo3/sysext/tstemplate/Classes/Controller/ConstantEditorController.php b/typo3/sysext/tstemplate/Classes/Controller/ConstantEditorController.php index 8356b9ae60c389ebdac12f77630ee3177f3cf03d..74ed0ff8b3bbe996e7f3dbf6e20a405892493f50 100644 --- a/typo3/sysext/tstemplate/Classes/Controller/ConstantEditorController.php +++ b/typo3/sysext/tstemplate/Classes/Controller/ConstantEditorController.php @@ -25,7 +25,6 @@ use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\DataHandling\DataHandler; use TYPO3\CMS\Core\Http\RedirectResponse; use TYPO3\CMS\Core\Imaging\Icon; -use TYPO3\CMS\Core\Site\Entity\SiteInterface; use TYPO3\CMS\Core\TypoScript\AST\AstBuilderInterface; use TYPO3\CMS\Core\TypoScript\AST\Node\RootNode; use TYPO3\CMS\Core\TypoScript\AST\Traverser\AstTraverser; @@ -104,6 +103,12 @@ class ConstantEditorController extends AbstractTemplateModuleController } $pageRecord = BackendUtility::readPageAccess($pageUid, '1=1') ?: []; + if (empty($pageRecord)) { + // Redirect to records overview if page could not be determined. + // Edge case if page has been removed meanwhile. + BackendUtility::setUpdateSignal('updatePageTree'); + return new RedirectResponse($this->uriBuilder->buildUriFromRoute('web_typoscript_recordsoverview')); + } // Template selection handling for this page $allTemplatesOnPage = $this->getAllTemplateRecordsOnPage($pageUid); @@ -129,7 +134,6 @@ class ConstantEditorController extends AbstractTemplateModuleController // Build the constant include tree $rootLine = GeneralUtility::makeInstance(RootlineUtility::class, $pageUid)->get(); $sysTemplateRows = $this->sysTemplateRepository->getSysTemplateRowsByRootlineWithUidOverride($rootLine, $request, $selectedTemplateUid); - /** @var SiteInterface|null $site */ $site = $request->getAttribute('site'); $constantIncludeTree = $this->treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRows, $this->losslessTokenizer, $site); $constantAstBuilderVisitor = GeneralUtility::makeInstance(IncludeTreeCommentAwareAstBuilderVisitor::class); @@ -227,7 +231,6 @@ class ConstantEditorController extends AbstractTemplateModuleController } $rootLine = GeneralUtility::makeInstance(RootlineUtility::class, $pageUid)->get(); - /** @var SiteInterface|null $site */ $site = $request->getAttribute('site'); $sysTemplateRows = $this->sysTemplateRepository->getSysTemplateRowsByRootlineWithUidOverride($rootLine, $request, $selectedTemplateUid); $constantIncludeTree = $this->treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRows, $this->losslessTokenizer, $site); @@ -265,6 +268,13 @@ class ConstantEditorController extends AbstractTemplateModuleController throw new \RuntimeException('No proper page uid given', 1661365944); } $pageRecord = BackendUtility::readPageAccess($pageUid, '1=1') ?: []; + if (empty($pageRecord)) { + // Redirect to records overview if page could not be determined. + // Edge case if page has been removed meanwhile. + BackendUtility::setUpdateSignal('updatePageTree'); + return new RedirectResponse($this->uriBuilder->buildUriFromRoute('web_typoscript_recordsoverview')); + } + $view = $this->moduleTemplateFactory->create($request); $view->setTitle($languageService->sL($currentModule->getTitle()), $pageRecord['title']); $view->getDocHeaderComponent()->setMetaInformation($pageRecord); diff --git a/typo3/sysext/tstemplate/Classes/Controller/InfoModifyController.php b/typo3/sysext/tstemplate/Classes/Controller/InfoModifyController.php index 50971731e67ceae9f39bce265f00107767693aa7..b71e0453d0736ca1a910251d6a3b3ded4bf8a4ff 100644 --- a/typo3/sysext/tstemplate/Classes/Controller/InfoModifyController.php +++ b/typo3/sysext/tstemplate/Classes/Controller/InfoModifyController.php @@ -71,6 +71,13 @@ class InfoModifyController extends AbstractTemplateModuleController throw new \RuntimeException('No proper page uid given', 1661769346); } $pageRecord = BackendUtility::readPageAccess($pageUid, '1=1') ?: []; + if (empty($pageRecord)) { + // Redirect to records overview if page could not be determined. + // Edge case if page has been removed meanwhile. + BackendUtility::setUpdateSignal('updatePageTree'); + return new RedirectResponse($this->uriBuilder->buildUriFromRoute('web_typoscript_recordsoverview')); + } + $view = $this->moduleTemplateFactory->create($request); $view->setTitle($languageService->sL($currentModule->getTitle()), $pageRecord['title']); $view->getDocHeaderComponent()->setMetaInformation($pageRecord); @@ -94,6 +101,12 @@ class InfoModifyController extends AbstractTemplateModuleController $languageService = $this->getLanguageService(); $pageRecord = BackendUtility::readPageAccess($pageUid, '1=1') ?: []; + if (empty($pageRecord)) { + // Redirect to records overview if page could not be determined. + // Edge case if page has been removed meanwhile. + BackendUtility::setUpdateSignal('updatePageTree'); + return new RedirectResponse($this->uriBuilder->buildUriFromRoute('web_typoscript_recordsoverview')); + } $currentModule = $request->getAttribute('module'); $currentModuleIdentifier = $currentModule->getIdentifier(); diff --git a/typo3/sysext/tstemplate/Classes/Controller/ObjectBrowserController.php b/typo3/sysext/tstemplate/Classes/Controller/ObjectBrowserController.php index d70f05479f0382c0079547d78d31fbb2ec4994c4..b7452bbfb705632fc445a946ff3faae2ba8cab3b 100644 --- a/typo3/sysext/tstemplate/Classes/Controller/ObjectBrowserController.php +++ b/typo3/sysext/tstemplate/Classes/Controller/ObjectBrowserController.php @@ -28,7 +28,6 @@ use TYPO3\CMS\Core\Http\RedirectResponse; use TYPO3\CMS\Core\Imaging\Icon; use TYPO3\CMS\Core\Messaging\FlashMessage; use TYPO3\CMS\Core\Messaging\FlashMessageService; -use TYPO3\CMS\Core\Site\Entity\SiteInterface; use TYPO3\CMS\Core\Type\ContextualFeedbackSeverity; use TYPO3\CMS\Core\TypoScript\AST\CurrentObjectPath\CurrentObjectPath; use TYPO3\CMS\Core\TypoScript\AST\Traverser\AstTraverser; @@ -103,6 +102,14 @@ final class ObjectBrowserController extends AbstractTemplateModuleController return new RedirectResponse($this->uriBuilder->buildUriFromRoute('web_typoscript_recordsoverview')); } $pageRecord = BackendUtility::readPageAccess($pageUid, '1=1') ?: []; + if (empty($pageRecord)) { + // Redirect to records overview if page could not be determined. + // Edge case if page has been removed meanwhile. + BackendUtility::setUpdateSignal('updatePageTree'); + return new RedirectResponse($this->uriBuilder->buildUriFromRoute('web_typoscript_recordsoverview')); + } + + // @todo: Switch to BU::BEgetRootLine($pageUid, '', true) as in PageTsConfig? Similar in other controllers and actions. $rootLine = GeneralUtility::makeInstance(RootlineUtility::class, $pageUid)->get(); // Template selection handling for this page @@ -126,15 +133,15 @@ final class ObjectBrowserController extends AbstractTemplateModuleController // Force boolean toggles to bool and init further get/post vars if ($moduleData->clean('sortAlphabetically', [true, false])) { - $this->getBackendUser()->pushModuleData($currentModuleIdentifier, $moduleData->toArray()); + $backendUser->pushModuleData($currentModuleIdentifier, $moduleData->toArray()); } $sortAlphabetically = $moduleData->get('sortAlphabetically'); if ($moduleData->clean('displayConstantSubstitutions', [true, false])) { - $this->getBackendUser()->pushModuleData($currentModuleIdentifier, $moduleData->toArray()); + $backendUser->pushModuleData($currentModuleIdentifier, $moduleData->toArray()); } $displayConstantSubstitutions = $moduleData->get('displayConstantSubstitutions'); if ($moduleData->clean('displayComments', [true, false])) { - $this->getBackendUser()->pushModuleData($currentModuleIdentifier, $moduleData->toArray()); + $backendUser->pushModuleData($currentModuleIdentifier, $moduleData->toArray()); } $displayComments = $moduleData->get('displayComments'); $searchValue = $moduleData->get('searchValue'); @@ -142,7 +149,6 @@ final class ObjectBrowserController extends AbstractTemplateModuleController $sysTemplateRows = $this->sysTemplateRepository->getSysTemplateRowsByRootlineWithUidOverride($rootLine, $request, $selectedTemplateUid); // Build the constant include tree - /** @var SiteInterface|null $site */ $site = $request->getAttribute('site'); $constantIncludeTree = $this->treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRows, $this->losslessTokenizer, $site); // Set enabled conditions in constant include tree @@ -300,6 +306,14 @@ final class ObjectBrowserController extends AbstractTemplateModuleController } $pageRecord = BackendUtility::readPageAccess($pageUid, '1=1') ?: []; + if (empty($pageRecord)) { + // Redirect to records overview if page could not be determined. + // Edge case if page has been removed meanwhile. + BackendUtility::setUpdateSignal('updatePageTree'); + return new RedirectResponse($this->uriBuilder->buildUriFromRoute('web_typoscript_recordsoverview')); + } + + // @todo: Switch to BU::BEgetRootLine($pageUid, '', true) as in PageTsConfig? Similar in other controllers and actions. $rootLine = GeneralUtility::makeInstance(RootlineUtility::class, $pageUid)->get(); // Template selection handling @@ -319,7 +333,6 @@ final class ObjectBrowserController extends AbstractTemplateModuleController } } - /** @var SiteInterface|null $site */ $site = $request->getAttribute('site'); $sysTemplateRows = $this->sysTemplateRepository->getSysTemplateRowsByRootlineWithUidOverride($rootLine, $request, $selectedTemplateUid); @@ -523,7 +536,7 @@ final class ObjectBrowserController extends AbstractTemplateModuleController * write updated active conditions to user's module data if needed and * prepare a list of active conditions for view. */ - private function handleToggledSetupConditions(RootInclude $constantTree, ModuleData $moduleData, ?array $parsedBody, array $flattenedConstants): array + private function handleToggledSetupConditions(RootInclude $setupTree, ModuleData $moduleData, ?array $parsedBody, array $flattenedConstants): array { $this->treeTraverser->resetVisitors(); $setupConditionConstantSubstitutionVisitor = new IncludeTreeSetupConditionConstantSubstitutionVisitor(); @@ -531,7 +544,7 @@ final class ObjectBrowserController extends AbstractTemplateModuleController $this->treeTraverser->addVisitor($setupConditionConstantSubstitutionVisitor); $conditionAggregatorVisitor = GeneralUtility::makeInstance(IncludeTreeConditionAggregatorVisitor::class); $this->treeTraverser->addVisitor($conditionAggregatorVisitor); - $this->treeTraverser->traverse($constantTree); + $this->treeTraverser->traverse($setupTree); $setupConditions = $conditionAggregatorVisitor->getConditions(); $conditionsFromPost = $parsedBody['setupConditions'] ?? []; $conditionsFromModuleData = array_flip((array)$moduleData->get('setupConditions')); diff --git a/typo3/sysext/tstemplate/Classes/Controller/TemplateAnalyzerController.php b/typo3/sysext/tstemplate/Classes/Controller/TemplateAnalyzerController.php index 59c7911b35df8d27b184e53e4e1e13be6b38705e..86d7d74a7ec3cad6c211099b620ea73d56ee1c26 100644 --- a/typo3/sysext/tstemplate/Classes/Controller/TemplateAnalyzerController.php +++ b/typo3/sysext/tstemplate/Classes/Controller/TemplateAnalyzerController.php @@ -25,7 +25,6 @@ use TYPO3\CMS\Backend\Module\ModuleData; use TYPO3\CMS\Backend\Template\ModuleTemplateFactory; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Http\RedirectResponse; -use TYPO3\CMS\Core\Site\Entity\SiteInterface; use TYPO3\CMS\Core\TypoScript\IncludeTree\IncludeNode\IncludeInterface; use TYPO3\CMS\Core\TypoScript\IncludeTree\IncludeNode\RootInclude; use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateRepository; @@ -81,6 +80,12 @@ final class TemplateAnalyzerController extends AbstractTemplateModuleController return new RedirectResponse($this->uriBuilder->buildUriFromRoute('web_typoscript_recordsoverview')); } $pageRecord = BackendUtility::readPageAccess($pageUid, '1=1') ?: []; + if (empty($pageRecord)) { + // Redirect to records overview if page could not be determined. + // Edge case if page has been removed meanwhile. + BackendUtility::setUpdateSignal('updatePageTree'); + return new RedirectResponse($this->uriBuilder->buildUriFromRoute('web_typoscript_recordsoverview')); + } // Template selection handling for this page $allTemplatesOnPage = $this->getAllTemplateRecordsOnPage($pageUid); @@ -106,7 +111,6 @@ final class TemplateAnalyzerController extends AbstractTemplateModuleController $sysTemplateRows = $this->sysTemplateRepository->getSysTemplateRowsByRootlineWithUidOverride($rootLine, $request, $selectedTemplateUid); // Build the constant include tree - /** @var SiteInterface|null $site */ $site = $request->getAttribute('site'); $constantIncludeTree = $this->treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRows, $this->losslessTokenizer, $site); // Set enabled conditions in constant include tree @@ -173,7 +177,6 @@ final class TemplateAnalyzerController extends AbstractTemplateModuleController } $rootLine = GeneralUtility::makeInstance(RootlineUtility::class, $pageUid)->get(); $sysTemplateRows = $this->sysTemplateRepository->getSysTemplateRowsByRootlineWithUidOverride($rootLine, $request, $selectedTemplateUid); - /** @var SiteInterface|null $site */ $site = $request->getAttribute('site'); $includeTree = $this->treeBuilder->getTreeBySysTemplateRowsAndSite($type, $sysTemplateRows, $this->losslessTokenizer, $site); @@ -215,7 +218,6 @@ final class TemplateAnalyzerController extends AbstractTemplateModuleController } $rootLine = GeneralUtility::makeInstance(RootlineUtility::class, $pageUid)->get(); $sysTemplateRows = $this->sysTemplateRepository->getSysTemplateRowsByRootlineWithUidOverride($rootLine, $request, $selectedTemplateUid); - /** @var SiteInterface|null $site */ $site = $request->getAttribute('site'); $includeTree = $this->treeBuilder->getTreeBySysTemplateRowsAndSite($type, $sysTemplateRows, $this->losslessTokenizer, $site); diff --git a/typo3/sysext/tstemplate/Classes/Controller/TemplateRecordsOverviewController.php b/typo3/sysext/tstemplate/Classes/Controller/TemplateRecordsOverviewController.php index e9a04671c6d470bc21873a4f4ae4b0f8e34f4fa3..609756c48352f60b219df09d2a4f5d02851027e4 100644 --- a/typo3/sysext/tstemplate/Classes/Controller/TemplateRecordsOverviewController.php +++ b/typo3/sysext/tstemplate/Classes/Controller/TemplateRecordsOverviewController.php @@ -22,7 +22,7 @@ use Psr\Http\Message\ServerRequestInterface; use TYPO3\CMS\Backend\Template\ModuleTemplateFactory; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction; -use TYPO3\CMS\Core\Type\Bitmask\Permission; +use TYPO3\CMS\Core\Http\RedirectResponse; use TYPO3\CMS\Core\Utility\GeneralUtility; /** @@ -42,8 +42,14 @@ class TemplateRecordsOverviewController extends AbstractTemplateModuleController $backendUser = $this->getBackendUser(); $currentModule = $request->getAttribute('module'); $currentModuleIdentifier = $currentModule->getIdentifier(); - $pageId = (int)($request->getQueryParams()['id'] ?? 0); - $pageRecord = BackendUtility::readPageAccess($pageId, '1=1') ?: []; + $pageUid = (int)($request->getQueryParams()['id'] ?? 0); + $pageRecord = BackendUtility::readPageAccess($pageUid, '1=1') ?: []; + if ($pageUid > 0 && empty($pageRecord)) { + // Redirect to records overview of page 0 if page could not be determined. + // Edge case if page has been removed meanwhile. + BackendUtility::setUpdateSignal('updatePageTree'); + return new RedirectResponse($this->uriBuilder->buildUriFromRoute('web_typoscript_recordsoverview')); + } $moduleData = $request->getAttribute('moduleData'); if ($moduleData->cleanUp([])) { @@ -68,10 +74,10 @@ class TemplateRecordsOverviewController extends AbstractTemplateModuleController $view = $this->moduleTemplateFactory->create($request); $view->setTitle($this->getLanguageService()->sL($currentModule->getTitle()), ''); - $view->getDocHeaderComponent()->setMetaInformation(BackendUtility::readPageAccess(0, $backendUser->getPagePermsClause(Permission::PAGE_SHOW)) ?: []); - $this->addShortcutButtonToDocHeader($view, $currentModuleIdentifier, $pageRecord, $pageId); - if ($pageId !== 0) { - $view->makeDocHeaderModuleMenu(['id' => $pageId]); + $view->getDocHeaderComponent()->setMetaInformation($pageRecord); + $this->addShortcutButtonToDocHeader($view, $currentModuleIdentifier, $pageRecord, $pageUid); + if ($pageUid !== 0) { + $view->makeDocHeaderModuleMenu(['id' => $pageUid]); } $view->assign('pageTree', $pagesWithTemplates); return $view->renderResponse('TemplateRecordsOverview'); diff --git a/typo3/sysext/tstemplate/Classes/ViewHelpers/ForViewHelper.php b/typo3/sysext/tstemplate/Classes/ViewHelpers/ForViewHelper.php deleted file mode 100644 index 1310d3545e71d7c923d4deaa667255c61af03efe..0000000000000000000000000000000000000000 --- a/typo3/sysext/tstemplate/Classes/ViewHelpers/ForViewHelper.php +++ /dev/null @@ -1,53 +0,0 @@ -<?php - -declare(strict_types=1); - -/* - * This file is part of the TYPO3 CMS project. - * - * It is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, either version 2 - * of the License, or any later version. - * - * For the full copyright and license information, please read the - * LICENSE.txt file that was distributed with this source code. - * - * The TYPO3 project - inspiring people to share! - */ - -namespace TYPO3\CMS\Tstemplate\ViewHelpers; - -use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; -use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper; - -/** - * Repeats rendering of children with a typical for loop: - * Starting at index $from it will loop until the index has reached $to. - * - * @internal This is not part of TYPO3 Core API. - */ -final class ForViewHelper extends AbstractViewHelper -{ - protected $escapeChildren = false; - protected $escapeOutput = false; - - public function initializeArguments(): void - { - parent::initializeArguments(); - $this->registerArgument('to', 'integer', 'Number the index needs to be smaller than before stopping (<)', true); - $this->registerArgument('from', 'integer', 'Starting number for the index', false, 0); - } - - public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext): string - { - $to = (int)$arguments['to']; - $from = (int)$arguments['from']; - $content = ''; - if ($from < $to) { - for ($i = $from; $i < $to; $i++) { - $content .= $renderChildrenClosure(); - } - } - return $content; - } -} diff --git a/typo3/sysext/tstemplate/Resources/Private/Partials/AnalyzerConditions.html b/typo3/sysext/tstemplate/Resources/Private/Partials/AnalyzerConditions.html index 065a94cfab31ba80a2e9433317204156fdf023f1..2ccad4e77f4cb40192043c09bf73b2e5ba857ae1 100644 --- a/typo3/sysext/tstemplate/Resources/Private/Partials/AnalyzerConditions.html +++ b/typo3/sysext/tstemplate/Resources/Private/Partials/AnalyzerConditions.html @@ -1,6 +1,6 @@ <html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" - xmlns:ts="http://typo3.org/ns/TYPO3/CMS/Tstemplate/ViewHelpers" + xmlns:backend="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers" data-namespace-typo3-fluid="true" > @@ -36,7 +36,7 @@ <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:panel.info.conditionWithConstant" arguments="{ - 0: '{ts:fineDiff(from: condition.originalValue, to: condition.value)}' + 0: '{backend:typoScript.fineDiff(from: condition.originalValue, to: condition.value)}' }" /> </f:format.raw> diff --git a/typo3/sysext/tstemplate/Resources/Private/Partials/AnalyzerTree.html b/typo3/sysext/tstemplate/Resources/Private/Partials/AnalyzerTree.html index 0b72154848ad279ed14e465b6dbaf0ba8282183f..ac1673627e97fc32a19c317a5e4bfd0e6bb286cf 100644 --- a/typo3/sysext/tstemplate/Resources/Private/Partials/AnalyzerTree.html +++ b/typo3/sysext/tstemplate/Resources/Private/Partials/AnalyzerTree.html @@ -15,122 +15,124 @@ <f:comment><!-- This is a template that calls itself recursive for sub nodes. --></f:comment> <f:if condition="{tree.children}"> - <ul - class="list-tree text-monospace list-group collapse show" - id="collapse-list-{listIdentifier}" - > - <f:for each="{tree.nextChild}" as="child"> - <li> - <div class="row justify-content-between"> - <div class="col"> - <div class="row row-cols-auto justify-content-md-between"> - <div class="col col-12 col-lg-auto"> - <span class="list-tree-group"> - <f:if condition="{child.children}"> - <a - class="list-tree-control list-tree-control-collapsed" - data-bs-toggle="collapse" - data-bs-target="#collapse-list-{child.identifier}" - aria-expanded="true" - > - <typo3-backend-icon identifier="actions-caret-right"></typo3-backend-icon> - <typo3-backend-icon identifier="actions-caret-down"></typo3-backend-icon> - </a> + <f:for each="{tree.nextChild}" as="child"> + <li> + <div class="row justify-content-between"> + <div class="col"> + <div class="row row-cols-auto justify-content-md-between"> + <div class="col col-12 col-lg-auto"> + <span class="list-tree-group"> + <f:if condition="{child.children}"> + <a + class="list-tree-control list-tree-control-collapsed" + data-bs-toggle="collapse" + data-bs-target="#collapse-list-{child.identifier}" + aria-expanded="true" + > + <typo3-backend-icon identifier="actions-caret-right"></typo3-backend-icon> + <typo3-backend-icon identifier="actions-caret-down"></typo3-backend-icon> + </a> + </f:if> + <span class="list-tree-label"> + <f:if condition="{child.type} == 'Segment'"> + <f:then> + <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.type.Segment" /> + </f:then> + <f:else if="{child.type} == 'DefaultTypoScriptMagicKey'"> + <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.type.DefaultTypoScriptMagicKey_formlabel" /> + </f:else> + <f:else>{child.name}</f:else> </f:if> - <span class="list-tree-label"> - <f:if condition="{child.type} == 'Segment'"> - <f:then> - <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.type.Segment" /> - </f:then> - <f:else if="{child.type} == 'DefaultTypoScriptMagicKey'"> - <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.type.DefaultTypoScriptMagicKey_formlabel" /> - </f:else> - <f:else>{child.name}</f:else> - </f:if> - </span> </span> - </div> - <div class="col col-12 col-lg-auto text-md-right"> - <f:comment><!-- Hand {child.type} over to f:translate and add locallang.xlf entries when Include classes stabilized. --></f:comment> - <f:if condition="{child.sysTemplateRecord}"> - <f:then> - <span class="badge"> - <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.sysTemplateRecord" arguments="{0: '{child.pid}'}" /> - </span> - </f:then> - <f:else if="{child.type} != 'Segment'"> - <span class="badge"> - <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.type.{child.type}" /> - </span> - </f:else> - </f:if> - <f:if condition="{child.root}"> - <span class="badge badge-info"> - <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.setting.root" /> + </span> + </div> + <div class="col col-12 col-lg-auto text-md-right"> + <f:comment><!-- Hand {child.type} over to f:translate and add locallang.xlf entries when Include classes stabilized. --></f:comment> + <f:if condition="{child.sysTemplateRecord}"> + <f:then> + <span class="badge"> + <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.sysTemplateRecord" arguments="{0: '{child.pid}'}" /> </span> - </f:if> - <f:if condition="{child.clear}"> - <span class="badge badge-info"> - <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.setting.clear" /> + </f:then> + <f:else if="{child.type} != 'Segment'"> + <span class="badge"> + <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.type.{child.type}" /> </span> - </f:if> - <f:if condition="{child.conditionToken}"> - <f:then> - <f:if condition="{child.conditionVerdict}"> - <f:then> - <span title="[{child.conditionToken.value}]" class="badge badge-success"> - <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.conditionVerdict.matched" /> - </span> - </f:then> - <f:else> - <span title="[{child.conditionToken.value}]" class="badge badge-danger"> - <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.conditionVerdict.notMatched" /> - </span> - </f:else> - </f:if> - </f:then> - </f:if> - </div> + </f:else> + </f:if> + <f:if condition="{child.root}"> + <span class="badge badge-info"> + <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.setting.root" /> + </span> + </f:if> + <f:if condition="{child.clear}"> + <span class="badge badge-info"> + <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.setting.clear" /> + </span> + </f:if> + <f:if condition="{child.conditionToken}"> + <f:then> + <f:if condition="{child.conditionVerdict}"> + <f:then> + <span title="[{child.conditionToken.value}]" class="badge badge-success"> + <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.conditionVerdict.matched" /> + </span> + </f:then> + <f:else> + <span title="[{child.conditionToken.value}]" class="badge badge-danger"> + <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.conditionVerdict.notMatched" /> + </span> + </f:else> + </f:if> + </f:then> + </f:if> </div> </div> - <div class="col col-auto text-right"> - <div class="btn-group tstemplate-tree-btn-group"> - <f:be.link - route="web_typoscript_analyzer.source" - parameters="{id: pageUid, includeType: type, identifier: child.identifier}" - additionalAttributes="{'data-modal-title': child.name}" - class="btn btn-default btn-sm t3js-typoscript-analyzer-modal{f:if(condition:'!{child.lineStream}', then:' disabled')}" - title="{f:translate(key: 'LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.btn.sourceCode')}" - > - <core:icon identifier="{f:if(condition:'{child.lineStream}', then:'actions-variable', else: 'empty-empty')}" /> - </f:be.link> - <f:be.link - route="web_typoscript_analyzer.sourceWithIncludes" - parameters="{id: pageUid, includeType: type, identifier: child.identifier}" - additionalAttributes="{'data-modal-title': '{child.name} (with resolved includes)'}" - class="btn btn-default btn-sm t3js-typoscript-analyzer-modal{f:if(condition:'!{child.children}', then:' disabled')}" - title="{f:translate(key: 'LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.btn.sourceCodeWithResolvedIncludes')}" - > - <core:icon identifier="{f:if(condition:'{child.children}', then:'actions-variable-select', else: 'empty-empty')}" /> - </f:be.link> - </div> + </div> + <div class="col col-auto text-right"> + <div class="btn-group tstemplate-tree-btn-group"> + <f:be.link + route="web_typoscript_analyzer.source" + parameters="{id: pageUid, includeType: type, identifier: child.identifier}" + additionalAttributes="{'data-modal-title': child.name}" + class="btn btn-default btn-sm t3js-typoscript-analyzer-modal{f:if(condition:'!{child.lineStream}', then:' disabled')}" + title="{f:translate(key: 'LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.btn.sourceCode')}" + > + <core:icon identifier="{f:if(condition:'{child.lineStream}', then:'actions-variable', else: 'empty-empty')}" /> + </f:be.link> + <f:be.link + route="web_typoscript_analyzer.sourceWithIncludes" + parameters="{id: pageUid, includeType: type, identifier: child.identifier}" + additionalAttributes="{'data-modal-title': '{child.name} (with resolved includes)'}" + class="btn btn-default btn-sm t3js-typoscript-analyzer-modal{f:if(condition:'!{child.children}', then:' disabled')}" + title="{f:translate(key: 'LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:tree.child.btn.sourceCodeWithResolvedIncludes')}" + > + <core:icon identifier="{f:if(condition:'{child.children}', then:'actions-variable-select', else: 'empty-empty')}" /> + </f:be.link> </div> </div> + </div> - <f:if condition="{child.children}"> + <f:if condition="{child.children}"> + <ul + class="list-tree text-monospace list-group collapse" + id="collapse-list-{child.identifier}" + data-persist-collapse-state="true" + data-persist-collapse-state-suffix="typoscript-include-{type}" + data-persist-collapse-state-if-state="shown" + > <f:render partial="AnalyzerTree" arguments="{ type: type, pageUid: pageUid, - tree: child, - listIdentifier: child.identifier + tree: child }" /> - </f:if> - </li> - </f:for> - </ul> + </ul> + </f:if> + </li> + </f:for> </f:if> </html> diff --git a/typo3/sysext/tstemplate/Resources/Private/Partials/AnalyzerTreePanel.html b/typo3/sysext/tstemplate/Resources/Private/Partials/AnalyzerTreePanel.html index 831e18493c85820a399f7c53b2f61a88493c37f6..4dba92a4eb7ab7e1935293c2e987f3cb1af50608 100644 --- a/typo3/sysext/tstemplate/Resources/Private/Partials/AnalyzerTreePanel.html +++ b/typo3/sysext/tstemplate/Resources/Private/Partials/AnalyzerTreePanel.html @@ -14,15 +14,16 @@ </div> <div id="template-analyzer-{type}-tree-body" class="panel-collapse collapse" data-persist-collapse-state="true" aria-labelledby="template-analyzer-{type}-tree-heading"> <div class="tstemplate-tree-wrapper table-fit mb-0"> - <f:render - partial="AnalyzerTree" - arguments="{ - type: type, - pageUid: pageUid, - tree: tree, - listIdentifier: tree.identifier - }" - /> + <ul class="list-tree text-monospace list-group"> + <f:render + partial="AnalyzerTree" + arguments="{ + type: type, + pageUid: pageUid, + tree: tree + }" + /> + </ul> </div> </div> </div> diff --git a/typo3/sysext/tstemplate/Resources/Private/Partials/ObjectBrowserConditions.html b/typo3/sysext/tstemplate/Resources/Private/Partials/ObjectBrowserConditions.html index 10b8347afdf14f7298cedf5a50be1bce8f956a78..e364a31ff9d811c575d5467f8e13a133c60a142e 100644 --- a/typo3/sysext/tstemplate/Resources/Private/Partials/ObjectBrowserConditions.html +++ b/typo3/sysext/tstemplate/Resources/Private/Partials/ObjectBrowserConditions.html @@ -1,13 +1,13 @@ <html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" - xmlns:ts="http://typo3.org/ns/TYPO3/CMS/Tstemplate/ViewHelpers" + xmlns:backend="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers" data-namespace-typo3-fluid="true" > <f:if condition="{conditions}"> <div class="panel panel-default"> <div class="panel-heading" role="tab"> - <h2 class="panel-title" id="object-browser-{type}-conditions-haeding"> + <h2 class="panel-title" id="object-browser-{type}-conditions-heading"> <a href="#" class="collapsed" data-bs-toggle="collapse" data-bs-target="#object-browser-{type}-conditions-body" aria-expanded="false" aria-controls="object-browser-{type}-conditions-body"> <span class="caret"></span> <strong><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:panel.header.conditions"/></strong> @@ -19,14 +19,14 @@ </a> </h2> </div> - <div class="panel-collapse collapse" id="object-browser-{type}-conditions-body" data-persist-collapse-state="true" role="tabpanel" aria-labelledby="object-browser-{type}-conditions-haeding"> + <div class="panel-collapse collapse" id="object-browser-{type}-conditions-body" data-persist-collapse-state="true" role="tabpanel" aria-labelledby="object-browser-{type}-conditions-heading"> <div class="panel-body"> <form action="{f:be.uri(route: 'web_typoscript_objectbrowser', parameters: '{id: pageUid}')}" method="post"> <div class="row"> <div class="col-12"> <f:for each="{conditions}" as="condition"> <div class="form-check form-switch"> - <label class="form-check-label" for="condition{condition.hash}"> + <label class="form-check-label" for="{type}Condition{condition.hash}"> <f:if condition="{displayConstantSubstitutions} && {condition.originalValue}"> <f:then> <span style="display: inline;"> @@ -36,7 +36,7 @@ <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_objbrowser.xlf:panel.info.conditionWithConstant" arguments="{ - 0: '{ts:fineDiff(from: condition.originalValue, to: condition.value)}' + 0: '{backend:typoScript.fineDiff(from: condition.originalValue, to: condition.value)}' }" /> </f:format.raw> @@ -53,6 +53,7 @@ type="checkbox" class="form-check-input" name="{type}Conditions[{condition.hash}]" + id="{type}Condition{condition.hash}" value="1" {f:if(condition: condition.active, then:'checked="checked"')} data-global-event="change" diff --git a/typo3/sysext/tstemplate/Resources/Private/Partials/ObjectBrowserOptions.html b/typo3/sysext/tstemplate/Resources/Private/Partials/ObjectBrowserOptions.html index c6f89465db62e53ccf6953f2c570026822d754bd..5c88140f7b9e133c185a125a6d7c5fa642d63fe3 100644 --- a/typo3/sysext/tstemplate/Resources/Private/Partials/ObjectBrowserOptions.html +++ b/typo3/sysext/tstemplate/Resources/Private/Partials/ObjectBrowserOptions.html @@ -5,7 +5,7 @@ > <div id="object-browser-index" class="tx_tstemplate_object-browser"> - <div class="row row-cols-auto align-items-end g-3 mb-4"> + <div class="row row-cols-auto align-items-end g-3"> <f:if condition="{f:count(subject: allTemplatesOnPage)} > 1"> <div class="col col-md-2 col-4"> <form action="{f:be.uri(route: 'web_typoscript_objectbrowser', parameters: '{id: pageUid}')}" method="post"> diff --git a/typo3/sysext/tstemplate/Resources/Private/Partials/ObjectBrowserTree.html b/typo3/sysext/tstemplate/Resources/Private/Partials/ObjectBrowserTree.html index 37edcd28968b8c4bd190870824aeb01784889109..0b9793551bb2b5ce5ad6d24601a7d2a9778bc7a7 100644 --- a/typo3/sysext/tstemplate/Resources/Private/Partials/ObjectBrowserTree.html +++ b/typo3/sysext/tstemplate/Resources/Private/Partials/ObjectBrowserTree.html @@ -1,5 +1,6 @@ <html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" + xmlns:backend="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers" xmlns:ts="http://typo3.org/ns/TYPO3/CMS/Tstemplate/ViewHelpers" xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers" data-namespace-typo3-fluid="true" @@ -57,7 +58,7 @@ <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_objbrowser.xlf:tree.valueWithConstant" arguments="{ - 0: '{ts:fineDiff(from: trimmedStream, to: child.value)}' + 0: '{backend:typoScript.fineDiff(from: trimmedStream, to: child.value)}' }" /> </f:format.raw> diff --git a/typo3/sysext/tstemplate/Resources/Private/Partials/ObjectBrowserTreePanel.html b/typo3/sysext/tstemplate/Resources/Private/Partials/ObjectBrowserTreePanel.html index 7ecf3a32f04dacf7dbb607db9f7d195f04240906..324615254795a14ee7dca05e62a377d8ae3aca47 100644 --- a/typo3/sysext/tstemplate/Resources/Private/Partials/ObjectBrowserTreePanel.html +++ b/typo3/sysext/tstemplate/Resources/Private/Partials/ObjectBrowserTreePanel.html @@ -5,7 +5,7 @@ <div class="panel panel-default"> <div class="panel-heading"> - <h3 class="panel-title" id="object-browser-{types}-ast-heading"> + <h3 class="panel-title" id="object-browser-{type}-ast-heading"> <a href="#" class="collapsed"