diff --git a/system/lang/en-en.json b/system/lang/en-en.json index ae0b312..725e4db 100644 --- a/system/lang/en-en.json +++ b/system/lang/en-en.json @@ -40,8 +40,8 @@ }, "Compendium": { "HideDisabledSources": { - "Title": "[Compendium] Hide sources filter without reference", - "Hint": "Hide empty source with no elements in source filter." + "Title": "[Compendium] Hide unavailable sources", + "Hint": "Hide sources that have no available content from the source filter dropdown." }, "HideEmptySourcesFromPlayers": { "Title": "[Compendium] Hide elements with empty reference", @@ -136,6 +136,7 @@ "player_filter_label": "Player filter", "player_filter_tooltip": "Apply player filter", "already_in_filter": "Already in filter", + "no_results": "Not Found", "sources_categories": { "rules": "Rules", "adventures": "Adventures", @@ -810,7 +811,8 @@ "filter": { "rank": "Rank", "rarity": "Rarity", - "ring": "Ring" + "ring": "Ring", + "clear": "Clear Filter" } }, "source_reference": { diff --git a/system/scripts/compendium/l5r5e-compendium-directory.js b/system/scripts/compendium/l5r5e-compendium-directory.js index fe1aca0..78a9acc 100644 --- a/system/scripts/compendium/l5r5e-compendium-directory.js +++ b/system/scripts/compendium/l5r5e-compendium-directory.js @@ -1,3 +1,4 @@ +const { CompendiumDirectory } = foundry.applications.sidebar.tabs; export class CompendiumDirectoryL5r5e extends CompendiumDirectory { diff --git a/system/scripts/compendium/l5r5e-item-compendium.js b/system/scripts/compendium/l5r5e-item-compendium.js new file mode 100644 index 0000000..2994b19 --- /dev/null +++ b/system/scripts/compendium/l5r5e-item-compendium.js @@ -0,0 +1,497 @@ +import { L5r5eHtmlMultiSelectElement } from "../misc/l5r5e-multiselect.js"; + +const { Compendium } = foundry.applications.sidebar.apps; + +/** + * Extended Compendium application for L5R5e. + * Adds source/rank/ring/rarity filters to Item compendiums + * @extends {Compendium} + */ +export class ItemCompendiumL5r5e extends Compendium { + /** @override */ + static DEFAULT_OPTIONS = { + actions: { + applyPlayerView: ItemCompendiumL5r5e.#onApplyPlayerView, + }, + window: { + resizable: true + } + }; + + /** + * Our own entry partial which mirrors Foundry's index-partial.hbs structure + * and appends ring/rarity/rank badges using data from _prepareDirectoryContext. + * + * NOTE: We intentionally duplicate Foundry's
  • structure here rather than + * trying to include their partial, because their partial renders a complete
  • + * element which cannot be nested or extended from outside. If Foundry ever + * changes their index-partial.hbs, this file will need updating to match. + * @override + */ + static _entryPartial = "systems/l5r5e/templates/" + "compendium/l5r5e-index-partial.html"; + + /** + * Sources present in this specific compendium, populated during _prepareContext. + * @type {Set} + */ + #sourcesInThisCompendium = new Set(); + + /** + * Sources unavailable to players based on permission settings. + * @type {Set} + */ + #unavailableSourceForPlayersSet = new Set(); + + /** + * Whether to hide entries with empty sources from players. + * @type {boolean} + */ + #hideEmptySourcesFromPlayers = false; + + /** + * Which filter UI controls are worth showing. + * Determined during _prepareContext by checking whether at least two + * distinct values exist for each filterable property. + * @type {{ rank: boolean, rarity: boolean, source: boolean, ring: boolean }|null} + */ + #filtersToShow = null; + + /** + * Cached active filter values, read from the DOM once at the start of + * each filter pass in #reapplyFilters and held for _onMatchSearchEntry + * to consume per-entry without re-querying the DOM. + * @type {{ userFilter: string[], rankFilter: string[], ringFilter: string[], rarityFilter: string[] }} + */ + #activeFilters = { + userFilter: [], + rankFilter: [], + ringFilter: [], + rarityFilter: [], + }; + + /** + * Insert the filter part between header and directory by composing with + * the parent parts rather than replacing them, so future Foundry changes + * to Compendium.PARTS are picked up automatically. + * @override + */ + _configureRenderParts(options) { + const parts = super._configureRenderParts(options); + + const ordered = {}; + for (const [key, value] of Object.entries(parts)) { + ordered[key] = value; + if (key === "header") { + ordered.filter = { + template: `${CONFIG.l5r5e.paths.templates}compendium/filter-bar.html`, + }; + } + } + + return ordered; + } + + /** + * @override + */ + async _prepareContext(options) { + const context = await super._prepareContext(options); + this.#sourcesInThisCompendium = new Set(); + this.#resolvePermissions(); + this.#filtersToShow = this.#computeFilterVisibility(); + return context; + } + + /* -------------------------------------------- */ + + /** + * @override + */ + async _preparePartContext(partId, context, options) { + context = await super._preparePartContext(partId, context, options); + + if (partId === "filter") { + const ns = CONFIG.l5r5e.namespace; + const allCompendiumReferencesSet = game.settings.get(ns, "all-compendium-references"); + const hideDisabledOptions = game.settings.get(ns, "compendium-hide-disabled-sources"); + + context.filtersToShow = this.#filtersToShow; + context.ranks = [1, 2, 3, 4, 5]; + context.rarities = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; + context.rings = ["fire", "water", "earth", "air", "void"]; + context.hideDisabledOptions = hideDisabledOptions; + context.showPlayerView = game.user.isGM && this.#unavailableSourceForPlayersSet.size > 0; + + // Source multiselect options — plain data for {{selectOptions}} in the template. + context.sources = [...allCompendiumReferencesSet].map((reference) => ({ + value: reference, + label: CONFIG.l5r5e.sourceReference[reference]?.label ?? reference, + translate: true, + group: + CONFIG.l5r5e.sourceReference[reference]?.type.split(",")[0] ?? + "l5r5e.multiselect.sources_categories.others", + disabled: + !this.#sourcesInThisCompendium.has(reference) || + (!game.user.isGM && this.#unavailableSourceForPlayersSet.has(reference)), + })); + } + + if (partId === "directory") { + context.entryFilterData = Object.fromEntries( + [...this.collection.index.values()].map((entry) => [ + entry._id, + { + rank: entry.system?.rank, + ring: entry.system?.ring, + rarity: entry.system?.rarity, + }, + ]) + ); + } + + return context; + } + + /** + * @override + */ + async _onRender(context, options) { + await super._onRender(context, options); + + if (options.parts.includes("filter")) { + this.#bindButtonFilter(".rank-filter"); + this.#bindButtonFilter(".rarity-filter"); + this.#bindButtonFilter(".ring-filter"); + this.#bindSourceFilter(); + } + + // Reapply filters whenever the filter controls or the entry list changes. + if (options.parts.some((p) => p === "filter" || p === "directory")) { + this.#reapplyFilters(); + } + } + + /* -------------------------------------------- */ + + /** + * @override + */ + _preSyncPartState(partId, newElement, priorElement, state) { + super._preSyncPartState(partId, newElement, priorElement, state); + + if (partId === "filter") { + state.selectedRanks = [...priorElement.querySelectorAll(".rank-filter .selected")].map((element) => element.dataset.rank); + state.selectedRarities = [...priorElement.querySelectorAll(".rarity-filter .selected")].map((element) => element.dataset.rarity); + state.selectedRings = [...priorElement.querySelectorAll(".ring-filter .selected")].map((element) => element.dataset.ring); + state.sourceValue = priorElement.querySelector("l5r5e-multi-select")?.value; + } + } + + /** + * Restore filter selections after the filter part has been re-rendered. + * The [data-clear] button visibility is derived from whether any values + * were restored — no extra state needed. + * @override + */ + _syncPartState(partId, newElement, priorElement, state) { + super._syncPartState(partId, newElement, priorElement, state); + + if (partId === "filter") { + for (const rank of state.selectedRanks ?? []) { + newElement.querySelector(`.rank-filter [data-rank="${rank}"]`)?.classList.add("selected"); + } + const rankClear = newElement.querySelector(".rank-filter [data-clear]"); + if (rankClear) { + rankClear.style.display = state.selectedRanks?.length ? "" : "none"; + } + + for (const rarity of state.selectedRarities ?? []) { + newElement.querySelector(`.rarity-filter [data-rarity="${rarity}"]`)?.classList.add("selected"); + } + const rarityClear = newElement.querySelector(".rarity-filter [data-clear]"); + if (rarityClear) { + rarityClear.style.display = state.selectedRarities?.length ? "" : "none"; + } + + for (const ring of state.selectedRings ?? []) { + newElement.querySelector(`.ring-filter [data-ring="${ring}"]`)?.classList.add("selected"); + } + const ringClear = newElement.querySelector(".ring-filter [data-clear]"); + if (ringClear) { + ringClear.style.display = state.selectedRings?.length ? "" : "none"; + } + + if (state.sourceValue) { + const multiSelect = newElement.querySelector("l5r5e-multi-select"); + if (multiSelect) { + multiSelect.value = state.sourceValue; + } + } + } + } + + /** + * @override + */ + _onMatchSearchEntry(query, entryIds, entry, options) { + super._onMatchSearchEntry(query, entryIds, entry, options); + if (entry.style.display === "none") { + return; + } + this.#applyEntryFilter(entry); + } + + /** + * Snapshot active filter state then re-run the search filter (or walk entries directly as fallback). + * @private + */ + #reapplyFilters() { + this.#refreshActiveFilters(); + + const searchFilter = this._searchFilters?.[0]; + if (searchFilter) { + searchFilter.filter(null, searchFilter.query); + return; + } + + // Fallback + for (const entry of this.element.querySelectorAll(".directory-item")) { + this.#applyEntryFilter(entry); + } + } + + /** + * Read current filter selections from the DOM and cache them in #activeFilters. + * @private + */ + #refreshActiveFilters() { + const filterElement = this.element.querySelector("[data-application-part=\"filter\"]"); + const multiSelect = filterElement?.querySelector("l5r5e-multi-select"); + + const collectSelected = (containerSelector, dataKey) => + [...(filterElement?.querySelectorAll(`${containerSelector} .selected`) ?? [])] + .map((element) => element.dataset[dataKey]) + .filter(Boolean); + + this.#activeFilters = { + userFilter: multiSelect?.value ?? [], + rankFilter: collectSelected(".rank-filter", "rank"), + ringFilter: collectSelected(".ring-filter", "ring"), + rarityFilter: collectSelected(".rarity-filter", "rarity"), + }; + } + + /** + * Apply all active filters to a single directory entry, showing or hiding it accordingly. + * @param {HTMLElement} entry + * @private + */ + #applyEntryFilter(entry) { + const indexEntry = this.collection.index.get(entry.dataset.entryId); + if (!indexEntry) { + return; + } + + const system = indexEntry.system; + const lineSource = system?.source_reference?.source ?? null; + const { userFilter, rankFilter, ringFilter, rarityFilter } = this.#activeFilters; + let shouldShow = true; + + const sourceUnavailable = + (lineSource && this.#unavailableSourceForPlayersSet.has(lineSource)) || + (lineSource === "" && this.#hideEmptySourcesFromPlayers); + + if (sourceUnavailable) { + if (game.user.isGM) { + entry.classList.add("not-for-players"); + entry.dataset.tooltip = game.i18n.localize("l5r5e.compendium.not_for_players"); + } else { + shouldShow = false; + } + } + + if (rankFilter.length) { + shouldShow &&= rankFilter.includes(String(system?.rank)); + } + if (rarityFilter.length) { + shouldShow &&= rarityFilter.includes(String(system?.rarity)); + } + if (ringFilter.length) { + shouldShow &&= ringFilter.includes(system?.ring); + } + if (userFilter.length) { + shouldShow &&= userFilter.includes(lineSource); + } + + entry.style.display = shouldShow ? "" : "none"; + } + + /** + * Iterate the compendium index to: + * 1. Populate #sourcesInThisCompendium for source filter options + * 2. Determine which filter controls have enough distinct values to show + * @returns {{ rank: boolean, rarity: boolean, source: boolean, ring: boolean }} + * @private + */ + #computeFilterVisibility() { + const filtersToShow = { rank: false, rarity: false, source: true, ring: false }; + const firstSeen = { rank: null, rarity: null, ring: null }; + + const markIfDistinct = (prop, value) => { + if (filtersToShow[prop] || value === undefined || value === null) { + return; + } + if (firstSeen[prop] === null) { + firstSeen[prop] = value; + } else if (firstSeen[prop] !== value) { + filtersToShow[prop] = true; + } + }; + + for (const entry of this.collection.index.values()) { + const sys = entry.system; + if (!sys) { + continue; + } + if (sys.rank !== undefined) { + markIfDistinct("rank", sys.rank); + } + if (sys.ring !== undefined) { + markIfDistinct("ring", sys.ring); + } + if (sys.rarity !== undefined) { + markIfDistinct("rarity", sys.rarity); + } + if (sys.source_reference?.source !== undefined) { + this.#sourcesInThisCompendium.add(sys.source_reference.source); + } + } + + return filtersToShow; + } + + /** + * Resolve which sources are restricted from players and cache the result + * in instance-level sets for use by #applyEntryFilter. + * @private + */ + #resolvePermissions() { + const ns = CONFIG.l5r5e.namespace; + const officialSet = game.settings.get(ns, "compendium-official-content-for-players"); + const unofficialSet = game.settings.get(ns, "compendium-unofficial-content-for-players"); + const allRefsSet = game.settings.get(ns, "all-compendium-references"); + + this.#hideEmptySourcesFromPlayers = game.settings.get(ns, "compendium-hide-empty-sources-from-players"); + + this.#unavailableSourceForPlayersSet = new Set( + [...allRefsSet].filter((ref) => { + if (CONFIG.l5r5e.sourceReference[ref]) { + return officialSet.size > 0 ? !officialSet.has(ref) : false; + } + return unofficialSet.size > 0 ? !unofficialSet.has(ref) : false; + }) + ); + } + + /** + * Bind toggle-selection click handlers to all children of a button filter container. + * A [data-clear] element at the end of the container acts as an inline reset: + * - It is hidden (display:none in the template) when no values are selected. + * - It becomes visible as soon as any value is selected. + * - Clicking it deselects all values and hides itself again. + * @param {string} containerSelector + * @private + */ + #bindButtonFilter(containerSelector) { + const container = this.element.querySelector(containerSelector); + if (!container) { + return; + } + + const clearButton = container.querySelector("[data-clear]"); + + const updateClearButton = () => { + if (!clearButton) { + return; + } + const anySelected = [...container.children].some( + (element) => element.dataset.clear === undefined && element.classList.contains("selected") + ); + clearButton.style.display = anySelected ? "" : "none"; + }; + + for (const child of container.children) { + child.addEventListener("click", (event) => { + const target = event.currentTarget; + + if (target.dataset.clear !== undefined) { + // Clicked the clear button — deselect all value elements + for (const element of container.children) { + element.classList.remove("selected"); + } + } else { + // Clicked a value element — toggle it + target.classList.toggle("selected"); + } + + updateClearButton(); + this.#reapplyFilters(); + }); + } + } + + /** + * Wire up the change listener on the already-rendered multiselect element. + * The element and its options are fully declared in filter-bar.html via + * {{selectOptions}} — no imperative construction needed here. + * @private + */ + #bindSourceFilter() { + const multiSelect = this.element.querySelector("l5r5e-multi-select[name=\"filter-sources\"]"); + if (!multiSelect) { + return; + } + multiSelect.addEventListener("change", () => this.#reapplyFilters()); + } + + /** + * Handle the GM player-view button, selecting only the sources that are + * both visible to players and present in this specific compendium. + * @this {ItemCompendiumL5r5e} + * @private + */ + static #onApplyPlayerView() { + const ns = CONFIG.l5r5e.namespace; + const allRefsSet = game.settings.get(ns, "all-compendium-references"); + + const availableForPlayers = [...allRefsSet] + .filter((ref) => !this.#unavailableSourceForPlayersSet.has(ref)) + .filter((ref) => this.#sourcesInThisCompendium.has(ref)); + + const multiSelect = this.element.querySelector("l5r5e-multi-select[name=\"filter-sources\"]"); + if (!multiSelect) { + return; + } + + multiSelect.value = availableForPlayers; + this.#reapplyFilters(); + } + + /** + * Register this compendium class and extend the index fields for all Item packs. + */ + static applyToPacks() { + CONFIG.Item.compendiumIndexFields = [ + ...(CONFIG.Item.compendiumIndexFields ?? []), + "system.rank", + "system.ring", + "system.rarity", + "system.source_reference.source", + ]; + + for (const pack of game.packs.filter((p) => p.metadata.type === "Item")) { + pack.applicationClass = ItemCompendiumL5r5e; + pack.getIndex(); // rebuild index with new fields — no need to await since this happens before anyone have a chance to act + } + } +} diff --git a/system/scripts/data/l5r5e-setfield.js b/system/scripts/data/l5r5e-setfield.js index dc896ea..9da601f 100644 --- a/system/scripts/data/l5r5e-setfield.js +++ b/system/scripts/data/l5r5e-setfield.js @@ -1,47 +1,110 @@ import { L5r5eHtmlMultiSelectElement } from "../misc/l5r5e-multiselect.js"; + /** - * A subclass of [ArrayField]{@link ArrayField} which supports a set of contained elements. - * Elements in this set are treated as fungible and may be represented in any order or discarded if invalid. + * A Foundry `SetField` that renders as an {@link L5r5eHtmlMultiSelectElement} chip-input. + * + * Use this in a DataModel schema whenever a field stores an unordered collection of + * string values drawn from a fixed option list. On form submission the element returns a + * comma-separated string; `clean()` splits it back into an Array before Foundry processes + * it, and `initialize()` wraps the result in a `Set` for use in the model. + * + * @example + * // In a DataModel schema: + * skills: new L5r5eSetField({ + * options: [ + * { value: "athletics", label: "Athletics" }, + * { value: "meditation", label: "Meditation", disabled: true, tooltip: "Requires rank 3" }, + * ] + * }) + * + * // Renders automatically via {{formGroup}} in a Handlebars template: + * // {{formGroup fields.skills name="skills" value=data.skills localize=true}} + * + * @param {object} options + * @param {{ value: string, label: string, disabled?: boolean, tooltip?: string }[]} options.options + * Flat list of selectable items. Passed directly to {@link L5r5eHtmlMultiSelectElement.create}. + * @param {object[]} [options.groups] + * Optional optgroup definitions, forwarded to the element factory unchanged. + * @param {boolean} [options.hideDisabledOptions=false] + * When true, disabled options are hidden from the dropdown instead of greyed out. */ export class L5r5eSetField extends foundry.data.fields.SetField { + /** + * Saved constructor options, used to reconstruct the multiselect input on form render. + * @type {object} + */ + #savedOptions; - // We don't get the options we expect when we convert this to input, - // So store them here - #savedOptions; + /** + * @param {object} options + * @param {object} context + */ + constructor(options = {}, context = {}) { + super( + new foundry.data.fields.StringField({ + choices: options.options?.map((option) => option.value) ?? [], + }), + options, + context + ); - constructor(options={}, context={}) { - super(new foundry.data.fields.StringField({ - choices: options.options.map((option) => option.value) - }), options, context); - - this.#savedOptions = options; - } - - /** @override */ - initialize(value, model, options={}) { - if ( !value ) return value; - return new Set(super.initialize(value, model, options)); + this.#savedOptions = options; } - /** @override */ + /** + * @param {*} value + * @param {object} model + * @param {object} options + * @return {Set} + * @override + */ + initialize(value, model, options = {}) { + if (!value || (Array.isArray(value) && value.length === 0)) { + return new Set(); + } + + return new Set(super.initialize(value, model, options).filter(Boolean)); + } + + /** + * @param {Set} value + * @return {*[]|*} + * @override + */ toObject(value) { - if ( !value ) return value; - return Array.from(value).map(v => this.element.toObject(v)); + if (!value) { + return value; + } + return Array.from(value).map((v) => this.element.toObject(v)); } - /* -------------------------------------------- */ - /* Form Field Integration */ - /* -------------------------------------------- */ + /** + * @param {string|Array} value + * @param {object} options + * @return {Array} + * @override + */ + clean(value, options) { + // Settings forms submit comma-separated strings; split before normal cleaning. + if (typeof value === "string") { + value = value.length ? value.split(",").filter(Boolean) : []; + } + return super.clean(value, options); + } - /** @override */ + /** + * @param {object} config + * @return {L5r5eHtmlMultiSelectElement} + * @override + */ _toInput(config) { - const e = this.element; - return L5r5eHtmlMultiSelectElement.create({ - name: config.name, - options: this.#savedOptions.options, - groups: this.#savedOptions.groups, - value: config.value, - localize: config.localize - }); + return L5r5eHtmlMultiSelectElement.create({ + name: config.name, + options: this.#savedOptions.options, + groups: this.#savedOptions.groups, + value: config.value, + localize: config.localize, + hideDisabledOptions: this.#savedOptions.hideDisabledOptions, + }); } - } \ No newline at end of file +} \ No newline at end of file diff --git a/system/scripts/hooks.js b/system/scripts/hooks.js index 15ccb1f..6a2ee47 100644 --- a/system/scripts/hooks.js +++ b/system/scripts/hooks.js @@ -1,4 +1,4 @@ -import { L5r5eHtmlMultiSelectElement } from "./misc/l5r5e-multiselect.js"; +import { ItemCompendiumL5r5e } from "./compendium/l5r5e-item-compendium.js" export default class HooksL5r5e { /** @@ -26,6 +26,8 @@ export default class HooksL5r5e { ) { game.babele.setSystemTranslationsDir("babele"); // Since Babele v2.0.7 } + + ItemCompendiumL5r5e.applyToPacks(); } /** @@ -245,236 +247,6 @@ export default class HooksL5r5e { }); } - /** - * Compendium display (Add filters) - */ - static async renderCompendium(app, html, data) { - html = $(html); // basic patch for v13 - - if (app.collection.documentName === "Item") { - const content = await app.collection.getDocuments(); - const sourcesInThisCompendium = new Set([]); - const filtersToShow = { - rank: false, - rarity: false, - source: false, - ring: false, - }; - // Used to auto hide same values for a full compendium - const previousValue = { - rank: null, - rarity: null, - source: null, - ring: null, - }; - - // Cache - const header = html.find(".directory-header"); - const entries = html.find(".directory-item"); - - // Add additional data to the entries to make it faster to lookup. - // Add Ring/rank/rarity information - for (const document of content) { - const entry = entries.filter(`[data-entry-id="${document.id}"]`); - - // Hide filter if only one value of this type is found in the compendium - const autoDisplayFilter = (props, documentData = null) => { - documentData ??= document.system[props]; - - if (filtersToShow[props] || previousValue[props] === documentData) { - return; - } - filtersToShow[props] = previousValue[props] !== null && previousValue[props] !== documentData; - previousValue[props] = documentData; - }; - - if (document.system?.rank) { - autoDisplayFilter('rank'); - entry.data("rank", document.system.rank); - } - - if (document.system?.source_reference.source) { - autoDisplayFilter('source', document.system.source_reference.source); - sourcesInThisCompendium.add(document.system.source_reference.source); - entry.data("source", document.system.source_reference); - } - - if (document.system?.ring) { - autoDisplayFilter('ring'); - entry.data("ring", document.system.ring); - } - - if (document.system?.rarity) { - autoDisplayFilter('rarity'); - entry.data("rarity", document.system.rarity); - } - - // Add ring/rank/rarity information on the item in the compendium view - if (document.system?.ring || document.system?.rarity || document.system?.rank) { - const ringRarityRank = await foundry.applications.handlebars.renderTemplate(`${CONFIG.l5r5e.paths.templates}compendium/ring-rarity-rank.html`, document.system); - entry.append(ringRarityRank); - } - } - - // Setup filters - const officialContentSet = game.settings.get(CONFIG.l5r5e.namespace, "compendium-official-content-for-players"); - const unofficialContentSet = game.settings.get(CONFIG.l5r5e.namespace, "compendium-unofficial-content-for-players"); - const allCompendiumReferencesSet = game.settings.get(CONFIG.l5r5e.namespace, "all-compendium-references") - const hideEmptySourcesFromPlayers = game.settings.get(CONFIG.l5r5e.namespace, "compendium-hide-empty-sources-from-players"); - - const unavailableSourceForPlayersSet = new Set([...allCompendiumReferencesSet].filter((element) => { - if (CONFIG.l5r5e.sourceReference[element]) { - return officialContentSet.size > 0 ? !officialContentSet.has(element) : false; - } - return unofficialContentSet.size > 0 ? !unofficialContentSet.has(element) : false; - })); - - // Create filter function - const applyCompendiumFilter = () => { - const userFilter = header.find("l5r5e-multi-select").val(); - const rankFilter = header.find(".rank-filter .selected").data("rank"); - const ringFilter = header.find(".ring-filter .selected").data("ring"); - const rarityFilter = header.find(".rarity-filter .selected").data("rarity"); - - entries.each(function () { - const lineSource = $(this).data("source")?.source; - - // We might have stuff in the compendium view that does not have a source (folders etc.) Ignore those. - if (lineSource === null || lineSource === undefined) { - return; - } - - let shouldShow = true; - - // Handle unavailable sources - if (unavailableSourceForPlayersSet.has(lineSource)) { - if (game.user.isGM) { - shouldShow &= true; - $(this) - .addClass("not-for-players") - .attr("data-tooltip", game.i18n.localize("l5r5e.compendium.not_for_players")); - } else { - shouldShow &= false; - } - } - - // Handle empty sources - if (lineSource === "" && hideEmptySourcesFromPlayers) { - if (game.user.isGM) { - shouldShow &= true; - $(this) - .addClass("not-for-players") - .attr("data-tooltip", game.i18n.localize("l5r5e.compendium.not_for_players")); - } else { - shouldShow &= false; - } - } - - // Apply filters - if (rankFilter) { - shouldShow &= $(this).data("rank") == rankFilter; - } - if (userFilter?.length) { - shouldShow &= userFilter.includes(lineSource); - } - if (ringFilter) { - shouldShow &= $(this).data("ring") == ringFilter; - } - if (rarityFilter >= 0) { - shouldShow &= $(this).data("rarity") == rarityFilter; - } - - // Show or hide this entry based on the result - shouldShow ? $(this).show() : $(this).hide(); - }); - }; - - // Filter setup - const addFilter = async (filterType, templateFile, templateData) => { - if (!filtersToShow[filterType]) { - return; - } - const filterTemplate = await foundry.applications.handlebars.renderTemplate( - `${CONFIG.l5r5e.paths.templates}compendium/${templateFile}.html`, - templateData - ); - header.append(filterTemplate); - - header.find(`.${filterType}-filter`).children().each(function () { - $(this).on("click", (event) => { - const selected = $(event.target).hasClass("selected"); - header.find(`.${filterType}-filter`).children().removeClass("selected"); - $(event.target).toggleClass("selected", !selected); - applyCompendiumFilter(); - }); - }); - }; - - // Add Rank, Rarity, Ring Filters - await Promise.all([ - addFilter('rank' , 'rank-filter', { type: "rank", number: [1, 2, 3, 4, 5] }), - addFilter('rarity', 'rank-filter', { type: "rarity", number: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] }), - addFilter('ring' , 'ring-filter', {}), - ]); - - if (filtersToShow.source) { - // Build the source select - const selectableSourcesArray = [...allCompendiumReferencesSet].map((reference) => ({ - value: reference, - label: CONFIG.l5r5e.sourceReference[reference]?.label ?? reference, - translate: true, - group: CONFIG.l5r5e.sourceReference[reference]?.type.split(",")[0] ?? "l5r5e.multiselect.sources_categories.others", - disabled: !sourcesInThisCompendium.has(reference) || (!game.user.isGM && unavailableSourceForPlayersSet.has(reference)) - })); - const filterSourcesBox = L5r5eHtmlMultiSelectElement.create({ - name: "filter-sources", - options: selectableSourcesArray, - localize: true, - }); - header.append(filterSourcesBox.outerHTML); - $("l5r5e-multi-select").on("change", applyCompendiumFilter); - - // If gm add an extra button to easily filter the content to see the same stuff as a player - if (game.user.isGM && unavailableSourceForPlayersSet.size > 0) { - const buttonHTML = `' - - const filterPlayerViewArray = [...allCompendiumReferencesSet] - .filter((item) => !unavailableSourceForPlayersSet.has(item)) - .filter((item) => sourcesInThisCompendium.has(item)); - - $(buttonHTML).appendTo($(header).find("l5r5e-multi-select")).click(function() { - header.find("l5r5e-multi-select")[0].value = filterPlayerViewArray; - }); - } - } - - // TODO: This delay is a workaround and should be addressed in another way. - // This is ugly but if we hide the content too early then it won't be hidden for some reason. - // Current guess is that the foundry search filter is doing something. - // Adding a delay here so that we hide the content. This will fail on slow computers/network... - setTimeout(() => { - applyCompendiumFilter(); - }, 250); - - return false; - } - } - - static updateCompendium(pack, documents, options, userId) { - documents.forEach((document) => { - const inc_reference = document?.system?.source_reference?.source?.trim(); - if (!!inc_reference) { - const references = game.settings.get(CONFIG.l5r5e.namespace, "all-compendium-references"); - if (!references.includes(inc_reference)) { - references.push(inc_reference); - game.settings.set(CONFIG.l5r5e.namespace, "all-compendium-references", references); - } - } - }); - } - /** * DiceSoNice - Add L5R DicePresets */ diff --git a/system/scripts/main-l5r5e.js b/system/scripts/main-l5r5e.js index 25e1eef..01406f7 100644 --- a/system/scripts/main-l5r5e.js +++ b/system/scripts/main-l5r5e.js @@ -47,8 +47,10 @@ import { GmMonitor } from "./gm/gm-monitor.js"; import { Storage } from "./storage.js"; // Misc import { L5r5eHtmlMultiSelectElement } from "./misc/l5r5e-multiselect.js"; +import { L5R5eHtmlComboBoxElement } from "./misc/l5r5e-combo-box.js"; window.customElements.define(L5r5eHtmlMultiSelectElement.tagName, L5r5eHtmlMultiSelectElement); +window.customElements.define(L5R5eHtmlComboBoxElement.tagName, L5R5eHtmlComboBoxElement); /* ------------------------------------ */ /* Initialize system */ @@ -286,6 +288,4 @@ Hooks.on("renderSidebarTab", (app, html, data) => HooksL5r5e.renderSidebarTab(ap Hooks.on("activateSettings", async (app)=> HooksL5r5e.activateSettings(app)); Hooks.on("renderChatMessageHTML", (message, html, data) => HooksL5r5e.renderChatMessage(message, html, data)); Hooks.on("renderCombatTracker", (app, html, data) => HooksL5r5e.renderCombatTracker(app, html, data)); -Hooks.on("renderCompendium", async (app, html, data) => HooksL5r5e.renderCompendium(app, html, data)); Hooks.on("diceSoNiceRollStart", (messageId, context) => HooksL5r5e.diceSoNiceRollStart(messageId, context)); -Hooks.on("updateCompendium", (pack, documents, options, userId) => HooksL5r5e.updateCompendium(pack, documents, options, userId)); diff --git a/system/scripts/misc/l5r5e-combo-box.js b/system/scripts/misc/l5r5e-combo-box.js new file mode 100644 index 0000000..97afbf6 --- /dev/null +++ b/system/scripts/misc/l5r5e-combo-box.js @@ -0,0 +1,257 @@ +import { DropdownMixin } from "./l5r5e-dropdown-mixin.js"; + +const { AbstractFormInputElement } = foundry.applications.elements; + +/** + * A custom `` combining a free-text input with a filterable option dropdown. + * + * Stores a **single string value** — either a predefined option's `value` attribute, or + * whatever the user typed freely. Use this when a field holds exactly one value, whether + * chosen from a list or entered manually (e.g. a weapon name, a title, a custom skill). + * For storing multiple values from a list, use {@link L5r5eHtmlMultiSelectElement} instead. + * + * Picking a predefined option stores its `value` attribute while displaying its human-readable + * label. Free-typing stores the typed string as both value and label. Fires `input` on every + * keystroke and `change` only on commit (blur or Enter) to avoid triggering sheet re-renders + * mid-typing. Picking from the dropdown fires both `input` and `change` immediately. + * + * Use `{{selectOptions}}` without `selected=` to render the available options, and set the + * current value via the `value` attribute on the element directly. + * + * @example + * ```hbs + * {{!-- Pass current value via the element's `value` attribute, not selectOptions selected= --}} + * + * {{selectOptions choices localize=true}} + * + * ``` + * + * @example + * // Programmatic update — query the element by its name attribute, then set value directly. + * // The visible input label updates automatically to match the selected option's label. + * const el = document.querySelector("l5r5e-combo-box[name='weapon']"); + * el.value = "axe"; // input shows "Battleaxe", el.value returns "axe" + * + * // Free-text entry (no matching option) — value and label are both set to the typed string: + * el.value = "naginata"; // input shows "naginata", el.value returns "naginata" + */ +export class L5R5eHtmlComboBoxElement extends DropdownMixin( + AbstractFormInputElement, + { multiSelect: false, debounceMs: 150, clearOnClose: false } +) { + /** + * The label currently shown in the text input. Differs from `_value` when a predefined + * option is selected (value = option's value attribute, label = option's display text). + * @type {string} + */ + _label = ""; + + /** @override */ + static tagName = "l5r5e-combo-box"; + + /** @override */ + static observedAttributes = ["disabled", "placeholder", "value"]; + + /** + * Flat descriptor list built once in _initialize(), mirrors the light-DOM options. + * @type {{ value: string, label: string, group: string|null }[]} + */ + #options = []; + + /** + * Value snapshot taken when the input receives focus. + * Used by the blur handler to decide whether to fire a change event. + * @type {string} + */ + #valueAtFocus = ""; + + /* -------------------------------------------- */ + /* Accessors */ + /* -------------------------------------------- */ + + /** @override */ + get value() { + return this._value ?? ""; + } + + set value(value) { + const match = this.#options.find(option => option.value === String(value ?? "")); + if (match) { + this._value = match.value; + this._label = match.label; + } + else { + this._value = String(value ?? ""); + this._label = this._value; + } + this._internals.setFormValue(this._value); + if (this._dropdownInput) { + this._dropdownInput.value = this._label; + } + this.dispatchEvent(new Event("input", { bubbles: true, cancelable: true })); + this.dispatchEvent(new Event("change", { bubbles: true, cancelable: true })); + } + + /** + * AbstractFormInputElement does not have an _initialize() hook, so we override + * connectedCallback to snapshot options from the light DOM before _buildElements() + * is called by super.connectedCallback(). + * + * We keep this minimal: just build the flat #options list so _getDropdownOptions() + * and the value setter can look options up by value. + * @override + */ + connectedCallback() { + this.#snapshotOptions(); + this.#resolveInitialValue(); + super.connectedCallback(); + } + + #snapshotOptions() { + const makeOption = (option, group = null) => ({ + value: option.value, + label: option.innerText, + group, + }); + + this.#options = [...this.children].flatMap(child => { + if (child instanceof HTMLOptGroupElement) { + return [...child.querySelectorAll("option")] + .filter(option => option.value) + .map(option => makeOption(option, child.label)); + } + if (child instanceof HTMLOptionElement && child.value) { + return makeOption(child); + } + return []; + }); + } + + #resolveInitialValue() { + // Honour a `value` attribute if set, otherwise find a selected option. + const attrValue = this.getAttribute("value"); + const initial = attrValue ?? this.#options.find(option => option.selected)?.value ?? ""; + const match = this.#options.find(option => option.value === initial); + if (match) { + this._value = match.value; + this._label = match.label; + } else { + this._value = initial; + this._label = initial; + } + } + + /* -------------------------------------------- */ + /* Element Lifecycle */ + /* -------------------------------------------- */ + + /** @override */ + _buildElements() { + const wrapper = this._buildDropdownElements({ + placeholder: this.getAttribute("placeholder") ?? "", + }); + + this._dropdownInput.value = this._label || this._value || ""; + this._primaryInput = this._dropdownInput; + + return [wrapper]; + } + + /** @override */ + _activateListeners() { + const signal = this.abortSignal; + this._activateDropdownListeners(); + + // Prevent the inner 's own native change from reaching Foundry's form handler. + // We dispatch our own change at commit time only (see below). + this._dropdownInput.addEventListener("change", (e) => e.stopPropagation(), { signal }); + + // Free typing: update value and fire `input` immediately. + // Do NOT fire `change` here — Foundry's form handler re-renders the sheet on + // every `change` event, which would destroy the element mid-typing. + // `change` is fired at commit time: on blur (if value changed) or Enter. + this._dropdownInput.addEventListener("input", () => { + const typed = this._dropdownInput.value; + this._label = typed; + this._value = typed; + this._internals.setFormValue(typed); + this.dispatchEvent(new Event("input", { bubbles: true, cancelable: true })); + // DropdownMixin's #onInput fires the debounced dropdown re-render. + }, { signal }); + + // Commit on blur if the value has changed since the element was focused. + this._dropdownInput.addEventListener("focus", () => { + this.#valueAtFocus = this._value; + }, { signal }); + + this._dropdownInput.addEventListener("blur", () => { + if (this._value !== this.#valueAtFocus) { + this.dispatchEvent(new Event("change", { bubbles: true, cancelable: true })); + } + }, { signal }); + + // Commit on Enter for free-text values (not picked from the dropdown). + this._dropdownInput.addEventListener("keydown", (e) => { + if (e.key === "Enter") { + e.preventDefault(); + this._dropdownInput.blur(); + } + }, { signal }); + } + + /** @override */ + _toggleDisabled(disabled) { + this._toggleDropdownDisabled(disabled); + // Add/remove .disabled on the wrapper so CSS can dim the whole control. + const wrapper = this.querySelector(".wrapper"); + if (wrapper) { + wrapper.classList.toggle("disabled", disabled); + } + } + + /** @override */ + attributeChangedCallback(attrName, oldValue, newValue) { + super.attributeChangedCallback(attrName, oldValue, newValue); + if (attrName === "disabled") { + this._toggleDropdownDisabled(newValue !== null); + } + } + + /** @override */ + _refresh() { + if (!this._dropdownInput) + return; + + this._dropdownInput.value = this._label ?? ""; + this._internals.setFormValue(this._value ?? ""); + this._dropdownRefresh(); + } + + /* -------------------------------------------- */ + /* DropdownMixin Contract */ + /* -------------------------------------------- */ + + /** @override */ + _getDropdownOptions() { + return this.#options; + } + + /** @override */ + _isOptionSelected(value) { + return this._value === value; + } + + /** + * Commit the picked option as the current value and close the dropdown. + * @override + */ + _onDropdownPick(option) { + this._value = option.value; + this._label = option.label; + this._dropdownInput.value = option.label; + this._internals.setFormValue(option.value); + this._dropdownInput.blur(); + this.dispatchEvent(new Event("input", { bubbles: true, cancelable: true })); + this.dispatchEvent(new Event("change", { bubbles: true, cancelable: true })); + } +} \ No newline at end of file diff --git a/system/scripts/misc/l5r5e-dropdown-mixin.js b/system/scripts/misc/l5r5e-dropdown-mixin.js new file mode 100644 index 0000000..5223a52 --- /dev/null +++ b/system/scripts/misc/l5r5e-dropdown-mixin.js @@ -0,0 +1,492 @@ +/** + * @typedef {Object} DropdownMixinConfig + * @property {boolean} [multiSelect=false] + * When true the dropdown toggles selection and stays open after a pick. + * When false a pick commits the value and closes (combo-box mode). + * @property {number} [debounceMs=150] + * Trailing-debounce delay in milliseconds for dropdown re-renders while typing. + */ + +/** + * DropdownMixin + * + * Adds a fully custom `
      ` dropdown to any AbstractFormInputElement + * subclass. Handles UI only — building, opening, closing, rendering options, and keyboard + * navigation. Has no opinion about how options are stored or how values are managed. + * + * ### Contract: three methods the host must implement + * + * - `_getDropdownOptions()` + * Return `{ value, label, group, disabled, tooltip }[]` — the full unfiltered list. + * + * - `_isOptionSelected(value)` → boolean + * Return whether a given value is currently selected. + * + * - `_onDropdownPick(option)` → void + * Called when the user picks an option. The mixin handles post-pick behaviour + * (close in single mode, re-render in multi mode) after this returns. + * + * ### Host responsibilities + * - Call `this._buildDropdownElements({ placeholder })` inside `_buildElements()` + * and include the returned wrapper in the returned array. + * - Call `this._activateDropdownListeners()` inside `_activateListeners()`. + * - Call `this._toggleDropdownDisabled(disabled)` inside `_toggleDisabled()`. + * - Call `this._dropdownRefresh()` inside `_refresh()` to keep checkmarks in sync. + * + * @param {typeof AbstractFormInputElement} Base + * @param {DropdownMixinConfig} [mixinConfig={}] + * @return {typeof Base} + */ +export function DropdownMixin(Base, mixinConfig = {}) { + const { + multiSelect = false, + debounceMs = 150, + /** + * When true, closing the dropdown clears the search input text. + * Use true for multi-select (search is transient) and false for + * combo-box (the input IS the value and must persist after close). + */ + clearOnClose = true, + } = mixinConfig; + + return class DropdownMixinElement extends Base { + + /* --------------------------------------------------------- */ + /* Private Fields */ + /* --------------------------------------------------------- */ + + /** @type {HTMLInputElement} */ + #searchInput; + + /** @type {HTMLUListElement} */ + #list; + + /** @type {boolean} */ + #open = false; + + /** + * Snapshot of #open at the moment a focus event fires. + * Lets us distinguish a fresh focus (should open) from a click + * on an already-focused input (should toggle closed). + * @type {boolean} + */ + #wasOpenOnFocus = false; + + /** @type {number} */ + #activeIndex = -1; + + /** @type {HTMLLIElement[]} — flat list of pickable
    • s, excludes group headers */ + #optionElements = []; + + /** @type {Function} */ + #debouncedOpen; + + /** + * Per-instance key so multiple elements on the same page never share a timer. + * @type {string} + */ + #debounceId = `l5r5e-dropdown-${foundry.utils.randomID()}`; + + /** + * The search input element. The host should assign this to `this._primaryInput`. + * @return {HTMLInputElement} + */ + get _dropdownInput() { + return this.#searchInput; + } + + /** + * Build the search `` + `
        ` dropdown inside a positioned wrapper div. + * Include the returned element in the array returned from `_buildElements()`. + * + * @param {object} [opts] + * @param {string} [opts.placeholder=""] + * @return {HTMLDivElement} + */ + _buildDropdownElements({ placeholder = "" } = {}) { + const wrapper = document.createElement("div"); + wrapper.classList.add("wrapper"); + + this.#searchInput = document.createElement("input"); + this.#searchInput.type = "text"; + this.#searchInput.classList.add("input"); + this.#searchInput.setAttribute("autocomplete", "off"); + this.#searchInput.setAttribute("role", "combobox"); + this.#searchInput.setAttribute("aria-autocomplete", "list"); + this.#searchInput.setAttribute("aria-expanded", "false"); + this.#searchInput.setAttribute("aria-haspopup", "listbox"); + if (placeholder) { + this.#searchInput.setAttribute("placeholder", placeholder); + } + + this.#list = document.createElement("ul"); + this.#list.classList.add("dropdown"); + this.#list.setAttribute("role", "listbox"); + if (multiSelect) { + this.#list.setAttribute("aria-multiselectable", "true"); + } + this.#list.hidden = true; + + this.#syncOffset(); + wrapper.append(this.#searchInput, this.#list); + return wrapper; + } + + /** Attach dropdown event listeners. Call inside `_activateListeners()`. */ + _activateDropdownListeners() { + const signal = this.abortSignal; + + this.#debouncedOpen = game.l5r5e.HelpersL5r5e.debounce( + this.#debounceId, + (query) => this.#openDropdown(query), + debounceMs, + false // trailing — fires after the user pauses + ); + + this.#searchInput.addEventListener("mousedown", this.#onMouseDown.bind(this), { signal }); + this.#searchInput.addEventListener("focus", this.#onFocus.bind(this), { signal }); + this.#searchInput.addEventListener("input", this.#onInput.bind(this), { signal }); + this.#searchInput.addEventListener("keydown", this.#onKeydown.bind(this), { signal }); + this.#searchInput.addEventListener("blur", this.#onBlur.bind(this), { signal }); + } + + /** + * Enable or disable the search input. Call inside `_toggleDisabled()`. + * @param {boolean} disabled + */ + _toggleDropdownDisabled(disabled) { + if (this.#searchInput) { + this.#searchInput.disabled = disabled; + } + } + + /* --------------------------------------------------------- */ + /* Refresh */ + /* --------------------------------------------------------- */ + + /** + * Re-render the open dropdown in place so checkmarks and disabled states + * stay in sync with the current value. Call inside `_refresh()`. + */ + _dropdownRefresh() { + if (this.#open) { + this.#renderOptions(this.#filter(this.#searchInput?.value ?? "")); + } + } + + /** + * @abstract + * @return {{ value: string, label: string, group: string|null, disabled?: boolean, tooltip?: string }[]} + */ + _getDropdownOptions() { + throw new Error(`${this.constructor.name} must implement _getDropdownOptions()`); + } + + /** + * @abstract + * @param {string} value + * @return {boolean} + */ + _isOptionSelected(value) { + throw new Error(`${this.constructor.name} must implement _isOptionSelected()`); + } + + /** + * @abstract + * @param {{ value: string, label: string }} option + */ + _onDropdownPick(option) { + throw new Error(`${this.constructor.name} must implement _onDropdownPick()`); + } + + /** + * Case-insensitive label filter over `_getDropdownOptions()`. + * Returns all options when query is empty. + * @param {string} query + * @return {object[]} + */ + #filter(query) { + const all = this._getDropdownOptions(); + if (!query) { + return all; + } + const lower = query.toLowerCase(); + return all.filter(option => option.label.toLowerCase().includes(lower)); + } + + #openDropdown(query = "") { + this.#renderOptions(this.#filter(query)); + this.#list.hidden = false; + this.#searchInput.setAttribute("aria-expanded", "true"); + this.#open = true; + this.#activeIndex = -1; + this._onDropdownOpened(); + } + + /** + * Called when the dropdown opens. Override in host classes to snapshot + * the current value so _onDropdownClosed can compare against it. + * Default is a no-op. + * @protected + */ + _onDropdownOpened() {} + + #closeDropdown() { + this.#list.hidden = true; + this.#searchInput.setAttribute("aria-expanded", "false"); + this.#open = false; + this.#wasOpenOnFocus = false; + this.#activeIndex = -1; + this.#optionElements = []; + // In combo-box mode the input IS the value, so we leave it intact. + // In multi-select mode the search text is transient and should reset. + if (clearOnClose && this.#searchInput) { + this.#searchInput.value = ""; + } + // Notify the host that the dropdown has closed. Hosts can override this + // to fire a single change event after a multi-pick session. + this._onDropdownClosed(); + } + + /** + * Called when the dropdown closes. Override in host classes to fire a + * consolidated change event after a multi-pick session. + * Default is a no-op. + * @protected + */ + _onDropdownClosed() {} + + #renderOptions(options) { + this.#list.innerHTML = ""; + this.#optionElements = []; + + // hideDisabledOptions is a host-level attribute, read via the DOM. + const visible = this.hasAttribute("hidedisabledoptions") + ? options.filter(o => !o.disabled) + : options; + + if (!visible.length) { + const empty = document.createElement("li"); + empty.classList.add("no-results"); + empty.textContent = game.i18n.localize("l5r5e.multiselect.no_results") ?? "No matches"; + empty.setAttribute("aria-disabled", "true"); + this.#list.append(empty); + return; + } + + // Bucket into groups, preserving insertion order. + const groups = new Map(); + const ungrouped = []; + for (const option of visible) { + if (option.group) { + if (!groups.has(option.group)) groups.set(option.group, []); + groups.get(option.group).push(option); + } else { + ungrouped.push(option); + } + } + + for (const [label, options] of groups) { + const header = document.createElement("li"); + header.classList.add("group"); + header.setAttribute("role", "presentation"); + header.textContent = label; + this.#list.append(header); + for (const option of options) { + this.#list.append(this.#buildOptionEl(option)); + } + } + for (const option of ungrouped){ + this.#list.append(this.#buildOptionEl(option)); + } + } + + #buildOptionEl(option) { + const selected = this._isOptionSelected(option.value); + const disabled = !!option.disabled; + + const li = document.createElement("li"); + li.classList.add("option"); + if (selected) { + li.classList.add("selected"); + } + if (disabled) { + li.classList.add("disabled"); + } + li.setAttribute("role", "option"); + li.setAttribute("aria-selected", String(selected)); + li.setAttribute("aria-disabled", String(disabled)); + li.dataset.value = option.value; + + if (multiSelect) { + const check = document.createElement("span"); + check.classList.add("checkmark"); + check.setAttribute("aria-hidden", "true"); + li.append(check); + } + + const labelEl = document.createElement("span"); + labelEl.classList.add("label"); + labelEl.textContent = option.label; + li.append(labelEl); + + if (selected && multiSelect) { + li.title = game.i18n.localize("l5r5e.multiselect.already_in_filter"); + } else if (disabled && option.tooltip) { + li.title = option.tooltip; + } + + if (!disabled) { + li.addEventListener("mouseenter", () => { + for (const element of this.#optionElements) { + element.classList.remove("active"); + } + this.#activeIndex = this.#optionElements.indexOf(li); + li.classList.add("active"); + }); + li.addEventListener("mouseleave", () => { + li.classList.remove("active"); + this.#activeIndex = -1; + }); + li.addEventListener("mousedown", (event) => { + event.preventDefault(); // keep focus on the search input + this.#pick(option); + }); + } + + this.#optionElements.push(li); + return li; + } + + #pick(option) { + this._onDropdownPick(option); + if (multiSelect) { + // Stay open — re-render so checkmarks reflect the new state. + this.#renderOptions(this.#filter(this.#searchInput.value)); + } else { + this.#closeDropdown(); + } + } + + #moveHighlight(direction) { + if (!this.#optionElements.length) { + return; + } + const prev = this.#optionElements[this.#activeIndex]; + if (prev) { + prev.classList.remove("active"); + } + + this.#activeIndex = Math.max( + -1, + Math.min(this.#optionElements.length - 1, this.#activeIndex + direction) + ); + + const next = this.#optionElements[this.#activeIndex]; + if (next) { + next.classList.add("active"); + next.scrollIntoView({ block: "nearest" }); + } + } + + #syncOffset() { + if (!this.#searchInput || !this.#list) { + return; + } + const offset = this.#searchInput.offsetLeft; + this.#list.style.left = `${offset}px`; + this.#list.style.right = `-${offset}px`; + } + + /** + * Handles click-to-toggle behaviour. + * + * Three cases: + * 1. Dropdown is open → close it. preventDefault stops blur firing, which + * would otherwise trigger a second close via #onBlur. + * 2. Dropdown is closed AND input is already focused → open immediately. + * In this case focus will NOT fire again (input never blurred after the + * previous preventDefault), so we must open here rather than in #onFocus. + * 3. Dropdown is closed AND input is not yet focused → do nothing; the + * browser will fire focus naturally and #onFocus will open the dropdown. + */ + #onMouseDown(event) { + this.#wasOpenOnFocus = this.#open; + if (this.#open) { + event.preventDefault(); + this.#closeDropdown(); + } else if (document.activeElement === this.#searchInput) { + // Case 2: already focused, focus won't re-fire — open directly. + this.#openDropdown(this.#searchInput.value); + } + } + + #onFocus(event) { + // Only open if mousedown didn't already handle it (cases 1 & 2 above). + if (!this.#wasOpenOnFocus && document.activeElement === this.#searchInput) { + this.#openDropdown(this.#searchInput.value); + } + } + + #onInput(event) { + this.#debouncedOpen(this.#searchInput.value); + } + + /** + * Close the dropdown when focus genuinely leaves the component. + * + * event.relatedTarget is the element that is RECEIVING focus. If it is + * inside our host element (e.g. the clear button, a chip remove span that + * managed to steal focus) we leave the dropdown open. Only when focus moves + * completely outside do we close — and we do so synchronously, so that + * _onDropdownClosed fires its change event BEFORE the browser hands control + * to whatever the user clicked. This eliminates the 100 ms race where Foundry + * could read stale FormData between the blur and a deferred close. + */ + #onBlur(event) { + if (this.contains(event.relatedTarget)) { + return; + } + this.#closeDropdown(); + } + + #onKeydown(event) { + if (!this.#open) { + if (event.key === "ArrowDown" || event.key === "ArrowUp") { + event.preventDefault(); + this.#openDropdown(this.#searchInput.value); + } + return; + } + switch (event.key) { + case "ArrowDown": { + event.preventDefault(); + this.#moveHighlight(1); + } break; + case "ArrowUp": { + event.preventDefault(); + this.#moveHighlight(-1); + }break; + case "Enter": { + event.preventDefault(); + if (this.#activeIndex >= 0) { + const li = this.#optionElements[this.#activeIndex]; + const option = this._getDropdownOptions().find(option => option.value === li.dataset.value); + if (option) { + this.#pick(option); + } + } else { + this.#closeDropdown(); + } + } break; + case "Escape": { + event.preventDefault(); + this.#closeDropdown(); + } break; + case "Tab": { + this.#closeDropdown(); + } break; + } + } + }; +} \ No newline at end of file diff --git a/system/scripts/misc/l5r5e-multiselect.js b/system/scripts/misc/l5r5e-multiselect.js index a126b47..dcb1c32 100644 --- a/system/scripts/misc/l5r5e-multiselect.js +++ b/system/scripts/misc/l5r5e-multiselect.js @@ -1,301 +1,424 @@ +import { DropdownMixin } from "./l5r5e-dropdown-mixin.js"; + const { AbstractMultiSelectElement } = foundry.applications.elements; /** - * Provide a multi-select workflow using a select element as the input mechanism. - * It is a expanded copy of the HTMLMultiselect with support for disabling options - * and a clear all button. Also have support for hover-over information using titlea + * A custom `` form element providing Select2-style chip multi-selection. * - * @example Multi-Select HTML Markup - * ```html - * - * - * - * - * - * - * - * - * - * + * Stores **multiple string values** from a fixed option list, shown as removable chips inside + * the input box. A live-search input filters the dropdown as the user types. Use this when a + * field holds an unordered collection of values (e.g. a set of skills, tags, or abilities). + * For storing a single value — predefined or free-text — use {@link L5R5eHtmlComboBoxElement} instead. + * + * The element's `value` getter returns a comma-separated string (e.g. `"fire,water"`), + * which is what `FormData` will read on submission. `_getValue()` returns a plain Array, + * which is what `FormDataExtended` will use. + * + * Pre-selection on render is handled via the `value` attribute on the element — NOT via + * `{{selectOptions selected=...}}`, which cannot handle comma-separated strings. Use + * `{{selectOptions}}` without `selected` purely to render the available options, and let + * the `value` attribute drive pre-selection. Since `getAttribute()` always returns a string, + * passing a `Set` or `Array` via Handlebars will not work correctly — always pass a + * comma-separated string to `value=`. + * + * Prefer {@link L5r5eSetField} + `{{formGroup}}` when wiring this into a DataModel — the + * field handles the full round-trip automatically. + * + * @example + * ```hbs + * {{!-- Use value= (comma-separated string) for pre-selection, not selectOptions selected= --}} + * + * {{selectOptions choices localize=true}} * * ``` + * + * @example + * // Static factory — use only when building outside of Foundry's field/template system: + * const el = L5r5eHtmlMultiSelectElement.create({ + * name: "elements", + * options: [{ value: "fire", label: "Fire" }, { value: "water", label: "Water" }], + * value: "fire,water", // comma-separated pre-selection + * }); + * form.appendChild(el); + * + * // Reading the value back: + * el.value; // "fire,water" — comma-separated string, compatible with FormData + * el._getValue(); // ["fire","water"] — array, compatible with FormDataExtended */ -export class L5r5eHtmlMultiSelectElement extends AbstractMultiSelectElement { - - constructor() { - super(); - this.#setup(); - } - +export class L5r5eHtmlMultiSelectElement extends DropdownMixin( + AbstractMultiSelectElement, + { multiSelect: true, debounceMs: 150 } +) { /** @override */ static tagName = "l5r5e-multi-select"; - /** - * A select element used to choose options. - * @type {HTMLSelectElement} - */ - #select; + /** @type {HTMLDivElement} — outer box containing chips, input, clear button */ + #selectionBox; + + /** @type {HTMLDivElement} — chips are injected here */ + #chipList; + + /** @type {HTMLSpanElement} — auto-sizing wrapper around the search input */ + #inputSizer; + + /** @type {HTMLButtonElement} — trailing clear-all button */ + #clearButton; + + /** @type {Set} */ + #disabledValues = new Set(); + + /** @type {Map} */ + #tooltips = new Map(); + /** - * A display element which lists the chosen options. - * @type {HTMLDivElement} + * Returns a comma-separated string + * FormData reads this via field.value. + * @override */ - #tags; + get value() { + return Array.from(this._value).join(","); + } + + /** @override */ + set value(val) { + this._value.clear(); + const values = Array.isArray(val) ? val : String(val).split(",").filter(Boolean); + for (const v of values) { + this._value.add(v); + } + this._internals.setFormValue(this.value); + this._refresh(); + } /** - * A button element which clear all the options. - * @type {HTMLButtonElement} + * Return an array so FormDataExtended.object[name] matches Foundry's own + * HTMLMultiSelectElement — both field.value (string) and .object (array) are correct. + * @override + * @protected */ - #clearAll; + _getValue() { + return Array.from(this._value); + } /** - * A Set containing the values that should always be disabled. - * @type {Set} + * Accept either an array or comma-separated string when Foundry calls _setValue(). + * @override + * @protected */ - #disabledValues; - - /* -------------------------------------------- */ - - // We will call initialize twice (one in the parent constructor) then one in #setup - // required since when we want to build the elements we should to an initialize first - // and we cannot override _initialize since we don't have access to #disabledValues there - #setup() { - super._initialize(); - this.#disabledValues = new Set(); - for (const option of this.querySelectorAll("option")) { - if (option.value === "") { - option.label = game.i18n.localize("l5r5e.multiselect.empty_tag"); - this._choices[option.value] = game.i18n.localize("l5r5e.multiselect.empty_tag"); - } - if (option.disabled) { - this.#disabledValues.add(option.value); - } + _setValue(val) { + const values = Array.isArray(val) ? val : String(val).split(",").filter(Boolean); + if (values.some(v => v && !(v in this._choices))) { + throw new Error("The values assigned to a multi-select element must all be valid options."); + } + this._value.clear(); + for (const v of values) { + this._value.add(v); } } + /** @override */ + _initialize() { + super._initialize(); // fills this._choices, this._value, this._options + for (const option of this.querySelectorAll("option")) { + if (option.disabled) + this.#disabledValues.add(option.value); + if (option.title) + this.#tooltips.set(option.value, option.title); + } + if (this.hasAttribute("value")) { + this._setValue(this.getAttribute("value")); + } + } + + /* -------------------------------------------- */ + /* Element Lifecycle */ + /* -------------------------------------------- */ + /** @override */ _buildElements() { - this.#setup(); - - // Create select element - this.#select = this._primaryInput = document.createElement("select"); - this.#select.insertAdjacentHTML("afterbegin", ``); - this.#select.append(...this._options); - this.#select.disabled = !this.editable; - - // Create a div element for display - this.#tags = document.createElement("div"); - this.#tags.className = "tags input-element-tags"; - - // Create a clear all button - this.#clearAll = document.createElement("button"); - this.#clearAll.textContent = "X"; - return [this.#select, this.#clearAll, this.#tags]; - } - - /* -------------------------------------------- */ - - /** @override */ - _refresh() { - // Update the displayed tags - const tags = Array.from(this._value).map(id => { - return foundry.applications.elements.HTMLStringTagsElement.renderTag(id, this._choices[id], this.editable); + // Ask mixin to build +
          , then re-home them into our structure. + const mixinWrapper = this._buildDropdownElements({ + placeholder: this.getAttribute("placeholder") + ?? game.i18n.localize("l5r5e.multiselect.placeholder"), }); - this.#tags.replaceChildren(...tags); + const searchInput = mixinWrapper.querySelector("input.input"); + const dropdownList = mixinWrapper.querySelector("ul.dropdown"); - // Figure out if we are overflowing the tag div. - if($(this.#tags).css("max-height")) { - const numericMaxHeight = parseInt($(this.#tags).css("max-height"), 10); - if(numericMaxHeight) { - if($(this.#tags).prop("scrollHeight") > numericMaxHeight) { - this.#tags.classList.add("overflowing"); - } - else { - this.#tags.classList.remove("overflowing"); - } - } - } + // Selection box + this.#selectionBox = document.createElement("div"); + this.#selectionBox.classList.add("selection-box"); - // Disable selected options - const hideDisabled = game.settings.get(CONFIG.l5r5e.namespace, "compendium-hide-disabled-sources"); - for (const option of this.#select) { - if (this._value.has(option.value)) { - option.disabled = true; - option.title = game.i18n.localize("l5r5e.multiselect.already_in_filter"); - continue; - } - if (this.#disabledValues.has(option.value)) { - option.disabled = true; - option.hidden = hideDisabled; - continue; - } - option.disabled = false; - option.removeAttribute("title"); - } + // Chip list + this.#chipList = document.createElement("div"); + this.#chipList.classList.add("chip-list"); + + // Auto-sizing sizer — CSS grid trick: ::after mirrors data-value, input shares the cell + this.#inputSizer = document.createElement("span"); + this.#inputSizer.classList.add("input-sizer"); + this.#inputSizer.dataset.value = ""; + this.#inputSizer.append(searchInput); + + // Clear-all button + this.#clearButton = document.createElement("button"); + this.#clearButton.type = "button"; + this.#clearButton.classList.add("clear-btn"); + this.#clearButton.setAttribute("aria-label", + game.i18n.localize("l5r5e.multiselect.clear_all") ?? "Clear all"); + this.#clearButton.textContent = "×"; + this.#clearButton.hidden = true; + + this.#selectionBox.append(this.#chipList, this.#inputSizer, this.#clearButton); + + // Container: selection box + dropdown must share the same positioned ancestor. + const container = document.createElement("div"); + container.classList.add("multi-select-container"); + container.append(this.#selectionBox, dropdownList); + + this._primaryInput = searchInput; + return [container]; } - /* -------------------------------------------- */ - /** @override */ _activateListeners() { - this.#select.addEventListener("change", this.#onChangeSelect.bind(this)); - this.#clearAll.addEventListener("click", this.#onClickClearAll.bind(this)); - this.#tags.addEventListener("click", this.#onClickTag.bind(this)); + this._activateDropdownListeners(); + const signal = this.abortSignal; - this.#tags.addEventListener("mouseleave", this.#onMouseLeave.bind(this)); + this.#selectionBox.addEventListener("mousedown", this.#onBoxMouseDown.bind(this), { signal }); + this.#chipList.addEventListener("click", this.#onChipClick.bind(this), { signal }); + this.#clearButton.addEventListener("click", this.#onClearAll.bind(this), { signal }); + // stop the clear button from opening the selection box when pressing it + this.#clearButton.addEventListener("mousedown", (event) => {event.preventDefault(); event.stopPropagation();}, {signal}); + this._dropdownInput.addEventListener("input", () => this.#updateInputSizer(), { signal }); } - #onMouseLeave(event) { - // Figure out if we are overflowing the tag div. - if($(this.#tags).css("max-height")) { - const numericMaxHeight = parseInt($(this.#tags).css("max-height"), 10); - - if($(this.#tags).prop("scrollHeight") > numericMaxHeight) { - this.#tags.classList.add("overflowing"); - } - else { - this.#tags.classList.remove("overflowing"); - } - } - } - - /* -------------------------------------------- */ - - /** - * Handle changes to the Select input, marking the selected option as a chosen value. - * @param {Event} event The change event on the select element - */ - #onChangeSelect(event) { - event.preventDefault(); - event.stopImmediatePropagation(); - const select = event.currentTarget; - if (select.valueIndex === 0) - return; // Ignore placeholder - this.select(select.value); - select.value = ""; - } - - /* -------------------------------------------- */ - - /** - * Handle click events on a tagged value, removing it from the chosen set. - * @param {PointerEvent} event The originating click event on a chosen tag - */ - #onClickTag(event) { - event.preventDefault(); - if (!event.target.classList.contains("remove")) - return; - if (!this.editable) - return; - const tag = event.target.closest(".tag"); - this.unselect(tag.dataset.key); - } - - /* -------------------------------------------- */ - - /** - * Handle clickling the clear all button - * @param {Event} event The originating click event on the clear all button - */ - #onClickClearAll(event) { - event.preventDefault(); - var _this = this; - $(this.#tags).children().each(function () { - _this.unselect($(this).data("key")); - }) - } - - /* -------------------------------------------- */ /** @override */ _toggleDisabled(disabled) { - this.#select.toggleAttribute("disabled", disabled); + this._toggleDropdownDisabled(disabled); + + if (this.#selectionBox) { + this.#selectionBox.classList.toggle("disabled", disabled); + } + + if (this.#chipList) { + this._refresh(); // re-render chips so × appears/disappears + } + } + + /** @override */ + _refresh() { + const values = Array.from(this._value); + this._internals.setFormValue(values.length ? values.join(",") : ""); + + this.#renderChips(values); + + // Clear button: only visible when editable and something is selected. + if (this.#clearButton) { + this.#clearButton.hidden = (!this.editable || values.length === 0); + } + + this.#updateInputSizer(); + this._dropdownRefresh(); + } + + /** @param {string[]} values */ + #renderChips(values) { + if (!this.#chipList){ + return + } + this.#chipList.replaceChildren(...values.map(id => this.#buildChip(id))); + } + + /** @param {string} id */ + #buildChip(id) { + const chip = document.createElement("span"); + chip.classList.add("chip"); + chip.dataset.key = id; + + const label = document.createElement("span"); + label.classList.add("chip-label"); + label.textContent = this._choices[id] ?? id; + chip.append(label); + + // Only add × when the element is editable (not disabled, not readonly). + if (this.editable) { + const remove = document.createElement("span"); + remove.classList.add("chip-remove"); + remove.setAttribute("aria-label", `Remove ${this._choices[id] ?? id}`); + remove.setAttribute("aria-hidden", "true"); + remove.textContent = "×"; + chip.append(remove); + } + return chip; + } + + /** Mirror typed text into the sizer span so CSS sizes the input correctly. */ + #updateInputSizer() { + if (!this.#inputSizer || !this._dropdownInput) + return; + + const input = this._dropdownInput; + const text = input.value || input.placeholder || ""; + this.#inputSizer.dataset.value = text; + } + + /** @override */ + _getDropdownOptions() { + const makeOption = (option, group = null) => ({ + value: option.value, + label: this._choices[option.value] ?? option.innerText, + group, + disabled: this.#disabledValues.has(option.value), + tooltip: this.#tooltips.get(option.value) ?? "", + }); + + return this._options.flatMap(child => { + if (child instanceof HTMLOptGroupElement) { + return [...child.querySelectorAll("option")] + .filter(option => option.value) + .map(option => makeOption(option, child.label)); + } + if (child instanceof HTMLOptionElement && child.value) { + return makeOption(child); + } + return []; + }); + } + + /** @override */ + _isOptionSelected(value) { + return this._value.has(value); + } + + /** @override */ + _onDropdownPick(option) { + const inValue = this._value.has(option.value); + const inChoices = option.value in this._choices; + if(!(inValue || inChoices)) + return; + + if (inValue) { + this._value.delete(option.value); + } + else if(inChoices) { + this._value.add(option.value); + } + + this._internals.setFormValue(this.value); + this._refresh(); + this.dispatchEvent(new Event("change", { bubbles: true, cancelable: true })); + } + + #onBoxMouseDown(event) { + // Fully block interaction when not editable. + if (!this.editable) { + event.preventDefault(); + return; + } + if (event.target.classList.contains("chip-remove")) + return; + if (event.target === this._dropdownInput) + return; + + event.preventDefault(); + this._dropdownInput?.focus(); + } + + #onChipClick(event) { + if (!event.target.classList.contains("chip-remove") || !this.editable) + return; + + const chip = event.target.closest(".chip"); + if (!chip) + return; + + this._value.delete(chip.dataset.key); + this._internals.setFormValue(this.value); + this._refresh(); + this.dispatchEvent(new Event("change", { bubbles: true, cancelable: true })); + this._dropdownInput?.focus(); + } + + #onClearAll(event) { + event.preventDefault(); + if (!this.editable) + return; + + this._value.clear(); + this._internals.setFormValue(""); + this._refresh(); + this.dispatchEvent(new Event("change", { bubbles: true, cancelable: true })); } + /* -------------------------------------------- */ + /* Static Factory */ /* -------------------------------------------- */ - /** - * Create a HTML_l5r5e_MultiSelectElement using provided configuration data. - * @param {FormInputConfig & Omit} config - * @returns {L5r5eHtmlMultiSelectElement} - */ static create(config) { - // Foundry creates either a select with tag multi-select or multi-checkboxes. We want a l5r5e-multi-select - // Copied the implementation from foundry.applications.fields.createMultiSelectInput with our required changes. const groups = prepareSelectOptionGroups(config); + const element = document.createElement(L5r5eHtmlMultiSelectElement.tagName); + element.name = config.name; + foundry.applications.fields.setInputAttributes(element, config); + if (config.hideDisabledOptions) { + element.toggleAttribute("hidedisabledoptions", true); + } - //Setup the HTML - const select = document.createElement(L5r5eHtmlMultiSelectElement.tagName); - select.name = config.name; - foundry.applications.fields.setInputAttributes(select, config); - for (const group_entry of groups) { - let parent = select; - if (group_entry.group) { - parent = _appendOptgroupHtml(group_entry.group, select); + for (const groupEntry of groups) { + let parent = element; + if (groupEntry.group) { + parent = _appendOptgroup(groupEntry.group, element); } - for (const option_entry of group_entry.options) { - _appendOptionHtml(option_entry, parent); + for (const groupOption of groupEntry.options){ + _appendOption(groupOption, parent); } } - return select; + return element; } } -/** Stolen from foundry.applications.fields.prepareSelectOptionGroups: Needed to add support for tooltips - * - */ +/* -------------------------------------------- */ +/* Module Helpers */ +/* -------------------------------------------- */ + function prepareSelectOptionGroups(config) { const result = foundry.applications.fields.prepareSelectOptionGroups(config); - - // Disable options based on input - config.options.filter((option) => option?.disabled || option?.tooltip).forEach((SpecialOption) => { - result.forEach((group) => { - group.options.forEach((option) => { - if (SpecialOption.value === option.value) { - option.disabled = SpecialOption.disabled; - option.tooltip = SpecialOption?.tooltip; + config.options.filter(option => option?.disabled || option?.tooltip).forEach(special => { + result.forEach(group => { + group.options.forEach(groupOption => { + if (groupOption.value === special.value) { + groupOption.disabled = special.disabled; + groupOption.tooltip = special.tooltip; } - }) - }) - }) + }); + }); + }); return result; } -/** Stolen from foundry.applications.fields - * Create and append an optgroup element to a parent select. - * @param {string} label - * @param {HTMLSelectElement} parent - * @returns {HTMLOptGroupElement} - * @internal - */ -function _appendOptgroupHtml(label, parent) { - const optgroup = document.createElement("optgroup"); - optgroup.label = label; - parent.appendChild(optgroup); - return optgroup; +function _appendOptgroup(label, parent) { + const element = document.createElement("optgroup"); + element.label = label; + parent.appendChild(element); + + return element; } -/** Stolen from foundry.applications.fields - * Create and append an option element to a parent select or optgroup. - * @param {FormSelectOption} option - * @param {HTMLSelectElement|HTMLOptGroupElement} parent - * @internal - */ -function _appendOptionHtml(option, parent) { +function _appendOption(option, parent) { const { value, label, selected, disabled, rule, tooltip } = option; - if ((value !== undefined) && (label !== undefined)) { - const option_html = document.createElement("option"); - option_html.value = value; - option_html.innerText = label; + if (value !== undefined && label !== undefined) { + const element = document.createElement("option"); + element.value = value; + element.innerText = label; if (selected) { - option_html.toggleAttribute("selected", true); + element.toggleAttribute("selected", true); } if (disabled) { - option_html.toggleAttribute("disabled", true); + element.toggleAttribute("disabled", true); } if (tooltip) { - option_html.setAttribute("title", tooltip); + element.setAttribute("title", tooltip); } - parent.appendChild(option_html); + parent.appendChild(element); } if (rule) { parent.insertAdjacentHTML("beforeend", "
          "); diff --git a/system/styles/l5r5e.css b/system/styles/l5r5e.css index 9f01650..099743d 100644 --- a/system/styles/l5r5e.css +++ b/system/styles/l5r5e.css @@ -1 +1 @@ -@layer system{body>*{scrollbar-width:thin}body:not(.background){background:url("../assets/imgs/bg-table.webp") no-repeat;background-size:cover}.toggle-hidden{display:none !important}.window-app .window-content{z-index:1;position:relative;background-size:cover;scrollbar-width:thin;padding:0}.window-app .window-content>form,.window-app .window-content>div{padding:.5rem}.window-app .window-content .compendium,.window-app .window-content .help-dialog{background-position:top;background-size:100%;background:url("../assets/ui/bgSidebar.webp") no-repeat;border:1px solid #c3a582;border-radius:0;color:#fff}.window-app .window-content .compendium ol,.window-app .window-content .help-dialog ol{padding-right:.25rem}.window-app .window-content .compendium ol li,.window-app .window-content .help-dialog ol li{border-bottom:1px solid rgba(255,255,255,.25)}.window-app .window-content .compendium .directory-header,.window-app .window-content .help-dialog .directory-header{padding:.25rem 0}.window-app .window-content .help-dialog{padding:.5rem 1.5rem}.window-app .window-content .help-dialog button{cursor:default;color:#fff;background:linear-gradient(rgb(95, 40, 65), rgb(65, 25, 40), rgb(95, 40, 65));background-origin:padding-box;-o-border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image-width:.5rem;border-image-outset:0px}.window-app .window-content .help-dialog button:hover{background:linear-gradient(rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75))}.window-app .window-content .compendium .item{position:relative}.window-app .window-content .compendium .item i{float:right;line-height:1rem;text-align:right;font-size:.75rem;color:rgba(240,240,225,.75);font-style:italic;flex:0 0 auto;position:absolute;right:0;text-shadow:0 0 0 rgba(255,255,255,.1)}.window-app .window-content .compendium .item i:before{margin:0 .25rem 0 0;font-style:normal}.window-app.sheet .window-content,.window-app.npc .window-content,.window-app.advancement .window-content,.window-app.armor .window-content,.window-app.item .window-content,.window-app.peculiarity .window-content,.window-app.property .window-content,.window-app.technique .window-content,.window-app.weapon .window-content,.window-app.twenty-questions-dialog .window-content{overflow-y:scroll}.window-app .window-resizable-handle{z-index:2;background:#000}.window-app.twenty-questions-dialog .window-content{background:#fffae6 url("../assets/imgs/bg-scroll.webp") no-repeat;background-size:cover}#l5r5e-twenty-questions-dialog{min-height:800px;min-width:600px}input[type=text]:focus,input[type=number]:focus,input[type=password]:focus,input[type=date]:focus,input[type=time]:focus{box-shadow:0 0 6px red}.tabs .item.active{text-shadow:0 0 10px red}#controls .scene-control.active,#controls .control-tool.active,#controls .scene-control:hover,#controls .control-tool:hover{box-shadow:0 0 10px red}#sidebar #settings button,#sidebar .sidebar-tab .action-buttons button{height:2rem;line-height:initial}button:hover{box-shadow:0 0 10px red}button:focus{box-shadow:0 0 10px red}.item-list>li{padding:.25rem;border:1px solid rgba(0,0,0,.05);border-bottom:0 none}.item-list>li:nth-child(odd){background:rgba(186,187,177,.2)}.item-list>li:nth-child(even){background:rgba(186,187,177,.1)}.item-list>li:last-child{border-bottom:1px solid rgba(0,0,0,.05)}fieldset{flex:1;flex-wrap:wrap;display:flex;margin:0 .25rem;padding:.5rem;border:1px solid rgba(186,187,177,.5)}fieldset legend{color:#5a6e5a}fieldset .editor{height:100%}.editor,.editor-container{flex:1;height:100%}table{background:rgba(0,0,0,0);border:1px solid rgba(186,187,177,.5)}table thead{background:rgba(186,187,177,.5);color:#5a6e5a;text-shadow:none;border-bottom:rgba(186,187,177,.5)}table tr:nth-child(odd){background:rgba(186,187,177,.2)}table tr:nth-child(even){background:rgba(186,187,177,.1)}sub,sup{color:rgba(0,0,0,.5)}.sheet nav.sheet-tabs{font-size:.75rem}.editor-container ul,.item-description ul{margin:.5rem 0}.editor-container ul li,.item-description ul li{list-style-type:initial;margin:.5rem 0 .5rem 1.5rem;padding:0}.prepared-character{color:#699678}.prepared-adversary{color:#9b7350}.prepared-minion{color:#5f919b}.prepared-icon{font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;width:1.5rem}.prepared-icon-true:before{content:""}.prepared-icon-false:before{content:""}.prepared-icon-actor:before{content:""}a.compendium-link{background:#ddd;padding:1px 4px;border:1px solid #4b4a44;border-radius:2px;white-space:nowrap;word-break:break-all}#playlists .sound-control i.fas.fa-random,#playlists .sound-control i.far.fa-arrow-alt-circle-right,#playlists .sound-control i.fas.fa-compress-arrows-alt,#playlists .sound-control i.fas.fa-ban{color:#ff6400}#playlists .sound-control i.fas.fa-square{color:#d00}#playlists .sound-control i.fas.fa-play,#playlists .sound-control i.fas.fa-play-circle{color:#0d0}#playlists .sound-control i.fas.fa-pause,#playlists .sound-control i.fas.fa-backward,#playlists .sound-control i.fas.fa-forward{color:#0096ff}.window-draggable-handle{z-index:20 !important}#forien-quest-log .window-content,#forien-quest-log-form .window-content,.window-app.forien-quest-preview .window-content{overflow:initial}#OneJournalShell:first-child>.window-header,#OneJournalShell.maximized>.window-header{z-index:20}@font-face{font-family:"LogotypeL5r";src:url("../fonts/LogotypeL5r.ttf") format("truetype")}@font-face{font-family:"BrushtipTexe";src:url("../fonts/BrushtipTexe.ttf") format("truetype")}@font-face{font-family:"PatrickHand";src:url("../fonts/PatrickHand.ttf") format("truetype")}@font-face{font-family:"Caballar";src:url("../fonts/Caballar.ttf") format("truetype")}@font-face{font-family:"ArchitectsDaughter";src:url("../fonts/ArchitectsDaughter.ttf") format("truetype")}body{font:16px "PatrickHand",sans-serif;letter-spacing:.05rem}h1,h4{font-family:"BrushtipTexe",sans-serif}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.25rem}i.i_strife,i.i_success,i.i_explosive,i.i_opportunity,i.i_earth,i.i_water,i.i_fire,i.i_air,i.i_void,i.i_kiho,i.i_maho,i.i_ninjitsu,i.i_prerequisite_exemption,i.i_rituals,i.i_shuji,i.i_invocations,i.i_kata,i.i_inversion,i.i_mantra,i.i_imperial,i.i_ronin,i.i_crab,i.i_crane,i.i_dragon,i.i_lion,i.i_mantis,i.i_phoenix,i.i_scorpion,i.i_tortoise,i.i_unicorn,i.i_bushi,i.i_courtier,i.i_shugenja,i.i_ring,i.i_skill{font-family:"LogotypeL5r",sans-serif;line-height:1rem;font-size:1.25rem;font-style:normal;font-weight:normal;vertical-align:middle;text-shadow:0 0 0 rgba(0,0,0,.5)}i.i_strife:before{content:"";color:#cd0000}i.i_success:before{content:"";color:#cd0000}i.i_explosive:before{content:"";color:#cd0000}i.i_opportunity:before{content:"";color:#cd0000}i.i_earth:before{content:"";color:#699678}i.i_air:before{content:"";color:#917896}i.i_water:before{content:"";color:#5f919b}i.i_fire:before{content:"";color:#9b7350}i.i_void:before{content:"";color:#4b4641}i.i_invocations:before{content:"";color:#ff6400}i.i_kata:before{content:"";color:red}i.i_kiho:before{content:"";color:#009632}i.i_maho:before{content:"";color:#c83200}i.i_ninjitsu:before{content:"";color:#343434}i.i_prerequisite_exemption:before{content:"";color:#343434}i.i_rituals:before{content:"";color:#0096ff}i.i_shuji:before{content:"";color:#00ff96}i.i_inversion:before{content:"";color:#4b4641}i.i_mantra:before{content:"";color:#fa0}i.i_crab:before{content:"";color:#82828c}i.i_crane:before{content:"";color:#789191}i.i_dragon:before{content:"";color:#55826e}i.i_lion:before{content:"";color:#a08c50}i.i_mantis:before{content:"";color:#2d551e}i.i_phoenix:before{content:"";color:#91784b}i.i_scorpion:before{content:"";color:#9b463c}i.i_tortoise:before{content:"";color:#b4c82d}i.i_unicorn:before{content:"";color:#785a87}i.i_imperial:before{content:"";color:#78ffb4}i.i_ronin:before{content:"";color:#612001}i.i_bushi:before{content:"";color:#a55a5a}i.i_courtier:before{content:"";color:#6982a5}i.i_shugenja:before{content:"";color:#5aa582}i.i_ring{content:"";background:rgba(0,0,0,0) url("../assets/dices/default/ring_blank.svg") no-repeat 0 center;background-size:1rem;display:inline-block;height:1rem;width:1rem}i.i_skill{content:"";background:rgba(0,0,0,0) url("../assets/dices/default/skill_blank.svg") no-repeat 0 0;background-size:1rem;display:inline-block;height:1rem;width:1rem}.compendium .item i{font-family:"PatrickHand",sans-serif}.compendium .item i:before{font-family:"LogotypeL5r",sans-serif}body,#navigation #scene-list .scene.view,#navigation #scene-list .scene.context,#navigation #nav-toggle,#navigation #scene-list .scene.nav-item,#controls .scene-control.active,#controls .control-tool.active,#controls .scene-control:hover,#controls .control-tool:hover,#client-settings .window-content form .form-group>label,#client-settings .window-content form .form-group select,#client-settings .form-group input,.app.window-app .form-group label,#sidebar .sidebar-tab #chat-controls div.roll-type-select select,#sidebar .sidebar-tab #chat-controls div.roll-type-select i.fas{cursor:url("../assets/cursors/normal.webp"),default !important}a,#logo,#hotbar .macro,#playlists-popout .global-volume::-webkit-slider-thumb,#sidebar #playlists .global-volume::-webkit-slider-thumb,#playlists-popout li.playlist:not(:first-of-type) li.sound .sound-volume::-webkit-slider-thumb,#sidebar #playlists li.playlist:not(:first-of-type) li.sound .sound-volume::-webkit-slider-thumb,#sidebar #settings button,.app.window-app.sheet.wfrp4e.actor.character-sheet .tab.main.active .main-row .movement.row-section .move-value .auto-calc-toggle,.app.window-app.sheet.wfrp4e.actor.npc-sheet .main-row .movement.row-section .move-value .auto-calc-toggle,.app.window-app.sheet.wfrp4e.actor.creature-sheet .main-row .movement.row-section .move-value .auto-calc-toggle,.app.window-app .form-group input[type=range]::-webkit-slider-thumb,.token-sheet .tab[data-tab=image] input[type=range]::-webkit-slider-thumb,#drawing-config .tab[data-tab=image] input[type=range]::-webkit-slider-thumb,.metacurrency-value,.overcast-button,.chargen-button,#controls .scene-control,#controls .control-tool,#effects-config .flex2::-webkit-slider-thumb,#client-settings section.content .submenu>button,#client-settings .window-content button label,form .form-group .form-fields button,.sidebar-tab .action-buttons button,.dialog .dialog-buttons button,.item-edit,.item-delete,.item-equip,.item-curriculum,.technique-edit,.technique-delete,.peculiarity-edit,.peculiarity-delete,.attribute-dtype,.equip-readied-control,form button,label{cursor:url("../assets/cursors/pointer.webp"),pointer !important}.draggable{cursor:url("../assets/cursors/drag.webp"),move !important}button{font-size:.75rem;cursor:url("../assets/cursors/pointer.webp"),pointer}.pointer{cursor:url("../assets/cursors/pointer.webp"),pointer}#game-details .system{overflow:auto;border-bottom:1px solid var(--color-border-light-highlight)}#game-details .system .system-title{white-space:break-spaces}.chat-message ul,.chat-message li{list-style:none;margin:unset;padding:unset}#logo{content:url("../assets/l5r-logo.webp");height:80px;width:88px;margin-left:.5rem;opacity:.8}#navigation{left:120px}#navigation #nav-toggle,#navigation #scene-list .scene.nav-item{cursor:default;color:#fff;background:linear-gradient(rgba(10, 0, 20, 0.75), rgba(0, 0, 10, 0.75), rgba(10, 0, 20, 0.75));background-origin:padding-box;-o-border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image-width:.25rem;border-image-outset:0px}#navigation #nav-toggle:hover,#navigation #scene-list .scene.nav-item:hover{background:linear-gradient(rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75))}#navigation #scene-list .scene.nav-item.active{background:linear-gradient(rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75))}#navigation #scene-list .scene.nav-item.active:hover{background:linear-gradient(rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75))}#navigation #scene-list .scene.view,#navigation #scene-list .scene.context{cursor:default;color:#fff;background:linear-gradient(rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75));background-origin:padding-box;-o-border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image-width:.25rem;border-image-outset:0px;box-shadow:0 0 20px red}#navigation #scene-list .scene.view:hover,#navigation #scene-list .scene.context:hover{background:linear-gradient(rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75))}#controls{top:100px}#controls ol .scene-control.active,#controls ol .control-tool.active,#controls ol .scene-control:hover,#controls ol .control-tool:hover{background:linear-gradient(rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75));background-origin:padding-box;-o-border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image-width:.25rem;border-image-outset:0px;box-shadow:0 0 10px red}#controls ol .scene-control.active:hover,#controls ol .control-tool.active:hover,#controls ol .scene-control:hover:hover,#controls ol .control-tool:hover:hover{background:linear-gradient(rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75))}#controls ol .scene-control,#controls ol .control-tool{color:#fff;background:linear-gradient(rgba(10, 0, 20, 0.75), rgba(0, 0, 10, 0.75), rgba(10, 0, 20, 0.75));background-origin:padding-box;-o-border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image-width:.25rem;border-image-outset:0px}#controls ol .scene-control:hover,#controls ol .control-tool:hover{background:linear-gradient(rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75))}#playlists .playlist .playlist-header h4{font:.75rem "PatrickHand",sans-serif;text-transform:uppercase;text-align:right}#combat .combat-tracker-header .encounters h3,#combat-popout .combat-tracker-header .encounters h3{font-size:.85rem}#combat .combat-tracker-header .encounters ul,#combat-popout .combat-tracker-header .encounters ul{display:flex;color:rgba(255,255,255,.5)}#combat .combat-tracker-header .encounters ul.encounter,#combat-popout .combat-tracker-header .encounters ul.encounter{border-right:1px solid rgba(255,255,255,.25)}#combat .combat-tracker-header .encounters ul li,#combat-popout .combat-tracker-header .encounters ul li{cursor:url("../assets/cursors/pointer.webp"),pointer}#combat .combat-tracker-header .encounters .prepared,#combat-popout .combat-tracker-header .encounters .prepared{justify-content:space-evenly}#combat .combat-tracker-header .encounters .encounter,#combat-popout .combat-tracker-header .encounters .encounter{justify-content:space-between}#combat .combat-tracker-header .encounters .encounter i,#combat-popout .combat-tracker-header .encounters .encounter i{font-size:23px;vertical-align:middle}#combat .combat-tracker-header .encounters .encounter i:hover,#combat-popout .combat-tracker-header .encounters .encounter i:hover{text-shadow:0 0 8px red}#combat .combat-tracker-header .encounters .encounter .active,#combat-popout .combat-tracker-header .encounters .encounter .active{color:#c83200}#combat .combat-tracker-header .encounters .encounter .active:hover,#combat-popout .combat-tracker-header .encounters .encounter .active:hover{text-shadow:none}#combat .combat-tracker-header .encounters .encounter-icon,#combat-popout .combat-tracker-header .encounters .encounter-icon{font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}#combat .combat-tracker-header .encounters .encounter-icon-intrigue:before,#combat-popout .combat-tracker-header .encounters .encounter-icon-intrigue:before{content:""}#combat .combat-tracker-header .encounters .encounter-icon-duel:before,#combat-popout .combat-tracker-header .encounters .encounter-icon-duel:before{content:""}#combat .combat-tracker-header .encounters .encounter-icon-skirmish:before,#combat-popout .combat-tracker-header .encounters .encounter-icon-skirmish:before{content:""}#combat .combat-tracker-header .encounters .encounter-icon-mass_battle:before,#combat-popout .combat-tracker-header .encounters .encounter-icon-mass_battle:before{content:""}#pause img{content:url("../assets/icons/pause.svg")}.directory-item .ring-filter i.i_earth,.directory-item .ring-filter i.i_fire,.directory-item .ring-filter i.i_water,.directory-item .ring-filter i.i_air,.directory-item .ring-filter i.i_void{line-height:unset}.directory-item .ring-rarity-rank{flex:unset}.not-for-players{filter:brightness(0.5)}.compendium-header .ring-filter .selected{filter:drop-shadow(0px 0px 5px yellow)}.compendium-header .rank-filter .selected{filter:drop-shadow(0px 0px 5px yellow) drop-shadow(0px 0px 5px yellow) drop-shadow(0px 0px 5px yellow)}.compendium-header l5r5e-multi-select .input-element-tags{max-height:100px}.l5r5e-tooltip{cursor:url("../assets/cursors/pointer.webp"),pointer}.l5r5e-tooltip .l5r5e-tooltip-ct,.l5r5e-tooltip.l5r5e-tooltip-ct{visibility:hidden;min-height:-moz-fit-content;min-height:fit-content;width:600px;height:auto;max-height:100%;background:#3e3a30 url("../assets/imgs/bg-l5r.webp") no-repeat;color:#000;font-size:.8rem;text-align:left;border:0 none;border-radius:0;padding:.5rem .75rem;display:block;position:absolute;z-index:9999}.l5r5e-tooltip .l5r5e-tooltip-ct *,.l5r5e-tooltip.l5r5e-tooltip-ct *{color:#000}.l5r5e-tooltip .l5r5e-tooltip-ct section>ul,.l5r5e-tooltip.l5r5e-tooltip-ct section>ul{display:flex;flex-flow:row wrap;padding:.25rem 0 .25rem 1rem}.l5r5e-tooltip .l5r5e-tooltip-ct section>ul li,.l5r5e-tooltip.l5r5e-tooltip-ct section>ul li{flex:50%;padding:0;padding-right:1rem;margin:0;list-style-type:square}.l5r5e-tooltip .l5r5e-tooltip-ct:before,.l5r5e-tooltip.l5r5e-tooltip-ct:before{z-index:-2;content:"";position:absolute;height:calc(100% + .6rem);width:calc(100% - .65rem);border:1px solid #c3a582;border-radius:0;top:-0.35rem;left:.25rem;background:#3e3a30 url("../assets/imgs/bg-l5r.webp") no-repeat}.l5r5e-tooltip .l5r5e-tooltip-ct:after,.l5r5e-tooltip.l5r5e-tooltip-ct:after{z-index:-1;content:"";position:absolute;height:100%;width:100%;border:1px solid #c3a582;border-radius:0;top:-1px;left:-1px}.l5r5e-tooltip .l5r5e-tooltip-ct .goodvalue,.l5r5e-tooltip.l5r5e-tooltip-ct .goodvalue{color:#4e8c69}.l5r5e-tooltip .l5r5e-tooltip-ct .badvalue,.l5r5e-tooltip.l5r5e-tooltip-ct .badvalue{color:#ab2a00}.l5r5e-tooltip .l5r5e-tooltip-ct .reference,.l5r5e-tooltip.l5r5e-tooltip-ct .reference{display:flex}.l5r5e-tooltip .l5r5e-tooltip-ct .reference .page,.l5r5e-tooltip.l5r5e-tooltip-ct .reference .page{margin-left:1ch}.l5r5e-tooltip .card-header img{display:inline-block;background:rgba(0,0,0,0);border:0 none;width:20px;margin:0;padding:0}.l5r5e-chat-item{color:#000;font-size:.8rem}.l5r5e-chat-item *{color:#000}.l5r5e-chat-item h2{font-size:1.1rem}.l5r5e-chat-item section>ul{display:flex;flex-flow:row wrap;padding:.25rem 0 .25rem 1rem}.l5r5e-chat-item section>ul li{flex:100%;padding:1px !important;margin:0;border:0 none !important;list-style-type:square}.l5r5e-chat-item .card-header img{display:inline-block;background:rgba(0,0,0,0);border:0 none;width:20px;margin:0;padding:0}.l5r5e-chat-item .reference{display:flex;flex-wrap:nowrap}.l5r5e-chat-item .page{margin-left:1ch}#l5r5e-gm-monitor{min-height:170px;min-width:240px}#l5r5e-gm-monitor .window-content [data-application-part=hidden_tabs]{display:none}#l5r5e-gm-monitor .window-content table{margin:0;overflow:auto}#l5r5e-gm-monitor .window-content form{padding:0 .5rem}#l5r5e-gm-monitor .window-content thead tr>th{background:rgba(0,0,0,.9);color:rgba(207,207,207,.7803921569);position:sticky;z-index:2;top:0}#l5r5e-gm-monitor .window-content thead tr>th i.i_void:before{color:rgba(207,207,207,.8)}#l5r5e-gm-monitor .window-content th,#l5r5e-gm-monitor .window-content td{border:1px solid rgba(90,110,90,.3137254902);padding:.25em}#l5r5e-gm-monitor .window-content img{border:none;min-width:24px;min-height:24px;max-width:32px;max-height:32px}#l5r5e-gm-monitor .window-content .goodvalue{color:#4e8c69}#l5r5e-gm-monitor .window-content .badvalue{color:#ab2a00}#l5r5e-gm-monitor .window-draggable-handle{display:none}#l5r5e-gm-toolbox{display:flex;background:linear-gradient(rgba(10, 0, 20, 0.75), rgba(0, 0, 10, 0.75), rgba(10, 0, 20, 0.75));border:1px solid #c3a582;margin:.5rem}#l5r5e-gm-toolbox .window-header{border-bottom:1px solid #c3a582;background:none}#l5r5e-gm-toolbox .window-header .window-title{text-align:center}#l5r5e-gm-toolbox .window-header h1{letter-spacing:.25rem;line-height:2.25rem;color:rgba(255,255,255,.65);padding-top:1ch}#l5r5e-gm-toolbox .window-content{padding:0}#l5r5e-gm-toolbox .window-content .gm-tools-container{color:var(--color-text-primary);display:flex;font-size:2rem;line-height:2rem;min-height:2rem;margin:0;padding:0}#l5r5e-gm-toolbox .window-content .gm-tools-container li{flex:1;display:flex;margin:0;padding:0;border-right:1px solid #c3a582;cursor:url("../assets/cursors/pointer.webp"),pointer}#l5r5e-gm-toolbox .window-content .gm-tools-container li:last-child{margin:0;border:0 none}#l5r5e-gm-toolbox .window-content .gm-tools-container li :hover{text-shadow:0 0 red}#l5r5e-gm-toolbox .window-content .gm-tools-container .difficulty_hidden .fa{width:3rem}#l5r5e-gm-toolbox .window-content .gm-tools-container .difficulty_hidden .difficulty{flex:1rem;width:2rem;font-size:2rem;text-align:center;margin:0;padding:.5rem}#l5r5e-gm-toolbox .window-content .gm-tools-container .fa{padding:.5rem}#l5r5e-gm-toolbox .window-content .gm-tools-container .fa-bed,#l5r5e-gm-toolbox .window-content .gm-tools-container .fa-star-half-alt,#l5r5e-gm-toolbox .window-content .gm-tools-container .fa-table,#l5r5e-gm-toolbox .window-content .gm-tools-container .fa-podcast{width:100%;padding:.5rem}#l5r5e-gm-toolbox .window-draggable-handle{display:none}l5r5e-multi-select{display:grid;grid-template-columns:minmax(auto, 1fr)}l5r5e-multi-select select{justify-self:center;width:100%;height:100%;-moz-text-align-last:center;text-align-last:center}l5r5e-multi-select .input-element-tags{grid-column-start:1;grid-column-end:span 3;max-height:-moz-fit-content;max-height:fit-content;overflow:hidden}l5r5e-multi-select .input-element-tags.overflowing{-webkit-mask-image:linear-gradient(to bottom, rgb(0, 0, 0) 80%, rgba(0, 0, 0, 0) 100%);mask-image:linear-gradient(to bottom, rgb(0, 0, 0) 80%, rgba(0, 0, 0, 0) 100%);transition:height .3s ease,-webkit-mask-image .3s ease;transition:height .3s ease,mask-image .3s ease;transition:height .3s ease,mask-image .3s ease,-webkit-mask-image .3s ease}l5r5e-multi-select .input-element-tags.overflowing:hover{max-height:-moz-fit-content;max-height:fit-content;-webkit-mask-image:none;mask-image:none}l5r5e-multi-select select{grid-row:1}l5r5e-multi-select button{grid-row:1;line-height:1}l5r5e-multi-select:has(>button.gm) .input-element-tags{grid-column-end:span 4}form#settings-config div.form-group:has(l5r5e-multi-select) .form-fields{order:3}form#settings-config div.form-group:has(#settings-config-l5r5e\.compendium-unofficial-content-for-players) .form-fields{order:3}form#settings-config div.form-group:has(#settings-config-l5r5e\.compendium-unofficial-content-for-players) .form-fields .tags{order:1}.autocomplete-wrapper{position:relative}.autocomplete-wrapper .autocomplete-list{position:absolute;border:1px solid #6e7e6b;border-bottom:none;border-top:none;z-index:99;top:100%;left:0;right:0}.autocomplete-wrapper .autocomplete-list div{padding:10px;cursor:pointer;background-color:#fff;border-bottom:1px solid #6e7e6b;text-align:left}.autocomplete-wrapper .autocomplete-list div:hover{background-color:#e9e9e9}.autocomplete-wrapper .autocomplete-active{background-color:#1e90ff !important;color:#fff}.application{color:var(--color-text-dark-primary)}.application .scrollable{--scroll-margin: 0}.application .window-header{background:linear-gradient(rgba(10, 0, 20, 0.75), rgba(0, 0, 10, 0.75), rgba(10, 0, 20, 0.75))}.application .window-header .window-title{font-family:"BrushtipTexe",sans-serif;font-size:1.25rem}.application .window-content{padding:.25rem}.application .window-content table{background:rgba(0,0,0,0);border:1px solid rgba(186,187,177,.5)}.application .window-content table thead{background:rgba(186,187,177,.5);color:#5a6e5a;text-shadow:none;border-bottom:rgba(186,187,177,.5)}.application .window-content table tr:nth-child(odd){background:rgba(186,187,177,.2)}.application .window-content table tr:nth-child(even){background:rgba(186,187,177,.1)}#sidebar-tabs button.l5r5e{position:relative;display:flex;justify-content:center;align-items:center}#sidebar-tabs button.l5r5e.chatIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/chat.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/chat.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.combatIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/combat-tracker.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/combat-tracker.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.sceneIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/scenes.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/scenes.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.actorIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/actors.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/actors.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.itemIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/object.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/object.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.journalIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/journal.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/journal.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.rolltableIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/rolltable.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/rolltable.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.playlistIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/playlist.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/playlist.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.compendiumIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/compendium.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/compendium.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.settingsIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/settings.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/settings.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.icon-plus::after{z-index:2}#sidebar-content .create-button.l5r5e{position:relative;display:flex;justify-content:center;align-items:center;filter:drop-shadow(0 0 3px var(--color-dark-1))}#sidebar-content .create-button.l5r5e.chatIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/chat.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/chat.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.combatIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/combat-tracker.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/combat-tracker.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.sceneIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/scenes.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/scenes.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.actorIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/actors.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/actors.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.itemIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/object.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/object.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.journalIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/journal.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/journal.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.rolltableIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/rolltable.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/rolltable.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.playlistIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/playlist.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/playlist.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.compendiumIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/compendium.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/compendium.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.settingsIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/settings.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/settings.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.icon-plus::after{z-index:2}#sidebar-content i.l5r5e{position:relative;display:flex;justify-content:center;align-items:center;width:2em;height:2em;color:currentColor}#sidebar-content i.l5r5e.chatIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/chat.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/chat.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.combatIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/combat-tracker.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/combat-tracker.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.sceneIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/scenes.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/scenes.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.actorIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/actors.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/actors.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.itemIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/object.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/object.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.journalIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/journal.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/journal.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.rolltableIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/rolltable.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/rolltable.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.playlistIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/playlist.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/playlist.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.compendiumIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/compendium.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/compendium.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.settingsIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/settings.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/settings.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.icon-plus::after{z-index:2}#sidebar-tabs>menu{gap:4px}#sidebar-content.expanded{background:url("../assets/ui/bgSidebar.webp") no-repeat;-o-border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-style:solid;border-image-width:.5rem;border-image-outset:0px;margin-top:2px;margin-right:2px;height:calc(100% - 10px)}#sidebar-content.expanded .sidebar-tab,#sidebar-content.expanded .tab{margin:3px;border-radius:5px}#sidebar-content.expanded #chat{margin:unset;padding-right:4px}#sidebar-content.expanded #chat .chat-scroll{direction:unset;scrollbar-color:var(--color-light-4) var(--color-dark-3);scrollbar-width:thin}#hotbar #action-bar .slot{-o-border-image:url("../assets/ui/macro-button.webp");border-image:url("../assets/ui/macro-button.webp");border-image-slice:8 fill;border-image-width:.25rem}#menu.active{transition:max-height 150ms ease-in}#menu{transition:max-height 10ms ease-out}.l5r5e .dice-picker{cursor:url("../assets/cursors/pointer.webp"),pointer}.l5r5e .dice-picker-dialog{width:35rem;min-height:auto}.l5r5e .dice-picker-dialog .effects{clear:both;display:flex;flex-wrap:wrap;justify-content:center;gap:2px 4px}.l5r5e .dice-picker-dialog .effects .effect-container{border:1px solid #5a6e5a;border-radius:4px;background-color:rgba(0,0,0,.4);padding:3px;display:flex}.l5r5e .dice-picker-dialog .effects .effect-delete{width:16px;height:16px;background-repeat:no-repeat;background-size:contain;text-align:end;cursor:url("../assets/cursors/pointer.webp"),pointer}.l5r5e .dice-picker-dialog .effects .effect-icon{width:16px;height:16px;background-repeat:no-repeat;background-size:contain}.l5r5e .dice-picker-dialog .effects .effect-name{vertical-align:top;white-space:nowrap;color:#fff;margin-left:4px;font-size:14px;line-height:16px}.l5r5e .dice-picker-dialog *{transition:none}.l5r5e .dice-picker-dialog input[type=text]:focus,.l5r5e .dice-picker-dialog input[type=text]:hover{box-shadow:none !important;border:none !important;text-shadow:none !important}.l5r5e .dice-picker-dialog select{text-align:center;width:134px;direction:rtl;-webkit-appearance:none;-moz-appearance:none;appearance:none}.l5r5e .dice-picker-dialog option{font-size:.8rem}.l5r5e .dice-picker-dialog img{border:0}.l5r5e .dice-picker-dialog table{text-align:center;background:none;border:none;border:0 none;margin:0;padding:0}.l5r5e .dice-picker-dialog table tbody tr td{width:250px;padding:0 .5rem}.l5r5e .dice-picker-dialog table tbody tr td:first-child,.l5r5e .dice-picker-dialog table tbody tr td:last-child{width:150px}.l5r5e .dice-picker-dialog table tbody tr:last-child td{width:100%;padding:.5rem}.l5r5e .dice-picker-dialog .pointer-choice{cursor:url("../assets/cursors/pointer.webp"),pointer}.l5r5e .dice-picker-dialog .ring-selection.ring-selected i{text-shadow:0px 1px 1px red}.l5r5e .dice-picker-dialog .ring-selection.ring-selected strong{color:rgba(255,0,0,.75)}.l5r5e .dice-picker-dialog .ring-selection.ring-selected input{border:2px solid rgba(255,0,0,.75) !important}.l5r5e .dice-picker-dialog .quantity{font-size:xx-large}.l5r5e .dice-picker-dialog .third{display:inline-block;text-align:center;vertical-align:middle}.l5r5e .dice-picker-dialog .dice-container.assistance{display:flex;align-items:anchor-center}.l5r5e .dice-picker-dialog .dice-container{display:inline-block;position:relative;text-align:center}.l5r5e .dice-picker-dialog .dice-container>img{height:40px;width:40px}.l5r5e .dice-picker-dialog .dice-container.dice-value.input-dice{width:20px;color:#0f0f0e;background:none;border:none;font-size:large;padding:0}.l5r5e .dice-picker-dialog .dice-value{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.l5r5e .dice-picker-dialog input[name="ring.value"][type=text]{color:#f0f0e0;border:unset;background:unset}.l5r5e .dice-picker-dialog input[name="skill.value"][type=text]{color:#0f0f0e;border:unset;background:unset}.l5r5e .dice-picker-dialog input[name="difficulty.value"][type=text]{color:#0f0f0e;border:unset;background:unset}.l5r5e .dice-picker-dialog input[name="skill.assistance"][type=text]{color:#0f0f0e;border:unset;background:unset}.l5r5e .roll-n-keep-dialog{min-width:600px;max-width:800px}.l5r5e .roll-n-keep-dialog.finalized{width:auto;min-width:400px}.l5r5e .roll-n-keep-dialog img{border:0}.l5r5e .roll-n-keep-dialog table{display:table;min-height:9rem;border:0 none;margin:.25rem 0;padding:0}.l5r5e .roll-n-keep-dialog table tbody tr{background:rgba(0,0,0,0)}.l5r5e .roll-n-keep-dialog table tbody tr td{margin:0;padding:0}.l5r5e .roll-n-keep-dialog .rnk-ct{margin:0;display:flex;flex-wrap:wrap;border-radius:.25rem;background:rgba(0,0,0,.05);border:1px solid rgba(255,255,255,.5)}.l5r5e .roll-n-keep-dialog .rnk-ct .rnk-center{flex:350px;flex-wrap:wrap;display:flex}.l5r5e .roll-n-keep-dialog .rnk-ct .form-group{width:100%}.l5r5e .roll-n-keep-dialog .rnk-ct .form-group .form-fields{flex:1}.l5r5e .roll-n-keep-dialog .rnk-ct .form-group .form-fields:nth-child(2){flex:3}.l5r5e .roll-n-keep-dialog .rnk-ct .form-group .form-fields:nth-child(2) input{flex:3}.l5r5e .roll-n-keep-dialog .rnk-ct .form-group .form-fields:nth-child(2) i{flex:unset}.l5r5e .roll-n-keep-dialog .rnk-ct .form-group .range-value{width:2rem}.l5r5e .roll-n-keep-dialog .profil{border-bottom:1px solid rgba(0,0,0,.1);display:flex;flex-direction:column}.l5r5e .roll-n-keep-dialog .profil .effects{clear:both;display:flex;flex-wrap:wrap;justify-content:center;gap:2px 4px}.l5r5e .roll-n-keep-dialog .profil .effects .effect-container{border:1px solid #5a6e5a;border-radius:4px;background-color:rgba(0,0,0,.4);padding:3px;display:flex}.l5r5e .roll-n-keep-dialog .profil .effects .effect-delete{width:16px;height:16px;background-repeat:no-repeat;background-size:contain;text-align:end;cursor:url("../assets/cursors/pointer.webp"),pointer}.l5r5e .roll-n-keep-dialog .profil .effects .effect-icon{width:16px;height:16px;background-repeat:no-repeat;background-size:contain}.l5r5e .roll-n-keep-dialog .profil .effects .effect-name{vertical-align:top;white-space:nowrap;color:#fff;margin-left:4px;font-size:14px;line-height:16px}.l5r5e .roll-n-keep-dialog .dropbox{position:relative;min-height:7rem}.l5r5e .roll-n-keep-dialog .dropbox legend i:last-child{position:absolute;top:0;right:0;border-radius:.15rem;padding:0 .1rem 0 .15rem;font-size:.65rem;line-height:1rem;width:1rem;margin:.25rem;text-align:center;color:#fff;background:#5a6e5a}.l5r5e .roll-n-keep-dialog .dropbox.faces-change{min-height:40px;margin:.5rem auto}.l5r5e .roll-n-keep-dialog .dropbox.discards{border:1px solid gray}.l5r5e .roll-n-keep-dialog .dropbox.rerolls{border:1px solid #ff4500}.l5r5e .roll-n-keep-dialog .dropbox.keeps{flex:100%;border:1px solid green}.l5r5e .roll-n-keep-dialog .dropbox.swap{flex:0 0 calc(100px + 1rem);flex-direction:column;border:1px solid #f0f}.l5r5e .roll-n-keep-dialog .dropbox.discards,.l5r5e .roll-n-keep-dialog .dropbox.rerolls{flex:0 0 calc(50% - .5rem);margin-bottom:.5rem}.l5r5e .roll-n-keep-dialog .dice-ct{position:relative;padding:.25rem}.l5r5e .roll-n-keep-dialog .dice-ct:before{content:"";position:absolute;height:.5rem;width:2px;top:-0.3rem;right:calc(50% - 1px);background:rgba(0,0,0,.25)}.l5r5e .roll-n-keep-dialog .dice-ct:after{content:"";position:absolute;bottom:0;right:0;border-radius:.15rem;padding:0 .15rem;font-size:.65rem;line-height:1rem;width:1rem;text-align:center;color:#fff;background:gray}.l5r5e .roll-n-keep-dialog .dice-ct.discard{filter:opacity(0.5)}.l5r5e .roll-n-keep-dialog .dice-ct.discard:after{content:"";background:gray}.l5r5e .roll-n-keep-dialog .dice-ct.reroll{filter:opacity(0.5)}.l5r5e .roll-n-keep-dialog .dice-ct.reroll:after{content:"";background:#ff4500}.l5r5e .roll-n-keep-dialog .dice-ct.keep:after{content:"";background:green}.l5r5e .roll-n-keep-dialog .dice-ct.swap:after{content:"";background:#f0f}.l5r5e .roll-n-keep-dialog tr:first-child .dice-ct:before{display:none}.l5r5e .roll-n-keep-dialog .dice{height:40px;width:40px}.l5r5e .roll-n-keep-dialog .dice.discard{filter:opacity(0.5);border:0 none}.l5r5e .roll-n-keep-dialog .dice.reroll{filter:opacity(0.5);border:0 none}.l5r5e .roll-n-keep-dialog .dice.keep{border:0 none}.l5r5e .roll-n-keep-dialog .dice.swap{border:0 none}.l5r5e .roll-n-keep-dialog #finalize{width:100%;margin:.5rem .25rem .25rem}.l5r5e .roll-n-keep-dialog .section-header i{font-size:.75rem;margin:0 .25rem}.l5r5e .roll-n-keep-dialog .fa-sign-in-alt{transform:rotate(90deg)}.l5r5e .roll-n-keep-dialog .chat-profil ul{display:flex;flex-direction:row}.l5r5e .roll-n-keep-dialog .chat-profil ul li:nth-child(1),.l5r5e .roll-n-keep-dialog .chat-profil ul li:nth-child(2){flex:0 0 4rem;padding:0 .25rem .25rem}.l5r5e .roll-n-keep-dialog .chat-profil ul li:nth-child(4){flex:0 0 4rem;padding:0 .25rem .25rem}.l5r5e .roll-n-keep-dialog .chat-profil ul .profile-img{width:4rem}.l5r5e .roll-n-keep-dialog .chat-profil ul .chat-profil-stance{font-size:3.5rem;line-height:3.5rem}.l5r5e .dice-picker-dialog button,.l5r5e .roll-n-keep-dialog button{cursor:default;color:#fff;background:linear-gradient(rgb(95, 40, 65), rgb(65, 25, 40), rgb(95, 40, 65));background-origin:padding-box;-o-border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image-width:.5rem;border-image-outset:0px;margin:.5rem 0 0}.l5r5e .dice-picker-dialog button:hover,.l5r5e .roll-n-keep-dialog button:hover{background:linear-gradient(rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75))}.l5r5e .dice-picker-dialog button[disabled],.l5r5e .roll-n-keep-dialog button[disabled]{opacity:.25}.l5r5e .dice-picker-dialog button[disabled]:hover,.l5r5e .roll-n-keep-dialog button[disabled]:hover{box-shadow:none}.l5r5e .dice-picker-dialog #context-menu,.l5r5e .roll-n-keep-dialog #context-menu{max-width:none}.l5r5e .dice-picker-dialog .symbols-help,.l5r5e .roll-n-keep-dialog .symbols-help{font-style:italic;color:#666;font-size:.8rem;line-height:1rem;margin:.5rem auto 0}.l5r5e .dice-picker-dialog .symbols-help i,.l5r5e .roll-n-keep-dialog .symbols-help i{font-size:1rem;line-height:1rem}.l5r5e ul,.l5r5e li{list-style-type:none;margin:0;padding:0}.l5r5e .earth{color:#699678}.l5r5e .air{color:#917896}.l5r5e .water{color:#5f919b}.l5r5e .fire{color:#9b7350}.l5r5e .void{color:#4b4641}.l5r5e input[type=text],.l5r5e input[type=number],.l5r5e input[type=password],.l5r5e input[type=date],.l5r5e input[type=time],.l5r5e textarea{padding:.25rem;background:rgba(255,255,255,.5);border:1px solid rgba(186,187,177,.5);color:rgba(0,0,0,.5);resize:vertical;border-radius:0;box-shadow:none}.l5r5e input[type=text][disabled],.l5r5e input[type=number][disabled],.l5r5e input[type=password][disabled],.l5r5e input[type=date][disabled],.l5r5e input[type=time][disabled],.l5r5e textarea[disabled]{background:rgba(255,255,255,.25)}.l5r5e input[type=number]{text-align:center}.l5r5e.system-badge{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.25rem}.l5r5e.system-badge>img{height:128px;border:none;-o-object-fit:contain;object-fit:contain}.l5r5e.system-badge .system-info{position:relative;font-size:var(--font-size-16)}.l5r5e.system-badge .system-info i{-webkit-padding-start:2px;padding-inline-start:2px;font-size:var(--font-size-12)}.l5r5e.sidebar-info{margin-bottom:-0.5rem}.l5r5e.sidebar-info .system-badge{margin-top:.5rem}.l5r5e.sidebar-info .notification-pip{color:var(--color-text-accent);font-size:var(--font-size-12);top:4px;right:-14px}.l5r5e.sidebar-info ul.unlist{display:flex;flex-wrap:wrap;padding-left:0;list-style:none;-webkit-clip-path:inset(0 0 0 2ch);clip-path:inset(0 0 0 2ch)}.l5r5e.sidebar-info ul.links{gap:0;margin-top:6px;margin-left:10%}.l5r5e.sidebar-info ul.links li{padding-left:1ch;white-space:nowrap}.l5r5e.sidebar-info ul.links li::before{content:"•";display:inline-block;margin-right:1ch;width:1ch;text-align:center}.l5r5e.chat.dice-roll .chat-dice{display:inline;position:relative;padding:0;margin:0}.l5r5e.chat.dice-roll .chat-dice:after{content:"";position:absolute;bottom:0;right:0;border-radius:.15rem;padding:0 .15rem;font-size:.65em;line-height:1rem;text-align:center;color:#fff;background:rgba(0,0,0,0)}.l5r5e.chat.dice-roll .chat-dice:last-of-type:after,.l5r5e.chat.dice-roll .chat-dice:nth-child(6):after,.l5r5e.chat.dice-roll .chat-dice:nth-child(12):after,.l5r5e.chat.dice-roll .chat-dice:nth-child(18):after{padding:0 .175rem 0 .15rem}.l5r5e.chat.dice-roll .chat-dice.rerolled>img{border-bottom:0 none}.l5r5e.chat.dice-roll .chat-dice.rerolled:after{content:"";background:#ff4500}.l5r5e.chat.dice-roll .chat-dice.swapped>img{border-bottom:0 none}.l5r5e.chat.dice-roll .chat-dice.swapped:after{content:"";background:#f0f}.l5r5e.chat.dice-roll .chat-dice>img{border:1px solid rgba(0,0,0,0);height:auto}.l5r5e.chat.dice-roll .chat-profil{text-align:center;vertical-align:middle}.l5r5e.chat.dice-roll .chat-profil .profile-img{margin:.25rem .25rem 0 0}.l5r5e.chat.dice-roll .chat-profil-stance{font-size:2.5rem;line-height:2.5rem;margin:.25rem;text-shadow:1px 1px 1px rgba(0,0,0,.5)}.l5r5e.chat.dice-roll .chat-profil-element{flex-wrap:wrap;flex-grow:1}.l5r5e.chat.dice-roll .chat-profil-element-skill{flex-grow:3}.l5r5e.chat.dice-roll .chat-profil-element:last-child{flex-grow:2}.l5r5e.chat.dice-roll .dice-formula,.l5r5e.chat.dice-roll .dice-total{background:rgba(255,255,255,.1);border:rgba(255,255,255,.75);text-align:center;margin:.5rem 0;padding:.25rem .5rem .25rem .25rem}.l5r5e.chat.dice-roll .dice-formula-rnk,.l5r5e.chat.dice-roll .dice-total-rnk{line-height:2rem}.l5r5e.chat.dice-roll .dice-formula-rnk i,.l5r5e.chat.dice-roll .dice-total-rnk i{margin-left:.5rem}.l5r5e.chat.dice-roll button{justify-self:center}.l5r5e.chat.dice-roll button.chat-dice-rnk{cursor:url("../assets/cursors/pointer.webp"),pointer;color:#fff;background:linear-gradient(rgb(95, 40, 65), rgb(65, 25, 40), rgb(95, 40, 65));background-origin:padding-box;-o-border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image-width:.5rem;border-image-outset:0px;margin:.5rem 0 0}.l5r5e.chat.dice-roll button.chat-dice-rnk:hover{background:linear-gradient(rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75))}.l5r5e.chat.dice-roll button.chat-dice-rnk-ended{background:linear-gradient(rgba(10, 0, 20, 0.75), rgba(0, 0, 10, 0.75), rgba(10, 0, 20, 0.75))}.l5r5e.chat.dice-roll .dice-result-rnk{background:rgba(0,0,255,.1);border:1px solid rgba(55,55,155,.75);padding:.25rem;color:rgba(55,55,155,.75);text-align:center;font-weight:bold;text-shadow:0 0 0 #000}.l5r5e.chat.dice-roll .dice-result-rnk.success{background:rgba(0,255,0,.1);border-color:rgba(55,155,55,.75);color:rgba(55,155,55,.75)}.l5r5e.chat.dice-roll .dice-result-rnk.success i.i_success{font-size:1rem}.l5r5e.chat.dice-roll .dice-result-rnk.unknown{background:rgba(121,121,121,.1);border-color:rgba(124,124,124,.75);color:rgba(91,91,91,.75)}.l5r5e.chat.dice-roll .dice-result-rnk.fail{background:rgba(255,0,0,.1);border-color:rgba(155,55,55,.75);color:rgba(155,55,55,.75)}.l5r5e.chat.dice-roll .target,.l5r5e.chat.dice-roll .item-infos{display:flex;align-items:center;flex:0 0 100%;margin:.5rem 0;padding:.25rem .5rem .25rem .25rem;background:rgba(255,255,255,.1);border:solid 1px rgba(100,0,0,.75);border-radius:3px}.l5r5e.chat.dice-roll .target .profile,.l5r5e.chat.dice-roll .item-infos .profile{flex:1;margin:.25rem .25rem 0 0;position:relative}.l5r5e.chat.dice-roll .target .profile .profile-img,.l5r5e.chat.dice-roll .item-infos .profile .profile-img{position:relative;border:none;filter:drop-shadow(0 0 1px rgba(0, 0, 0, 0.66))}.l5r5e.chat.dice-roll .target .name,.l5r5e.chat.dice-roll .item-infos .name{flex:6;font-family:"BrushtipTexe",sans-serif}.l5r5e.chat.dice-roll .target .content-link,.l5r5e.chat.dice-roll .item-infos .content-link{background:unset;border:unset}.l5r5e.chat.dice-roll .target .content-link i,.l5r5e.chat.dice-roll .item-infos .content-link i{display:none}.l5r5e.chat.dice-roll .item-infos{border:solid 1px rgba(0,78,100,.75)}.l5r5e.chat.dice-roll .item-infos i{font-size:var(--font-size-12)}.l5r5e.chat.dice-roll .dice-container{display:flex}.l5r5e.sheet{min-width:37rem}.l5r5e.sheet label:hover{text-shadow:0 0 2px red}.l5r5e.sheet .l5r-buttons-bar{display:flex;flex:0 0 100%;overflow:hidden;padding:0 8px;line-height:1.9rem;justify-content:flex-end;background:rgba(186,187,177,.5);height:2rem}.l5r5e.sheet .l5r-buttons-bar a.l5r-header-button{flex:none;margin:0 0 0 8px}.l5r5e.sheet.actor .sheet-header h1{flex:auto;margin:0 0 .25rem .5rem}.l5r5e.sheet.actor .sheet-body{height:calc(100% - 28rem)}.l5r5e.sheet.actor fieldset.advancement,.l5r5e.sheet.actor fieldset.items-wrapper{display:grid;flex:100%}.l5r5e.sheet.actor .advancements-tabs{height:2rem;line-height:2rem;font-size:1rem}.l5r5e.sheet form{display:flex;flex-wrap:wrap;align-content:flex-start}.l5r5e.sheet .sheet-body{flex:0 0 100%;align-items:flex-start}.l5r5e.sheet .sheet-body .effects{clear:both;display:flex;flex-wrap:wrap;gap:2px 4px}.l5r5e.sheet .sheet-body .effects .effect-container{border:1px solid #5a6e5a;border-radius:4px;background-color:rgba(0,0,0,.4);padding:3px;display:flex}.l5r5e.sheet .sheet-body .effects .effect-delete{width:16px;height:16px;background-repeat:no-repeat;background-size:contain;text-align:end;cursor:url("../assets/cursors/pointer.webp"),pointer}.l5r5e.sheet .sheet-body .effects .effect-icon{width:16px;height:16px;background-repeat:no-repeat;background-size:contain}.l5r5e.sheet .sheet-body .effects .effect-name{vertical-align:top;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;margin-left:4px;font-size:14px;line-height:16px;max-width:140px}.l5r5e.sheet section.tab[data-tab],.l5r5e.sheet article.tab[data-tab]{display:none}.l5r5e.sheet section.tab[data-tab].active,.l5r5e.sheet article.tab[data-tab].active{display:flex}.l5r5e.sheet .sheet-header{align-items:flex-start;flex-wrap:wrap}.l5r5e.sheet .sheet-header input{flex:0 0 3rem;font-size:1.5rem;height:2rem}.l5r5e.sheet .sheet-header h1{flex:0 0 calc(100% - 90px - 1.25rem);margin:0 0 .25rem 1rem}.l5r5e.sheet .sheet-header h1 input{flex:0 0 100%;font-size:3rem;height:5rem;margin:0;width:100%;text-align:right;color:#963c41;text-shadow:0 0 1px #963c41;background:rgba(0,0,0,0);border:0 none;border-radius:0;border-bottom:1px solid rgba(90,110,90,.25)}.l5r5e.sheet .sheet-header h1:before{content:"";position:absolute;background:url("../assets/imgs/brush.webp") no-repeat 0 0;background-size:contain;height:225px;width:100%;z-index:-1;top:-1rem;left:-0.25rem}.l5r5e.sheet .sheet-header img{flex:0 0 150px;height:150px;width:150px;margin-right:0;-o-object-fit:contain;object-fit:contain;background:rgba(255,255,255,.25);border:1px solid rgba(186,187,177,.25);--notchSize: 0.5rem;-webkit-clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)));clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)))}.l5r5e.sheet .sheet-header .compromised input{border:1px solid #963c41;box-shadow:0 1px 5px #963c41}.l5r5e.sheet .sheet-header .header-fields h2{font-family:"BrushtipTexe",sans-serif;font-size:1rem;padding:.25rem .25rem 0;margin:1rem 20% 0 0;text-align:center;color:rgba(0,0,0,.25);text-shadow:0 0 1px rgba(90,110,90,.25);border-bottom:0 none;background:rgba(186,187,177,.5);--notchSize: 0.5rem;-webkit-clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, 100% 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% 100%);clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, 100% 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% 100%)}.l5r5e.sheet .sheet-header .header-fields h2.right{margin:1rem 0 0 20%;-webkit-clip-path:polygon(0% 0, var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% 100%, 100% 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)));clip-path:polygon(0% 0, var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% 100%, 100% 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)))}.l5r5e.sheet .sheet-header .header-fields h2:before{content:"";position:absolute;height:1px;width:100%}.l5r5e.sheet .sheet-header .identity-wrapper{display:flex;position:initial;flex-wrap:wrap;flex:0 0 calc(100% - 150px)}.l5r5e.sheet .sheet-header .identity-wrapper label{display:flex;color:#5a6e5a;text-transform:uppercase;font-size:.75rem;line-height:2rem}.l5r5e.sheet .sheet-header .identity-wrapper label input{flex:1;font-size:1.25rem;height:1.75rem;margin:0 1rem 0 .5rem;padding:0 .25rem .25rem}.l5r5e.sheet .sheet-header .identity-wrapper label input[disabled]{border:1px solid rgba(186,187,177,.5);background:rgba(255,255,255,.25)}.l5r5e.sheet .sheet-header .identity-wrapper .identity-content{display:flex;flex-wrap:wrap}.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li{flex:33%}.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(1),.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(2){flex:calc(50% - 3rem);margin:0 0 .25rem}.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(3){flex:auto}.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(3) input{width:1rem;padding:0;margin-right:0}.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(4),.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(5){flex:60%}.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(4) input,.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(5) input{font-size:1rem}.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(5){flex:40%}.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(5) input{margin-right:0}.l5r5e.sheet .sheet-header .mid-wrapper{display:flex}.l5r5e.sheet .sheet-header .side-col{width:30%}.l5r5e.sheet .sheet-header .central-col{width:40%}.l5r5e.sheet .sheet-header .rings{padding:0;margin-top:1rem}.l5r5e.sheet .sheet-header .social-content,.l5r5e.sheet .sheet-header .attributes-wrapper{flex:none;flex-wrap:wrap;display:flex;padding:.5rem 0 0 .25rem;border-left:2px solid rgba(186,187,177,.5)}.l5r5e.sheet .sheet-header .social-content li,.l5r5e.sheet .sheet-header .attributes-wrapper li{position:relative}.l5r5e.sheet .sheet-header .social-content li:before,.l5r5e.sheet .sheet-header .attributes-wrapper li:before{content:"";position:absolute;background:linear-gradient(rgba(186, 187, 177, 0.5), rgba(186, 187, 177, 0));height:2px;width:97%;top:-0.25rem;left:-0.25rem}.l5r5e.sheet .sheet-header .social-content li:nth-child(2):before,.l5r5e.sheet .sheet-header .attributes-wrapper li:nth-child(2):before{width:90%}.l5r5e.sheet .sheet-header .social-content li:nth-child(3):before,.l5r5e.sheet .sheet-header .attributes-wrapper li:nth-child(3):before{width:80%}.l5r5e.sheet .sheet-header .social-content li:nth-child(4):before,.l5r5e.sheet .sheet-header .attributes-wrapper li:nth-child(4):before{width:90%}.l5r5e.sheet .sheet-header .social-content label,.l5r5e.sheet .sheet-header .attributes-wrapper label{display:flex;color:#5a6e5a;text-transform:uppercase;font-size:.75rem;height:2.5rem;margin:.25rem 0;flex-direction:row-reverse}.l5r5e.sheet .sheet-header .social-content label strong,.l5r5e.sheet .sheet-header .attributes-wrapper label strong{flex:0 0 calc(100% - 4.5rem)}.l5r5e.sheet .sheet-header .social-content label input,.l5r5e.sheet .sheet-header .attributes-wrapper label input{flex:0 0 3rem;margin:0 .25rem;height:2rem}.l5r5e.sheet .sheet-header .social-content label input[disabled],.l5r5e.sheet .sheet-header .attributes-wrapper label input[disabled]{background:rgba(255,255,255,.25)}.l5r5e.sheet .sheet-header .social-content .affinities,.l5r5e.sheet .sheet-header .attributes-wrapper .affinities{padding-top:.25rem}.l5r5e.sheet .sheet-header .social-content .affinities .ring,.l5r5e.sheet .sheet-header .attributes-wrapper .affinities .ring{display:flex;flex-wrap:wrap;flex-direction:unset;flex:3rem;height:1.5rem;margin:0}.l5r5e.sheet .sheet-header .social-content .affinities i,.l5r5e.sheet .sheet-header .attributes-wrapper .affinities i{flex:1rem;margin:0;text-align:center}.l5r5e.sheet .sheet-header .social-content .affinities input,.l5r5e.sheet .sheet-header .attributes-wrapper .affinities input{flex:1.25rem;height:1.25rem;margin:0}.l5r5e.sheet .sheet-header .focus-content,.l5r5e.sheet .sheet-header .vigilance-content{flex:0 0 50%;padding-bottom:.5rem}.l5r5e.sheet .sheet-header .focus-content .attribute-label,.l5r5e.sheet .sheet-header .vigilance-content .attribute-label{flex-wrap:wrap;height:auto}.l5r5e.sheet .sheet-header .focus-content .attribute-label strong,.l5r5e.sheet .sheet-header .vigilance-content .attribute-label strong{flex:100%;text-align:center}.l5r5e.sheet .sheet-header .focus-content .attribute-label input,.l5r5e.sheet .sheet-header .vigilance-content .attribute-label input{flex:1 0 3rem}.l5r5e.sheet .sheet-header .focus-content .attribute-label:before,.l5r5e.sheet .sheet-header .vigilance-content .attribute-label:before{top:auto;bottom:.1rem;height:calc(100% - 1.45rem);width:calc(100% - .4rem)}.l5r5e.sheet .sheet-header .attributes-wrapper{padding:.5rem .25rem 0 0;border-left:0 none;border-right:2px solid rgba(186,187,177,.5)}.l5r5e.sheet .sheet-header .attributes-wrapper li:before{left:auto;right:-0.25rem}.l5r5e.sheet .sheet-header .attributes-wrapper li.focus-content:before{width:0}.l5r5e.sheet .sheet-header .attributes-wrapper li.vigilance-content:before{width:160%}.l5r5e.sheet .sheet-header .attributes-wrapper li.void-content:before{width:90%}.l5r5e.sheet .sheet-header .attributes-wrapper label{flex-direction:row;width:100%}.l5r5e.sheet .sheet-header .attributes-wrapper label strong{text-align:right}.l5r5e.sheet .sheet-header .attributes-wrapper label:nth-child(2) strong{position:absolute;top:0;left:0;font-size:.65rem;width:3rem;color:rgba(0,0,0,.25)}.l5r5e.sheet .sheet-header .attributes-wrapper label:nth-child(2) input{font-size:1.25rem;padding-top:.75rem}.l5r5e.sheet .sheet-header .attributes-wrapper .endurance-content label:nth-child(1) strong,.l5r5e.sheet .sheet-header .attributes-wrapper .composure-content label:nth-child(1) strong{flex:0 0 calc(100% - 6rem)}.l5r5e.sheet .sheet-header .attributes-wrapper .endurance-content label:nth-child(1) input,.l5r5e.sheet .sheet-header .attributes-wrapper .composure-content label:nth-child(1) input{flex:0 0 5.5rem;padding-right:3rem}.l5r5e.sheet .sheet-header .attributes-wrapper .endurance-content label:nth-child(2),.l5r5e.sheet .sheet-header .attributes-wrapper .composure-content label:nth-child(2){position:absolute;right:0;width:3.5rem}.l5r5e.sheet .sheet-header .attributes-wrapper .increment-control{line-height:13px;position:relative;top:.2rem}.l5r5e.sheet .sheet-header .attributes-wrapper .void-content{width:100%;padding-top:.25rem}.l5r5e.sheet .sheet-header .attributes-wrapper .void-content label{margin:0}.l5r5e.sheet .sheet-header .attributes-wrapper .void-content label strong{flex:1 0 calc(100% - 5rem);padding:0 .25rem}.l5r5e.sheet .sheet-header .attributes-wrapper .void-content label strong:after{content:"/";position:absolute;right:1.25rem;font-size:1rem;bottom:.6rem;color:#764f40}.l5r5e.sheet .sheet-header .attributes-wrapper .void-content label input:nth-child(2){flex:3rem;padding-right:1.25rem}.l5r5e.sheet .sheet-header .attributes-wrapper .void-content label input:last-child{flex:1;border:0 none;font-size:1rem;text-align:right;padding-left:.25rem;padding-top:.75rem;position:absolute;right:.25rem;width:1rem}.l5r5e.sheet .sheet-header .attributes-wrapper li{display:flex}.l5r5e.sheet .sheet-header .attributes-wrapper li p{display:none;z-index:2;position:absolute;background:rgba(0,0,0,.5);color:#fff;line-height:1.5rem;text-align:center;width:100%;padding:.25rem;bottom:-2.25rem;right:-0.25rem;--notchSize: 0.5rem;-webkit-clip-path:polygon(0% 0, 0 0%, 100% 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)));clip-path:polygon(0% 0, 0 0%, 100% 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)))}.l5r5e.sheet .sheet-header .attributes-wrapper li:hover p{display:block;height:auto}.l5r5e.sheet .sheet-header .attributes-wrapper .focus-content p,.l5r5e.sheet .sheet-header .attributes-wrapper .vigilance-content p{bottom:-3.75rem}.l5r5e.sheet .sheet-header .attribute-label{position:relative}.l5r5e.sheet .sheet-header .identity-content .attribute-label:before{height:calc(100% - .6rem);width:calc(100% - .65rem);left:auto;top:.15rem;right:.85rem}.l5r5e.sheet .sheet-header .identity-content li:nth-child(3) .attribute-label:before,.l5r5e.sheet .sheet-header .identity-content li:nth-child(5) .attribute-label:before{height:calc(100% - .6rem);width:calc(100% + .25rem);left:auto;top:.15rem;right:-0.15rem}.l5r5e.sheet .sheet-header .attributes-wrapper .attribute-label:nth-child(2):before{left:auto;right:3.15rem;width:2.6rem}.l5r5e.sheet .sheet-header .attributes-wrapper .attribute-label:before{left:auto;right:.15rem}.l5r5e.sheet .sheet-header .void-content .attribute-label:before{width:3.85rem}.l5r5e.sheet article{background:rgba(255,255,255,.25);padding:.5rem;flex-wrap:wrap;min-height:calc(100% - 3.25rem)}.l5r5e.sheet article fieldset h3{font-size:1.25rem;width:100%;text-align:left;line-height:2rem;color:#764f40;border-bottom:1px solid}.l5r5e.sheet article fieldset h3 .item-control.item-add{float:right;font-size:.75rem;line-height:.75rem;border:1px solid;padding:.25rem;margin:.25rem;color:#fff;background:#764f40}.l5r5e.sheet article fieldset h3 .item-control.item-add:hover{opacity:.75}.l5r5e.sheet article .narrative-content{flex:100%;display:flex}.l5r5e.sheet article .narrative-content fieldset{flex:0 0 calc(50% - .5rem)}.l5r5e.sheet article .narrative-content fieldset label{width:100%}.l5r5e.sheet article .narrative-list{flex:0 0 50%}.l5r5e.sheet article .narrative-list fieldset{flex:0 0 50%}.l5r5e.sheet article .narrative-list fieldset label{width:100%}.l5r5e.sheet article .narrative-fluff{flex:0 0 50%;display:flex;flex-direction:column}.l5r5e.sheet article .narrative-fluff .narrative-description,.l5r5e.sheet article .narrative-fluff .narrative-note{flex:1;font-size:.85rem;max-height:24rem}.l5r5e.sheet article .narrative-fluff .narrative-description .editor-container,.l5r5e.sheet article .narrative-fluff .narrative-note .editor-container{min-height:18rem}.l5r5e.sheet article .techniques-wrapper{padding-left:.25rem}.l5r5e.sheet article .techniques-wrapper fieldset{margin:0 0 0 .25rem}.l5r5e.sheet article .techniques-wrapper .dice-picker-tech:hover{text-shadow:0 0 2px red}.l5r5e.sheet article .techniques-wrapper .checklist{display:flex;flex-wrap:wrap;font-size:.85rem;margin:0 0 .25rem .25rem;padding:.5rem;background:rgba(186,187,177,.5);--notchSize: 0.25rem;-webkit-clip-path:polygon(0% 0, var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% 100%, 100% 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)));clip-path:polygon(0% 0, var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% 100%, 100% 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)))}.l5r5e.sheet article .techniques-wrapper .checklist i{color:rgba(0,0,0,.5);margin-right:.5rem}.l5r5e.sheet article .techniques-wrapper .checklist label{flex:0 0 auto;margin:0 .25rem .25rem;padding:0 .5rem;color:#5a6e5a;background:rgba(255,255,255,.5);border:1px solid #5a6e5a;border-radius:1rem}.l5r5e.sheet article .techniques-wrapper .checklist input{margin:.25rem 0 0 0;height:.65rem;width:.65rem}.l5r5e.sheet article .stances-content{flex:100%;height:100%;align-self:flex-start}.l5r5e.sheet article .stances-content .item-list{position:relative;padding-top:2rem;margin:0}.l5r5e.sheet article .stances-content .stance-content{padding:0;margin:0}.l5r5e.sheet article .stances-content .stance-content label{display:block;position:absolute;top:0;left:0;width:20%;line-height:1.5rem;padding:.25rem;color:#fff}.l5r5e.sheet article .stances-content .stance-content label.earth{background:#699678}.l5r5e.sheet article .stances-content .stance-content label.air{background:#917896;left:20%}.l5r5e.sheet article .stances-content .stance-content label.water{background:#5f919b;left:40%}.l5r5e.sheet article .stances-content .stance-content label.fire{background:#9b7350;left:60%}.l5r5e.sheet article .stances-content .stance-content label.void{background:#4b4641;left:80%}.l5r5e.sheet article .stances-content .stance-content label input{float:right;position:relative;top:.3rem;right:.25rem}.l5r5e.sheet article .weapons-content,.l5r5e.sheet article .armors-content{flex:0 0 calc(50% - .5rem)}.l5r5e.sheet .xp,.l5r5e.sheet .money-wrapper{flex:100%;flex-direction:row;color:#000}.l5r5e.sheet .xp label,.l5r5e.sheet .money-wrapper label{display:flex;flex:33.3333333333%;padding:.5rem;font-size:.85rem;align-items:center}.l5r5e.sheet .xp label input,.l5r5e.sheet .money-wrapper label input{margin-left:.5rem}.l5r5e.sheet .xp .xp-buttons,.l5r5e.sheet .xp .money-buttons,.l5r5e.sheet .money-wrapper .xp-buttons,.l5r5e.sheet .money-wrapper .money-buttons{line-height:13px;padding-left:.3em}.l5r5e.sheet .xp .increment-control,.l5r5e.sheet .money-wrapper .increment-control{display:flex;flex-direction:column;align-items:center;padding-left:.2rem;flex:none}.l5r5e.sheet table{border:none;font-size:.85rem;color:#000;text-align:left}.l5r5e.sheet table thead{border:none;font-family:"BrushtipTexe",sans-serif;font-weight:normal}.l5r5e.sheet table thead th{padding-left:.5rem;padding-right:.5rem;font-size:1rem}.l5r5e.sheet table thead th:first-child{flex:calc(100% - 16rem);padding-left:.5rem;text-align:left}.l5r5e.sheet table thead th:nth-child(2){flex:0 0 2rem}.l5r5e.sheet table thead th:nth-child(3),.l5r5e.sheet table thead th:nth-child(4){flex:0 0 4rem}.l5r5e.sheet table tbody{border:none}.l5r5e.sheet table tbody .curriculum{flex:0 0 2rem}.l5r5e.sheet table tbody .name{flex:calc(100% - 13rem);padding-left:.5rem;text-align:left}.l5r5e.sheet table tbody .xp,.l5r5e.sheet table tbody .rank{flex:0 0 4rem}.l5r5e.sheet table tbody .actions{flex:0 0 3rem;font-size:.75rem}.l5r5e.sheet table tbody .actions ul{display:flex;flex-direction:row}.l5r5e.sheet table tbody .actions ul li{flex:0 0 1rem}.l5r5e.sheet table tbody .actions ul li:hover{color:rgba(255,0,0,.75)}.l5r5e.sheet table tbody .tfoot{padding:.25 .5rem;background:rgba(186,187,177,.5);text-shadow:none;border-top:rgba(186,187,177,.5);text-align:center}.l5r5e.sheet table tbody img{width:16px;height:16px;border:none;display:inline}.l5r5e.sheet table tfoot{border:none;-moz-text-align-last:center;text-align-last:center}.l5r5e.sheet .inventory .items-wrapper h3{background:rgba(90,110,90,.15);color:#5a6e5a;border-bottom:1px solid #fff;font-family:"Caballar",sans-serif;font-size:1rem;padding-left:.5rem;margin:0}.l5r5e.sheet .inventory .items-wrapper .item-list{display:block}.l5r5e.sheet.actor .initiative-wrapper,.l5r5e.sheet.npc .initiative-wrapper{flex:100%;height:100%;align-self:flex-start;text-align:center;display:block}.l5r5e.sheet.actor .initiative button,.l5r5e.sheet.npc .initiative button{width:auto;min-width:20%;margin:0 .25rem .25rem;padding:0 .5rem;color:#5a6e5a;background:rgba(255,255,255,.5);border:1px solid #5a6e5a;border-radius:1rem;line-height:1.5rem;height:1.5rem}.l5r5e.sheet.actor .initiative button:focus,.l5r5e.sheet.npc .initiative button:focus{box-shadow:none}.l5r5e.sheet.actor .limited h1,.l5r5e.sheet.npc .limited h1{margin:.5rem 0}.l5r5e.sheet.actor .limited img.full,.l5r5e.sheet.npc .limited img.full{flex:initial;height:auto;width:-moz-max-content;width:max-content;border:0 none;margin:0 auto}.l5r5e.sheet.actor .limited .sheet-header,.l5r5e.sheet.npc .limited .sheet-header{flex:none;height:auto;width:100%}.l5r5e.sheet.actor .limited ul,.l5r5e.sheet.npc .limited ul{display:flex;flex-wrap:wrap}.l5r5e.sheet.actor .limited ul li,.l5r5e.sheet.npc .limited ul li{flex:50%;padding:.25rem 0}.l5r5e.sheet.actor .limited ul li input,.l5r5e.sheet.npc .limited ul li input{width:75%;float:right}.l5r5e.sheet.actor .limited ul li:nth-child(1),.l5r5e.sheet.actor .limited ul li:nth-child(2),.l5r5e.sheet.npc .limited ul li:nth-child(1),.l5r5e.sheet.npc .limited ul li:nth-child(2){flex:calc(50% - 5rem);margin-right:1rem}.l5r5e.sheet.actor .limited ul li:nth-child(3),.l5r5e.sheet.npc .limited ul li:nth-child(3){flex:auto}.l5r5e.sheet.actor .limited ul li:nth-child(3) input,.l5r5e.sheet.npc .limited ul li:nth-child(3) input{width:2rem}.l5r5e.sheet.actor .limited ul li:nth-child(4),.l5r5e.sheet.actor .limited ul li:nth-child(5),.l5r5e.sheet.npc .limited ul li:nth-child(4),.l5r5e.sheet.npc .limited ul li:nth-child(5){flex:calc(50% - 1rem);margin-right:1rem}.l5r5e.sheet.actor .limited ul li:nth-child(4) input,.l5r5e.sheet.actor .limited ul li:nth-child(5) input,.l5r5e.sheet.npc .limited ul li:nth-child(4) input,.l5r5e.sheet.npc .limited ul li:nth-child(5) input{font-size:1rem}.l5r5e.sheet nav.sheet-tabs{flex:100%}.l5r5e.sheet.journal .journal-page-content ul{margin:.5rem 0}.l5r5e.sheet.journal .journal-page-content li{list-style-type:initial;margin:.5rem 0 .5rem 1.5rem;padding:0}.l5r5e.sheet .editable[data-lang=Español] .sheet-header .focus-content .attribute-label strong,.l5r5e.sheet .editable[data-lang=Español] .sheet-header .vigilance-content .attribute-label strong{font-size:.7rem;line-height:1.1rem}.l5r5e.npc .sheet-header h1:before{top:-3.75rem}.l5r5e.npc .sheet-header img{flex:0 0 90px;height:90px;width:90px}.l5r5e.npc .sheet-header fieldset{flex:1 1 100%;min-height:2rem;width:100%;margin:0}.l5r5e.npc .sheet-header .header-fields{padding:0}.l5r5e.npc .sheet-header .identity-wrapper{flex:1 1 100%}.l5r5e.npc .sheet-header .identity-wrapper h1{margin:0 .25rem 1rem 1rem}.l5r5e.npc .sheet-header .identity-wrapper .identity-list{flex:0 0 100%;display:flex;margin:.25rem 0 .5rem}.l5r5e.npc .sheet-header .identity-wrapper .identity-list li{flex:1;flex-wrap:wrap;display:flex}.l5r5e.npc .sheet-header .identity-wrapper .identity-list li select{width:100%;background:rgba(255,255,255,.5);border:0 none;text-transform:capitalize;color:#764f40;font-family:"PatrickHand",sans-serif;font-weight:bold;font-size:1rem;letter-spacing:.15rem}.l5r5e.npc .sheet-header .identity-wrapper .identity-list li i,.l5r5e.npc .sheet-header .identity-wrapper .identity-list li input{font-size:1.25rem;height:1.5rem;line-height:1.5rem;width:7.25rem;margin:auto;text-align:center}.l5r5e.npc .sheet-header .affinities{display:flex;flex-wrap:wrap}.l5r5e.npc .sheet-header .affinities select{position:relative;background:rgba(0,0,0,0);border:0 none;margin:0;padding:0;text-align:left;font-weight:bold;margin:0 0 .25rem 0;color:#5a6e5a}.l5r5e.npc .sheet-header .affinities input{flex:1rem;font-size:1rem;height:1.5rem}.l5r5e.npc .sheet-header .social-content{margin-bottom:.5rem}.l5r5e.npc .sheet-header .social-content .attitude{height:1.5rem;padding-left:.25rem}.l5r5e.npc .sheet-header .social-content .attitude input{height:1.5rem;flex:1;margin-right:0}.l5r5e.npc .sheet-body{padding:0}.l5r5e.npc .npc-skill{display:flex;width:100%;line-height:2rem;font-size:.75rem;margin:.5rem 0;text-align:center}.l5r5e.npc .npc-skill li{flex:1;padding:.25rem;text-transform:uppercase;color:#fff}.l5r5e.npc .npc-skill li:nth-child(1){background:#4b4641}.l5r5e.npc .npc-skill li:nth-child(2){background:#699678}.l5r5e.npc .npc-skill li:nth-child(3){background:#9b7350}.l5r5e.npc .npc-skill li:nth-child(4){background:#917896}.l5r5e.npc .npc-skill li:nth-child(5){flex:1.25;background:#5f919b}.l5r5e.npc .npc-skill input[type=number]{float:right;font-size:1.25rem;height:2rem;width:1rem;margin:0;padding:0;border:0 none;background:rgba(0,0,0,0);color:#fff}.l5r5e.npc article{min-height:auto}.l5r5e.npc article fieldset,.l5r5e.npc article .checklist{flex:0 0 calc(100% - .5rem)}.l5r5e.npc article .items-content{flex:0 0 calc(100% - .5rem);margin:1rem .25rem 0}.l5r5e.npc article .weapons-content{flex:1}.l5r5e.npc article .initiative-wrapper{margin-bottom:.5rem}.l5r5e.npc article:last-child{padding-bottom:1rem}.l5r5e.npc article .techniques-wrapper{padding-left:.5rem}.l5r5e.npc article .techniques-wrapper fieldset,.l5r5e.npc article .techniques-wrapper .checklist{flex:100%;margin:0}.l5r5e.npc .npc-note .editor{min-height:6rem;max-height:12rem}.l5r5e.npc .narrative-note{flex:0 0 calc(50% - .25rem)}.l5r5e.character-generator-dialog form .body{clear:both;display:flex;flex-direction:column;flex-wrap:wrap;margin:3px 0;align-items:start}.l5r5e.character-generator-dialog input[type=number]{width:auto}.l5r5e.character-generator-dialog form .form-group{border-bottom:solid rgba(128,128,128,.2392156863) 1px}.l5r5e.character-generator-dialog form .form-group.smaller>label{flex:10}.l5r5e.character-generator-dialog form .form-group.smaller .form-fields{flex:1}.l5r5e.sheet.army .sheet-header{height:9.5rem}.l5r5e.sheet.army .sheet-header h1{flex:1}.l5r5e.sheet.army .sheet-header .readiness{flex:0 0 100%;align-items:flex-start}.l5r5e.sheet.army .sheet-header .readiness ul{display:flex;position:relative;padding:.25rem;height:4rem}.l5r5e.sheet.army .sheet-header .readiness ul li{flex:25%;display:flex;flex-direction:column;align-items:center;position:relative}.l5r5e.sheet.army .sheet-header .readiness ul li .increment-control{position:absolute;right:-0.7rem;top:15%;display:flex;flex-direction:column;gap:.1rem;line-height:1}.l5r5e.sheet.army .sheet-header .readiness ul li strong{color:#5a6e5a;text-align:center;text-transform:uppercase;font-size:.75rem}.l5r5e.sheet.army .sheet-header .readiness ul li label{position:relative;display:flex;align-items:center;justify-content:center}.l5r5e.sheet.army .sheet-header .readiness ul li input{background:rgba(0,0,0,0);border:0 none;text-align:center;margin:0;padding:0;width:2rem}.l5r5e.sheet.army .sheet-header .readiness ul li:after{content:"";width:2rem;height:2rem;position:absolute;background:rgba(0,0,0,0) url("../assets/icons/circle.svg") no-repeat 0 0;background-size:contain;opacity:.25;z-index:-1}.l5r5e.sheet.army .sheet-header .readiness ul li:nth-child(1):after{transform:rotate(0deg)}.l5r5e.sheet.army .sheet-header .readiness ul li:nth-child(2):after{transform:rotate(90deg)}.l5r5e.sheet.army .sheet-header .readiness ul li:nth-child(3):after{transform:rotate(180deg)}.l5r5e.sheet.army .sheet-header .readiness ul li:nth-child(4):after{transform:rotate(-90deg)}.l5r5e.sheet.army .sheet-header .readiness h2{flex:0 0 100%}.l5r5e.sheet.army .sheet-body{height:calc(100% - 11.5rem)}.l5r5e.sheet.army .sheet-body .tab{height:calc(100% - 3.5rem)}.l5r5e.sheet.army .sheet-body .tab.army .warlord,.l5r5e.sheet.army .sheet-body .tab.army .commander{display:flex;flex-wrap:wrap}.l5r5e.sheet.army .sheet-body .tab.army .warlord .fa-sign-in-alt,.l5r5e.sheet.army .sheet-body .tab.army .commander .fa-sign-in-alt{transform:rotate(90deg)}.l5r5e.sheet.army .sheet-body .tab.army .warlord fieldset,.l5r5e.sheet.army .sheet-body .tab.army .commander fieldset{margin-top:.25rem;margin-bottom:.25rem}.l5r5e.sheet.army .sheet-body .tab.army .warlord fieldset strong,.l5r5e.sheet.army .sheet-body .tab.army .commander fieldset strong{color:#5a6e5a}.l5r5e.sheet.army .sheet-body .tab.army .warlord fieldset label,.l5r5e.sheet.army .sheet-body .tab.army .commander fieldset label{flex:100%}.l5r5e.sheet.army .sheet-body .tab.army .warlord fieldset p,.l5r5e.sheet.army .sheet-body .tab.army .commander fieldset p{width:100%}.l5r5e.sheet.army .sheet-body .tab.army .warlord fieldset textarea,.l5r5e.sheet.army .sheet-body .tab.army .commander fieldset textarea{height:calc(100% - 22px)}.l5r5e.sheet.army .sheet-body .tab.army .warlord fieldset .actor-remove-control,.l5r5e.sheet.army .sheet-body .tab.army .commander fieldset .actor-remove-control{font-size:12px}.l5r5e.sheet.army .sheet-body .tab.army .standing{flex:0 0 100%;display:flex;flex-wrap:wrap}.l5r5e.sheet.army .sheet-body .tab.army .standing h2{flex:0 0 100%}.l5r5e.sheet.army .sheet-body .tab.army .standing ul{display:flex;position:relative}.l5r5e.sheet.army .sheet-body .tab.army .standing ul li{flex:33%;display:inline-grid;position:relative;padding:.25rem;flex-direction:column-reverse}.l5r5e.sheet.army .sheet-body .tab.army .standing ul li strong{text-align:center}.l5r5e.sheet.army .sheet-body .tab.army .standing ul li input{background:rgba(0,0,0,0);border:0 none;text-align:center}.l5r5e.sheet.army .sheet-body .tab.army .standing ul li:after{content:"";width:2rem;height:2rem;position:absolute;right:calc(50% - .95rem);top:calc(50% - .2rem);background:rgba(0,0,0,0) url("../assets/icons/circle.svg") no-repeat 0 0;background-size:contain;opacity:.25;z-index:-1}.l5r5e.sheet.army .sheet-body .tab.army .standing ul li:nth-child(1):after{transform:rotate(0deg)}.l5r5e.sheet.army .sheet-body .tab.army .standing ul li:nth-child(2):after{transform:rotate(90deg)}.l5r5e.sheet.army .sheet-body .tab.army .standing ul li:nth-child(3):after{transform:rotate(180deg)}.l5r5e.sheet.army .sheet-body .tab.army .warlord-name{display:flex;flex:100%;flex-wrap:wrap;margin:0;padding:.5rem .5rem 0;background:rgba(186,187,177,.5);--notchSize: 0.25rem}.l5r5e.sheet.army .sheet-body .tab.army .warlord-name i{color:rgba(0,0,0,.5);margin-right:.5rem}.l5r5e.sheet.army .sheet-body .tab.army .warlord-name label{flex:0 0 auto !important;height:1.65rem;margin:0;padding:0 .5rem;color:#5a6e5a;background:rgba(255,255,255,.5);border:1px solid #5a6e5a;border-radius:1rem}.l5r5e.sheet.army .sheet-body .tab.others{flex-direction:column}.l5r5e.sheet.army .sheet-body .tab.others .editor-container{min-height:8rem;max-height:14rem}.l5r5e nav.sheet-tabs{height:3rem;line-height:2rem;font-family:"Caballar",sans-serif;letter-spacing:-0.05rem;font-size:1rem;border:0 none;border-bottom:1px solid rgba(186,187,177,.5);margin-bottom:0;background:rgba(255,255,255,.5);color:rgba(0,0,0,.5);display:flex;flex-direction:row;--notchSize: 0.5rem;-webkit-clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), 100% 100%, var(--notchSize) 100%, 0% 100%);clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), 100% 100%, var(--notchSize) 100%, 0% 100%)}.l5r5e nav .item{flex:1}.l5r5e nav .item:hover{background-color:#5a6e5a;color:rgba(255,255,255,.65);text-shadow:none;-webkit-clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% 100%, 0 100%, 0% 0%, 0% 100%);clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% 100%, 0 100%, 0% 0%, 0% 100%)}.l5r5e nav .item.active{background-color:rgba(73,12,11,.85);color:#fff;-webkit-clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% 100%, 0 100%, 0% 0%, 0% 100%);clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% 100%, 0 100%, 0% 0%, 0% 100%)}.l5r5e nav .item.active:hover{background-color:rgba(73,12,11,.85);cursor:default}.l5r5e .rings{display:flex;flex-wrap:wrap;color:rgba(255,255,255,.65)}.l5r5e .rings #earth,.l5r5e .rings #air,.l5r5e .rings #water,.l5r5e .rings #fire,.l5r5e .rings #void{position:relative;flex:1 1 50%;text-align:center}.l5r5e .rings #earth i.i_earth,.l5r5e .rings #earth i.i_water,.l5r5e .rings #earth i.i_fire,.l5r5e .rings #earth i.i_air,.l5r5e .rings #earth i.i_void,.l5r5e .rings #air i.i_earth,.l5r5e .rings #air i.i_water,.l5r5e .rings #air i.i_fire,.l5r5e .rings #air i.i_air,.l5r5e .rings #air i.i_void,.l5r5e .rings #water i.i_earth,.l5r5e .rings #water i.i_water,.l5r5e .rings #water i.i_fire,.l5r5e .rings #water i.i_air,.l5r5e .rings #water i.i_void,.l5r5e .rings #fire i.i_earth,.l5r5e .rings #fire i.i_water,.l5r5e .rings #fire i.i_fire,.l5r5e .rings #fire i.i_air,.l5r5e .rings #fire i.i_void,.l5r5e .rings #void i.i_earth,.l5r5e .rings #void i.i_water,.l5r5e .rings #void i.i_fire,.l5r5e .rings #void i.i_air,.l5r5e .rings #void i.i_void{font-size:5rem;line-height:4.75rem}.l5r5e .rings #earth label,.l5r5e .rings #air label,.l5r5e .rings #water label,.l5r5e .rings #fire label,.l5r5e .rings #void label{position:relative;width:5rem;line-height:0;float:right}.l5r5e .rings #earth label.stance-active strong,.l5r5e .rings #air label.stance-active strong,.l5r5e .rings #water label.stance-active strong,.l5r5e .rings #fire label.stance-active strong,.l5r5e .rings #void label.stance-active strong{-webkit-text-decoration:underline 2px;text-decoration:underline 2px}.l5r5e .rings #earth input,.l5r5e .rings #air input,.l5r5e .rings #water input,.l5r5e .rings #fire input,.l5r5e .rings #void input{position:absolute;height:2rem;width:2rem;border-radius:100%;top:0;left:0;text-align:center;font-size:1rem;border:2px solid rgba(186,187,177,.5);color:rgba(255,255,255,.65)}.l5r5e .rings #earth input:hover,.l5r5e .rings #air input:hover,.l5r5e .rings #water input:hover,.l5r5e .rings #fire input:hover,.l5r5e .rings #void input:hover{border:2px solid rgba(255,0,0,.75);text-shadow:0 0 3px red;box-shadow:0 0 3px inset red}.l5r5e .rings #earth{float:right;color:#699678}.l5r5e .rings #earth input{top:auto;right:0;bottom:-0.9rem;left:auto;background:#699678}.l5r5e .rings #earth label strong{position:absolute;bottom:.75rem;left:-1.75rem}.l5r5e .rings #air{color:#917896}.l5r5e .rings #air input{top:auto;right:auto;bottom:-0.9rem;left:0;background:#917896}.l5r5e .rings #air label{float:left}.l5r5e .rings #air label strong{position:absolute;bottom:.75rem;right:-1rem}.l5r5e .rings #water{float:right;color:#5f919b;padding-right:2rem}.l5r5e .rings #water input{top:17%;right:-1.25rem;bottom:auto;left:auto;background:#5f919b}.l5r5e .rings #water label strong{position:absolute;bottom:-0.75rem;right:2rem}.l5r5e .rings #fire{color:#9b7350;padding-left:2rem}.l5r5e .rings #fire input{top:17%;right:auto;bottom:auto;left:-1.25rem;background:#9b7350}.l5r5e .rings #fire label{float:left}.l5r5e .rings #fire label strong{position:absolute;bottom:-0.75rem;right:2rem}.l5r5e .rings #void{top:-2rem;margin:0 calc(50% - 2.5rem);color:#4b4641}.l5r5e .rings #void input{top:-1rem;right:auto;bottom:auto;left:30%;background:#4b4641}.l5r5e .rings #void label strong{position:absolute;bottom:-0.75rem;left:1.75rem}.l5r5e.sheet article .skills-wrapper,.l5r5e.sheet article .techniques-wrapper{flex:50%}.l5r5e.sheet article .skills-wrapper>li,.l5r5e.sheet article .techniques-wrapper>li{display:flex;flex-wrap:wrap;font-size:.85rem;margin:0 0 1rem;border:1px solid rgba(186,187,177,.5);--notchSize: 0.75rem;-webkit-clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, 100% 0, 100% 0, 100% 100%, 100% 100%, 0 100%, 0 100%);clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, 100% 0, 100% 0, 100% 100%, 100% 100%, 0 100%, 0 100%)}.l5r5e.sheet article .skills-wrapper>li h4,.l5r5e.sheet article .techniques-wrapper>li h4{flex:100%;margin:0;padding:.5rem .5rem 0;text-align:center;background:rgba(186,187,177,.5);color:#5a6e5a;--notchSize: 0.5rem;-webkit-clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, 100% 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% 100%);clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, 100% 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% 100%)}.l5r5e.sheet article .skills-wrapper>li ul,.l5r5e.sheet article .techniques-wrapper>li ul{flex:50%;padding:.25rem .5rem .25rem 0}.l5r5e.sheet article .skills-wrapper>li ul li,.l5r5e.sheet article .techniques-wrapper>li ul li{text-align:left;line-height:2rem;margin:.25rem 0}.l5r5e.sheet article .skills-wrapper>li ul li.skill,.l5r5e.sheet article .techniques-wrapper>li ul li.skill{text-align:right}.l5r5e.sheet article .skills-wrapper>li ul li.skill span,.l5r5e.sheet article .techniques-wrapper>li ul li.skill span{color:rgba(0,0,0,.5)}.l5r5e.sheet article .skills-wrapper>li ul li.skill span[data-skill=melee],.l5r5e.sheet article .skills-wrapper>li ul li.skill span[data-skill=ranged],.l5r5e.sheet article .skills-wrapper>li ul li.skill span[data-skill=unarmed],.l5r5e.sheet article .techniques-wrapper>li ul li.skill span[data-skill=melee],.l5r5e.sheet article .techniques-wrapper>li ul li.skill span[data-skill=ranged],.l5r5e.sheet article .techniques-wrapper>li ul li.skill span[data-skill=unarmed]{float:left;line-height:1rem;width:calc(100% - 2rem)}.l5r5e.sheet article .skills-wrapper>li ul.skill-category-ring-actions,.l5r5e.sheet article .techniques-wrapper>li ul.skill-category-ring-actions{padding:.25rem 0 .25rem .5rem;border-left:1px solid rgba(186,187,177,.5)}.l5r5e.sheet article .skills-wrapper>li input,.l5r5e.sheet article .techniques-wrapper>li input{width:1.75rem;height:1.75rem;text-align:center}.l5r5e.sheet article .skills-wrapper>li:last-child,.l5r5e.sheet article .techniques-wrapper>li:last-child{margin:0}.l5r5e .item-list{flex:100%}.l5r5e .item-list .tab[data-tab]{display:none}.l5r5e .item-list .item .item-header{display:flex}.l5r5e .item-list .item .item-header .item-img{flex:0 0 32px;padding-right:.25rem}.l5r5e .item-list .item .item-header .item-img img{border:none}.l5r5e .item-list .item .item-header .item-name{flex:1 1 auto;font-size:1rem;line-height:1rem;color:#764f40;align-content:center}.l5r5e .item-list .item .item-header .removed{text-decoration-line:line-through}.l5r5e .item-list .item .item-header .item-edit,.l5r5e .item-list .item .item-header .item-delete,.l5r5e .item-list .item .item-header .item-equip,.l5r5e .item-list .item .item-header .technique-edit,.l5r5e .item-list .item .item-header .technique-delete,.l5r5e .item-list .item .item-header .peculiarity-edit,.l5r5e .item-list .item .item-header .peculiarity-delete,.l5r5e .item-list .item .item-header .property-edit,.l5r5e .item-list .item .item-header .property-delete{line-height:1rem;font-size:.75rem;flex:0 0 1rem;padding:0 .1rem;color:#000}.l5r5e .item-list .item .item-header .icon-stat-container{line-height:1rem;font-size:.75rem;padding:0 .25rem;color:#000}.l5r5e .item-list .item .item-header .item-edit:hover,.l5r5e .item-list .item .item-header .item-delete:hover,.l5r5e .item-list .item .item-header .item-equip:hover,.l5r5e .item-list .item .item-header .technique-edit:hover,.l5r5e .item-list .item .item-header .technique-delete:hover,.l5r5e .item-list .item .item-header .peculiarity-edit:hover,.l5r5e .item-list .item .item-header .peculiarity-delete:hover,.l5r5e .item-list .item .item-header .property-edit:hover,.l5r5e .item-list .item .item-header .property-delete:hover{text-shadow:0 0 3px red;color:#000}.l5r5e .item-list .item .item-properties{display:flex;flex-direction:row}.l5r5e .item-list .item .item-properties>li{margin:.25rem .1rem;padding:.1rem .5rem;background-color:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.65);border-radius:1rem;width:auto;font-size:.75rem;color:#000}.l5r5e .item-list .item .item-properties>li:first-child{margin-left:0}.l5r5e .item-list .item .item-properties>li:last-child{margin-right:0}.l5r5e .item-list .item .item-properties .equip-readied-control:hover{color:#963c41;background:#fff}.l5r5e .item-list .item p{font-size:.85rem;margin:0;padding:0 .5rem;max-width:100%}.l5r5e .item-list .item p:first-child{padding-top:.5rem}.l5r5e .item-list .item p:last-child{padding-bottom:.5rem}.l5r5e.advancement .sheet-header,.l5r5e.army-cohort .sheet-header,.l5r5e.army-fortification .sheet-header,.l5r5e.armor .sheet-header,.l5r5e.bond .sheet-header,.l5r5e.item .sheet-header,.l5r5e.item-pattern .sheet-header,.l5r5e.peculiarity .sheet-header,.l5r5e.property .sheet-header,.l5r5e.signature-scroll .sheet-header,.l5r5e.technique .sheet-header,.l5r5e.title .sheet-header,.l5r5e.weapon .sheet-header{margin-bottom:.5rem}.l5r5e.advancement .sheet-header img,.l5r5e.army-cohort .sheet-header img,.l5r5e.army-fortification .sheet-header img,.l5r5e.armor .sheet-header img,.l5r5e.bond .sheet-header img,.l5r5e.item .sheet-header img,.l5r5e.item-pattern .sheet-header img,.l5r5e.peculiarity .sheet-header img,.l5r5e.property .sheet-header img,.l5r5e.signature-scroll .sheet-header img,.l5r5e.technique .sheet-header img,.l5r5e.title .sheet-header img,.l5r5e.weapon .sheet-header img{flex:0 0 90px;height:90px;width:90px;background:rgba(255,255,255,.25)}.l5r5e.advancement .sheet-header h1 input,.l5r5e.army-cohort .sheet-header h1 input,.l5r5e.army-fortification .sheet-header h1 input,.l5r5e.armor .sheet-header h1 input,.l5r5e.bond .sheet-header h1 input,.l5r5e.item .sheet-header h1 input,.l5r5e.item-pattern .sheet-header h1 input,.l5r5e.peculiarity .sheet-header h1 input,.l5r5e.property .sheet-header h1 input,.l5r5e.signature-scroll .sheet-header h1 input,.l5r5e.technique .sheet-header h1 input,.l5r5e.title .sheet-header h1 input,.l5r5e.weapon .sheet-header h1 input{height:5.5rem}.l5r5e.advancement fieldset input[name="system.effects"],.l5r5e.army-cohort fieldset input[name="system.effects"],.l5r5e.army-fortification fieldset input[name="system.effects"],.l5r5e.armor fieldset input[name="system.effects"],.l5r5e.bond fieldset input[name="system.effects"],.l5r5e.item fieldset input[name="system.effects"],.l5r5e.item-pattern fieldset input[name="system.effects"],.l5r5e.peculiarity fieldset input[name="system.effects"],.l5r5e.property fieldset input[name="system.effects"],.l5r5e.signature-scroll fieldset input[name="system.effects"],.l5r5e.technique fieldset input[name="system.effects"],.l5r5e.title fieldset input[name="system.effects"],.l5r5e.weapon fieldset input[name="system.effects"]{text-align:left}.l5r5e.advancement .sheet-body,.l5r5e.army-cohort .sheet-body,.l5r5e.army-fortification .sheet-body,.l5r5e.armor .sheet-body,.l5r5e.bond .sheet-body,.l5r5e.item .sheet-body,.l5r5e.item-pattern .sheet-body,.l5r5e.peculiarity .sheet-body,.l5r5e.property .sheet-body,.l5r5e.signature-scroll .sheet-body,.l5r5e.technique .sheet-body,.l5r5e.title .sheet-body,.l5r5e.weapon .sheet-body{flex:100%;height:calc(100% - 90px - .25rem);align-self:stretch;display:flex;flex-wrap:wrap}.l5r5e.advancement article,.l5r5e.army-cohort article,.l5r5e.army-fortification article,.l5r5e.armor article,.l5r5e.bond article,.l5r5e.item article,.l5r5e.item-pattern article,.l5r5e.peculiarity article,.l5r5e.property article,.l5r5e.signature-scroll article,.l5r5e.technique article,.l5r5e.title article,.l5r5e.weapon article{display:flex;flex-wrap:wrap;min-height:auto}.l5r5e.advancement article label,.l5r5e.army-cohort article label,.l5r5e.army-fortification article label,.l5r5e.armor article label,.l5r5e.bond article label,.l5r5e.item article label,.l5r5e.item-pattern article label,.l5r5e.peculiarity article label,.l5r5e.property article label,.l5r5e.signature-scroll article label,.l5r5e.technique article label,.l5r5e.title article label,.l5r5e.weapon article label{color:#5a6e5a;margin:.25rem;line-height:1.5rem}.l5r5e.advancement article.attributes,.l5r5e.army-cohort article.attributes,.l5r5e.army-fortification article.attributes,.l5r5e.armor article.attributes,.l5r5e.bond article.attributes,.l5r5e.item article.attributes,.l5r5e.item-pattern article.attributes,.l5r5e.peculiarity article.attributes,.l5r5e.property article.attributes,.l5r5e.signature-scroll article.attributes,.l5r5e.technique article.attributes,.l5r5e.title article.attributes,.l5r5e.weapon article.attributes{align-self:flex-start;width:100%;height:6.5rem}.l5r5e.advancement article.attributes #advancement_type,.l5r5e.advancement article.attributes #advancement_skill,.l5r5e.army-cohort article.attributes #advancement_type,.l5r5e.army-cohort article.attributes #advancement_skill,.l5r5e.army-fortification article.attributes #advancement_type,.l5r5e.army-fortification article.attributes #advancement_skill,.l5r5e.armor article.attributes #advancement_type,.l5r5e.armor article.attributes #advancement_skill,.l5r5e.bond article.attributes #advancement_type,.l5r5e.bond article.attributes #advancement_skill,.l5r5e.item article.attributes #advancement_type,.l5r5e.item article.attributes #advancement_skill,.l5r5e.item-pattern article.attributes #advancement_type,.l5r5e.item-pattern article.attributes #advancement_skill,.l5r5e.peculiarity article.attributes #advancement_type,.l5r5e.peculiarity article.attributes #advancement_skill,.l5r5e.property article.attributes #advancement_type,.l5r5e.property article.attributes #advancement_skill,.l5r5e.signature-scroll article.attributes #advancement_type,.l5r5e.signature-scroll article.attributes #advancement_skill,.l5r5e.technique article.attributes #advancement_type,.l5r5e.technique article.attributes #advancement_skill,.l5r5e.title article.attributes #advancement_type,.l5r5e.title article.attributes #advancement_skill,.l5r5e.weapon article.attributes #advancement_type,.l5r5e.weapon article.attributes #advancement_skill{flex:0 0 calc(40% - 2rem);margin:.25rem}.l5r5e.advancement article.attributes select[name="system.skill"],.l5r5e.advancement article.attributes select[name="system.ring"],.l5r5e.advancement article.attributes select[name="system.peculiarity_type"],.l5r5e.advancement article.attributes select[name="system.technique_type"],.l5r5e.army-cohort article.attributes select[name="system.skill"],.l5r5e.army-cohort article.attributes select[name="system.ring"],.l5r5e.army-cohort article.attributes select[name="system.peculiarity_type"],.l5r5e.army-cohort article.attributes select[name="system.technique_type"],.l5r5e.army-fortification article.attributes select[name="system.skill"],.l5r5e.army-fortification article.attributes select[name="system.ring"],.l5r5e.army-fortification article.attributes select[name="system.peculiarity_type"],.l5r5e.army-fortification article.attributes select[name="system.technique_type"],.l5r5e.armor article.attributes select[name="system.skill"],.l5r5e.armor article.attributes select[name="system.ring"],.l5r5e.armor article.attributes select[name="system.peculiarity_type"],.l5r5e.armor article.attributes select[name="system.technique_type"],.l5r5e.bond article.attributes select[name="system.skill"],.l5r5e.bond article.attributes select[name="system.ring"],.l5r5e.bond article.attributes select[name="system.peculiarity_type"],.l5r5e.bond article.attributes select[name="system.technique_type"],.l5r5e.item article.attributes select[name="system.skill"],.l5r5e.item article.attributes select[name="system.ring"],.l5r5e.item article.attributes select[name="system.peculiarity_type"],.l5r5e.item article.attributes select[name="system.technique_type"],.l5r5e.item-pattern article.attributes select[name="system.skill"],.l5r5e.item-pattern article.attributes select[name="system.ring"],.l5r5e.item-pattern article.attributes select[name="system.peculiarity_type"],.l5r5e.item-pattern article.attributes select[name="system.technique_type"],.l5r5e.peculiarity article.attributes select[name="system.skill"],.l5r5e.peculiarity article.attributes select[name="system.ring"],.l5r5e.peculiarity article.attributes select[name="system.peculiarity_type"],.l5r5e.peculiarity article.attributes select[name="system.technique_type"],.l5r5e.property article.attributes select[name="system.skill"],.l5r5e.property article.attributes select[name="system.ring"],.l5r5e.property article.attributes select[name="system.peculiarity_type"],.l5r5e.property article.attributes select[name="system.technique_type"],.l5r5e.signature-scroll article.attributes select[name="system.skill"],.l5r5e.signature-scroll article.attributes select[name="system.ring"],.l5r5e.signature-scroll article.attributes select[name="system.peculiarity_type"],.l5r5e.signature-scroll article.attributes select[name="system.technique_type"],.l5r5e.technique article.attributes select[name="system.skill"],.l5r5e.technique article.attributes select[name="system.ring"],.l5r5e.technique article.attributes select[name="system.peculiarity_type"],.l5r5e.technique article.attributes select[name="system.technique_type"],.l5r5e.title article.attributes select[name="system.skill"],.l5r5e.title article.attributes select[name="system.ring"],.l5r5e.title article.attributes select[name="system.peculiarity_type"],.l5r5e.title article.attributes select[name="system.technique_type"],.l5r5e.weapon article.attributes select[name="system.skill"],.l5r5e.weapon article.attributes select[name="system.ring"],.l5r5e.weapon article.attributes select[name="system.peculiarity_type"],.l5r5e.weapon article.attributes select[name="system.technique_type"]{flex:0 0 calc(40% - .5rem);margin:.25rem}.l5r5e.advancement article.attributes .attribute-value,.l5r5e.advancement article.attributes .attribute,.l5r5e.advancement article.attributes .value,.l5r5e.army-cohort article.attributes .attribute-value,.l5r5e.army-cohort article.attributes .attribute,.l5r5e.army-cohort article.attributes .value,.l5r5e.army-fortification article.attributes .attribute-value,.l5r5e.army-fortification article.attributes .attribute,.l5r5e.army-fortification article.attributes .value,.l5r5e.armor article.attributes .attribute-value,.l5r5e.armor article.attributes .attribute,.l5r5e.armor article.attributes .value,.l5r5e.bond article.attributes .attribute-value,.l5r5e.bond article.attributes .attribute,.l5r5e.bond article.attributes .value,.l5r5e.item article.attributes .attribute-value,.l5r5e.item article.attributes .attribute,.l5r5e.item article.attributes .value,.l5r5e.item-pattern article.attributes .attribute-value,.l5r5e.item-pattern article.attributes .attribute,.l5r5e.item-pattern article.attributes .value,.l5r5e.peculiarity article.attributes .attribute-value,.l5r5e.peculiarity article.attributes .attribute,.l5r5e.peculiarity article.attributes .value,.l5r5e.property article.attributes .attribute-value,.l5r5e.property article.attributes .attribute,.l5r5e.property article.attributes .value,.l5r5e.signature-scroll article.attributes .attribute-value,.l5r5e.signature-scroll article.attributes .attribute,.l5r5e.signature-scroll article.attributes .value,.l5r5e.technique article.attributes .attribute-value,.l5r5e.technique article.attributes .attribute,.l5r5e.technique article.attributes .value,.l5r5e.title article.attributes .attribute-value,.l5r5e.title article.attributes .attribute,.l5r5e.title article.attributes .value,.l5r5e.weapon article.attributes .attribute-value,.l5r5e.weapon article.attributes .attribute,.l5r5e.weapon article.attributes .value{flex:1 1 auto;margin:.5rem .25rem .25rem}.l5r5e.advancement article.attributes select[name="system.advancement_type"],.l5r5e.advancement article.attributes select[name="system.skill"],.l5r5e.army-cohort article.attributes select[name="system.advancement_type"],.l5r5e.army-cohort article.attributes select[name="system.skill"],.l5r5e.army-fortification article.attributes select[name="system.advancement_type"],.l5r5e.army-fortification article.attributes select[name="system.skill"],.l5r5e.armor article.attributes select[name="system.advancement_type"],.l5r5e.armor article.attributes select[name="system.skill"],.l5r5e.bond article.attributes select[name="system.advancement_type"],.l5r5e.bond article.attributes select[name="system.skill"],.l5r5e.item article.attributes select[name="system.advancement_type"],.l5r5e.item article.attributes select[name="system.skill"],.l5r5e.item-pattern article.attributes select[name="system.advancement_type"],.l5r5e.item-pattern article.attributes select[name="system.skill"],.l5r5e.peculiarity article.attributes select[name="system.advancement_type"],.l5r5e.peculiarity article.attributes select[name="system.skill"],.l5r5e.property article.attributes select[name="system.advancement_type"],.l5r5e.property article.attributes select[name="system.skill"],.l5r5e.signature-scroll article.attributes select[name="system.advancement_type"],.l5r5e.signature-scroll article.attributes select[name="system.skill"],.l5r5e.technique article.attributes select[name="system.advancement_type"],.l5r5e.technique article.attributes select[name="system.skill"],.l5r5e.title article.attributes select[name="system.advancement_type"],.l5r5e.title article.attributes select[name="system.skill"],.l5r5e.weapon article.attributes select[name="system.advancement_type"],.l5r5e.weapon article.attributes select[name="system.skill"]{text-transform:capitalize}.l5r5e.advancement article.attributes .type,.l5r5e.army-cohort article.attributes .type,.l5r5e.army-fortification article.attributes .type,.l5r5e.armor article.attributes .type,.l5r5e.bond article.attributes .type,.l5r5e.item article.attributes .type,.l5r5e.item-pattern article.attributes .type,.l5r5e.peculiarity article.attributes .type,.l5r5e.property article.attributes .type,.l5r5e.signature-scroll article.attributes .type,.l5r5e.technique article.attributes .type,.l5r5e.title article.attributes .type,.l5r5e.weapon article.attributes .type{display:block}.l5r5e.advancement article.attributes .type label,.l5r5e.army-cohort article.attributes .type label,.l5r5e.army-fortification article.attributes .type label,.l5r5e.armor article.attributes .type label,.l5r5e.bond article.attributes .type label,.l5r5e.item article.attributes .type label,.l5r5e.item-pattern article.attributes .type label,.l5r5e.peculiarity article.attributes .type label,.l5r5e.property article.attributes .type label,.l5r5e.signature-scroll article.attributes .type label,.l5r5e.technique article.attributes .type label,.l5r5e.title article.attributes .type label,.l5r5e.weapon article.attributes .type label{width:calc(50% - .5rem);float:left}.l5r5e.advancement article.attributes .properties,.l5r5e.army-cohort article.attributes .properties,.l5r5e.army-fortification article.attributes .properties,.l5r5e.armor article.attributes .properties,.l5r5e.bond article.attributes .properties,.l5r5e.item article.attributes .properties,.l5r5e.item-pattern article.attributes .properties,.l5r5e.peculiarity article.attributes .properties,.l5r5e.property article.attributes .properties,.l5r5e.signature-scroll article.attributes .properties,.l5r5e.technique article.attributes .properties,.l5r5e.title article.attributes .properties,.l5r5e.weapon article.attributes .properties{flex:0 0 calc(50% - .5rem);margin:.25rem}.l5r5e.advancement article.attributes .equipped,.l5r5e.army-cohort article.attributes .equipped,.l5r5e.army-fortification article.attributes .equipped,.l5r5e.armor article.attributes .equipped,.l5r5e.bond article.attributes .equipped,.l5r5e.item article.attributes .equipped,.l5r5e.item-pattern article.attributes .equipped,.l5r5e.peculiarity article.attributes .equipped,.l5r5e.property article.attributes .equipped,.l5r5e.signature-scroll article.attributes .equipped,.l5r5e.technique article.attributes .equipped,.l5r5e.title article.attributes .equipped,.l5r5e.weapon article.attributes .equipped{flex:100%;margin:0;text-align:right}.l5r5e.advancement article.attributes input[type=text],.l5r5e.advancement article.attributes input[type=number],.l5r5e.army-cohort article.attributes input[type=text],.l5r5e.army-cohort article.attributes input[type=number],.l5r5e.army-fortification article.attributes input[type=text],.l5r5e.army-fortification article.attributes input[type=number],.l5r5e.armor article.attributes input[type=text],.l5r5e.armor article.attributes input[type=number],.l5r5e.bond article.attributes input[type=text],.l5r5e.bond article.attributes input[type=number],.l5r5e.item article.attributes input[type=text],.l5r5e.item article.attributes input[type=number],.l5r5e.item-pattern article.attributes input[type=text],.l5r5e.item-pattern article.attributes input[type=number],.l5r5e.peculiarity article.attributes input[type=text],.l5r5e.peculiarity article.attributes input[type=number],.l5r5e.property article.attributes input[type=text],.l5r5e.property article.attributes input[type=number],.l5r5e.signature-scroll article.attributes input[type=text],.l5r5e.signature-scroll article.attributes input[type=number],.l5r5e.technique article.attributes input[type=text],.l5r5e.technique article.attributes input[type=number],.l5r5e.title article.attributes input[type=text],.l5r5e.title article.attributes input[type=number],.l5r5e.weapon article.attributes input[type=text],.l5r5e.weapon article.attributes input[type=number]{width:2rem}.l5r5e.advancement article.attributes input[type=text].grip,.l5r5e.advancement article.attributes input[type=number].grip,.l5r5e.army-cohort article.attributes input[type=text].grip,.l5r5e.army-cohort article.attributes input[type=number].grip,.l5r5e.army-fortification article.attributes input[type=text].grip,.l5r5e.army-fortification article.attributes input[type=number].grip,.l5r5e.armor article.attributes input[type=text].grip,.l5r5e.armor article.attributes input[type=number].grip,.l5r5e.bond article.attributes input[type=text].grip,.l5r5e.bond article.attributes input[type=number].grip,.l5r5e.item article.attributes input[type=text].grip,.l5r5e.item article.attributes input[type=number].grip,.l5r5e.item-pattern article.attributes input[type=text].grip,.l5r5e.item-pattern article.attributes input[type=number].grip,.l5r5e.peculiarity article.attributes input[type=text].grip,.l5r5e.peculiarity article.attributes input[type=number].grip,.l5r5e.property article.attributes input[type=text].grip,.l5r5e.property article.attributes input[type=number].grip,.l5r5e.signature-scroll article.attributes input[type=text].grip,.l5r5e.signature-scroll article.attributes input[type=number].grip,.l5r5e.technique article.attributes input[type=text].grip,.l5r5e.technique article.attributes input[type=number].grip,.l5r5e.title article.attributes input[type=text].grip,.l5r5e.title article.attributes input[type=number].grip,.l5r5e.weapon article.attributes input[type=text].grip,.l5r5e.weapon article.attributes input[type=number].grip{width:calc(100% - 4rem);margin-bottom:.25rem}.l5r5e.advancement article.attributes input[name="system.zeni"],.l5r5e.army-cohort article.attributes input[name="system.zeni"],.l5r5e.army-fortification article.attributes input[name="system.zeni"],.l5r5e.armor article.attributes input[name="system.zeni"],.l5r5e.bond article.attributes input[name="system.zeni"],.l5r5e.item article.attributes input[name="system.zeni"],.l5r5e.item-pattern article.attributes input[name="system.zeni"],.l5r5e.peculiarity article.attributes input[name="system.zeni"],.l5r5e.property article.attributes input[name="system.zeni"],.l5r5e.signature-scroll article.attributes input[name="system.zeni"],.l5r5e.technique article.attributes input[name="system.zeni"],.l5r5e.title article.attributes input[name="system.zeni"],.l5r5e.weapon article.attributes input[name="system.zeni"]{width:7rem;float:right}.l5r5e.advancement article.attributes fieldset input[type=text],.l5r5e.advancement article.attributes fieldset input[type=number],.l5r5e.army-cohort article.attributes fieldset input[type=text],.l5r5e.army-cohort article.attributes fieldset input[type=number],.l5r5e.army-fortification article.attributes fieldset input[type=text],.l5r5e.army-fortification article.attributes fieldset input[type=number],.l5r5e.armor article.attributes fieldset input[type=text],.l5r5e.armor article.attributes fieldset input[type=number],.l5r5e.bond article.attributes fieldset input[type=text],.l5r5e.bond article.attributes fieldset input[type=number],.l5r5e.item article.attributes fieldset input[type=text],.l5r5e.item article.attributes fieldset input[type=number],.l5r5e.item-pattern article.attributes fieldset input[type=text],.l5r5e.item-pattern article.attributes fieldset input[type=number],.l5r5e.peculiarity article.attributes fieldset input[type=text],.l5r5e.peculiarity article.attributes fieldset input[type=number],.l5r5e.property article.attributes fieldset input[type=text],.l5r5e.property article.attributes fieldset input[type=number],.l5r5e.signature-scroll article.attributes fieldset input[type=text],.l5r5e.signature-scroll article.attributes fieldset input[type=number],.l5r5e.technique article.attributes fieldset input[type=text],.l5r5e.technique article.attributes fieldset input[type=number],.l5r5e.title article.attributes fieldset input[type=text],.l5r5e.title article.attributes fieldset input[type=number],.l5r5e.weapon article.attributes fieldset input[type=text],.l5r5e.weapon article.attributes fieldset input[type=number]{float:right}.l5r5e.advancement article.attributes .attribute.full,.l5r5e.army-cohort article.attributes .attribute.full,.l5r5e.army-fortification article.attributes .attribute.full,.l5r5e.armor article.attributes .attribute.full,.l5r5e.bond article.attributes .attribute.full,.l5r5e.item article.attributes .attribute.full,.l5r5e.item-pattern article.attributes .attribute.full,.l5r5e.peculiarity article.attributes .attribute.full,.l5r5e.property article.attributes .attribute.full,.l5r5e.signature-scroll article.attributes .attribute.full,.l5r5e.technique article.attributes .attribute.full,.l5r5e.title article.attributes .attribute.full,.l5r5e.weapon article.attributes .attribute.full{flex:100%}.l5r5e.advancement article.attributes .attribute.full input,.l5r5e.army-cohort article.attributes .attribute.full input,.l5r5e.army-fortification article.attributes .attribute.full input,.l5r5e.armor article.attributes .attribute.full input,.l5r5e.bond article.attributes .attribute.full input,.l5r5e.item article.attributes .attribute.full input,.l5r5e.item-pattern article.attributes .attribute.full input,.l5r5e.peculiarity article.attributes .attribute.full input,.l5r5e.property article.attributes .attribute.full input,.l5r5e.signature-scroll article.attributes .attribute.full input,.l5r5e.technique article.attributes .attribute.full input,.l5r5e.title article.attributes .attribute.full input,.l5r5e.weapon article.attributes .attribute.full input{float:right;width:70%}.l5r5e.advancement article.attributes .bonds-types,.l5r5e.army-cohort article.attributes .bonds-types,.l5r5e.army-fortification article.attributes .bonds-types,.l5r5e.armor article.attributes .bonds-types,.l5r5e.bond article.attributes .bonds-types,.l5r5e.item article.attributes .bonds-types,.l5r5e.item-pattern article.attributes .bonds-types,.l5r5e.peculiarity article.attributes .bonds-types,.l5r5e.property article.attributes .bonds-types,.l5r5e.signature-scroll article.attributes .bonds-types,.l5r5e.technique article.attributes .bonds-types,.l5r5e.title article.attributes .bonds-types,.l5r5e.weapon article.attributes .bonds-types{flex:100%}.l5r5e.advancement article.attributes .bonds-types input,.l5r5e.army-cohort article.attributes .bonds-types input,.l5r5e.army-fortification article.attributes .bonds-types input,.l5r5e.armor article.attributes .bonds-types input,.l5r5e.bond article.attributes .bonds-types input,.l5r5e.item article.attributes .bonds-types input,.l5r5e.item-pattern article.attributes .bonds-types input,.l5r5e.peculiarity article.attributes .bonds-types input,.l5r5e.property article.attributes .bonds-types input,.l5r5e.signature-scroll article.attributes .bonds-types input,.l5r5e.technique article.attributes .bonds-types input,.l5r5e.title article.attributes .bonds-types input,.l5r5e.weapon article.attributes .bonds-types input{width:75%;float:right}.l5r5e.advancement article.infos,.l5r5e.army-cohort article.infos,.l5r5e.army-fortification article.infos,.l5r5e.armor article.infos,.l5r5e.bond article.infos,.l5r5e.item article.infos,.l5r5e.item-pattern article.infos,.l5r5e.peculiarity article.infos,.l5r5e.property article.infos,.l5r5e.signature-scroll article.infos,.l5r5e.technique article.infos,.l5r5e.title article.infos,.l5r5e.weapon article.infos{display:flex;align-self:stretch;height:calc(100% - 7.5rem);width:100%;padding-bottom:1.25rem}.l5r5e.advancement article.infos .reference,.l5r5e.army-cohort article.infos .reference,.l5r5e.army-fortification article.infos .reference,.l5r5e.armor article.infos .reference,.l5r5e.bond article.infos .reference,.l5r5e.item article.infos .reference,.l5r5e.item-pattern article.infos .reference,.l5r5e.peculiarity article.infos .reference,.l5r5e.property article.infos .reference,.l5r5e.signature-scroll article.infos .reference,.l5r5e.technique article.infos .reference,.l5r5e.title article.infos .reference,.l5r5e.weapon article.infos .reference{display:flex;flex:0 0 calc(100% - .5rem);margin:.5rem .25rem}.l5r5e.advancement article.infos .reference input[name="system.source_reference.source"],.l5r5e.army-cohort article.infos .reference input[name="system.source_reference.source"],.l5r5e.army-fortification article.infos .reference input[name="system.source_reference.source"],.l5r5e.armor article.infos .reference input[name="system.source_reference.source"],.l5r5e.bond article.infos .reference input[name="system.source_reference.source"],.l5r5e.item article.infos .reference input[name="system.source_reference.source"],.l5r5e.item-pattern article.infos .reference input[name="system.source_reference.source"],.l5r5e.peculiarity article.infos .reference input[name="system.source_reference.source"],.l5r5e.property article.infos .reference input[name="system.source_reference.source"],.l5r5e.signature-scroll article.infos .reference input[name="system.source_reference.source"],.l5r5e.technique article.infos .reference input[name="system.source_reference.source"],.l5r5e.title article.infos .reference input[name="system.source_reference.source"],.l5r5e.weapon article.infos .reference input[name="system.source_reference.source"]{text-align:center;width:70%}.l5r5e.advancement article.infos .reference input[name="system.source_reference.page"],.l5r5e.army-cohort article.infos .reference input[name="system.source_reference.page"],.l5r5e.army-fortification article.infos .reference input[name="system.source_reference.page"],.l5r5e.armor article.infos .reference input[name="system.source_reference.page"],.l5r5e.bond article.infos .reference input[name="system.source_reference.page"],.l5r5e.item article.infos .reference input[name="system.source_reference.page"],.l5r5e.item-pattern article.infos .reference input[name="system.source_reference.page"],.l5r5e.peculiarity article.infos .reference input[name="system.source_reference.page"],.l5r5e.property article.infos .reference input[name="system.source_reference.page"],.l5r5e.signature-scroll article.infos .reference input[name="system.source_reference.page"],.l5r5e.technique article.infos .reference input[name="system.source_reference.page"],.l5r5e.title article.infos .reference input[name="system.source_reference.page"],.l5r5e.weapon article.infos .reference input[name="system.source_reference.page"]{width:30%}.l5r5e.advancement article.infos fieldset,.l5r5e.army-cohort article.infos fieldset,.l5r5e.army-fortification article.infos fieldset,.l5r5e.armor article.infos fieldset,.l5r5e.bond article.infos fieldset,.l5r5e.item article.infos fieldset,.l5r5e.item-pattern article.infos fieldset,.l5r5e.peculiarity article.infos fieldset,.l5r5e.property article.infos fieldset,.l5r5e.signature-scroll article.infos fieldset,.l5r5e.technique article.infos fieldset,.l5r5e.title article.infos fieldset,.l5r5e.weapon article.infos fieldset{align-self:stretch;height:calc(100% - 2rem);box-sizing:content-box}.l5r5e.advancement article.properties fieldset,.l5r5e.army-cohort article.properties fieldset,.l5r5e.army-fortification article.properties fieldset,.l5r5e.armor article.properties fieldset,.l5r5e.bond article.properties fieldset,.l5r5e.item article.properties fieldset,.l5r5e.item-pattern article.properties fieldset,.l5r5e.peculiarity article.properties fieldset,.l5r5e.property article.properties fieldset,.l5r5e.signature-scroll article.properties fieldset,.l5r5e.technique article.properties fieldset,.l5r5e.title article.properties fieldset,.l5r5e.weapon article.properties fieldset{margin-bottom:.5rem}.l5r5e.advancement article.attributes .attribute-value,.l5r5e.advancement article.attributes .attribute,.l5r5e.advancement article.attributes .value{flex:0 0 calc(33% - .5rem)}.l5r5e.advancement article.attributes .cursus{flex:0 0 calc(19% - .5rem);line-height:.75rem;text-align:right;margin:0 .25rem}.l5r5e.advancement article.attributes .cursus input{margin-top:.25rem}.l5r5e.technique article.attributes{height:7.5rem}.l5r5e.technique article.attributes input[type=text]{width:10rem}.l5r5e.technique article.attributes .cursus{flex:0 0 calc(20% - .5rem);line-height:.75rem;text-align:right;margin:0 .25rem}.l5r5e.technique article.attributes .cursus input{margin-top:.25rem}.l5r5e.technique article.infos{height:calc(100% - 8.5rem)}.l5r5e.peculiarity article.attributes{height:8.5rem}.l5r5e.peculiarity article.attributes .cursus{flex:0 0 calc(20% - .5rem);line-height:.75rem;text-align:right;margin:0 .25rem}.l5r5e.peculiarity article.attributes .cursus input{margin-top:.25rem}.l5r5e.peculiarity article.infos{height:calc(100% - 9.5rem)}.l5r5e.item article.attributes{height:4.5rem}.l5r5e.item article.attributes .properties{flex:100%}.l5r5e.item article.infos{flex:0 0 60%;height:calc(100% - 5.5rem)}.l5r5e.item article.properties{flex:0 0 40%;height:calc(100% - 5.5rem)}.l5r5e.property article.properties{width:100%}.l5r5e.property article.infos{height:calc(100% - 4.5rem)}.l5r5e.armor article.attributes{height:9.5rem}.l5r5e.armor article.infos{flex:0 0 60%;height:calc(100% - 10.5rem)}.l5r5e.armor article.properties{flex:0 0 40%;height:calc(100% - 10.5rem)}.l5r5e.weapon article.attributes{height:18.5rem}.l5r5e.weapon article.attributes .stats,.l5r5e.weapon article.attributes .attribute-value{flex:0 0 calc(50% - .5rem);flex-wrap:wrap;margin:.25rem}.l5r5e.weapon article.attributes .stats label,.l5r5e.weapon article.attributes .attribute-value label{width:100%}.l5r5e.weapon article.attributes .stats input[type=text]{text-align:center}.l5r5e.weapon article.attributes .value{flex:0 0 calc(25% - .5rem)}.l5r5e.weapon article.attributes .category,.l5r5e.weapon article.attributes .skillType{flex:0 0 calc(50% - .5rem)}.l5r5e.weapon article.attributes .category input,.l5r5e.weapon article.attributes .category .attribute-dtype,.l5r5e.weapon article.attributes .skillType input,.l5r5e.weapon article.attributes .skillType .attribute-dtype{width:100%;margin:.25rem}.l5r5e.weapon article.infos{flex:0 0 60%;height:calc(100% - 19.5rem)}.l5r5e.weapon article.properties{flex:0 0 40%;height:calc(100% - 19.5rem)}.l5r5e.item-pattern .attribute.item{display:inline}.l5r5e.item-pattern .attribute.item .item-properties{display:inline}.l5r5e.item-pattern .attribute.item .item-properties li{display:inline}.l5r5e.title .sheet-body{height:calc(100% - 90px - 4.25rem)}.l5r5e.title article.infos{height:calc(100% - 3.5rem)}.l5r5e.title article.attributes{height:auto;background:rgba(0,0,0,0)}.l5r5e.title article.experience{flex:100%;height:calc(100% - 4rem)}.l5r5e.army-cohort .sheet-body{height:calc(100% - 92px - 3.6rem)}.l5r5e.army-cohort article .fa-sign-in-alt{transform:rotate(90deg)}.l5r5e.army-cohort article.attributes{height:7rem}.l5r5e.army-cohort article.attributes input[type=text]{width:100%}.l5r5e.army-cohort article.attributes .actor-remove-control{font-size:12px}.l5r5e.army-cohort article.attributes .flx50{flex:0 0 calc(50% - .5rem)}.l5r5e.army-cohort article.attributes .flx100{flex:0 0 calc(100% - .5rem)}.l5r5e.army-cohort article.attributes .editor-container{min-height:8rem;max-height:14rem}.l5r5e.army-cohort article.abilities{align-self:stretch;height:calc(100% - 8rem);width:100%;box-sizing:content-box}.l5r5e.army-fortification .sheet-body{height:calc(100% - 92px)}.l5r5e.army-fortification article.infos{height:calc(100% - 4.5rem)}.l5r5e.army-fortification article.attributes{height:3.5rem}.l5r5e .item-list>li .item-description{flex:unset;height:0;margin:0;padding:0;font-size:.75rem;color:rgba(0,0,0,.75);overflow:hidden;background:rgba(0,0,0,.05);border:0 none;transition:height .25s ease-in}.l5r5e .item-list>li div.item-description{padding:0}.l5r5e .item-list>li div.item-description:hover,.l5r5e .item-list>li div.item-description:active{padding:0}.l5r5e .item-list>li:hover .item-description,.l5r5e .item-list>li:active .item-description{height:6rem;overflow-y:auto;scrollbar-width:thin;border:1px solid rgba(186,187,177,.5)}.l5r5e .item-list>li:hover p .item-description,.l5r5e .item-list>li:active p .item-description{padding:.25rem}.l5r5e .item-list .stance-content .item-description{display:none;height:auto}.l5r5e .item-list .stance-content .stance-active{display:block;height:auto;border:0 none}.l5r5e .item-list .stance-content:hover .item-description{height:auto;border:0 none}.l5r5e .item-list .stance-content:hover .stance-active{display:block}.l5r5e.twenty-questions-dialog .sheet-tabs{position:fixed;flex-direction:column;background:url("../assets/imgs/bg-20nav.webp") no-repeat;background-size:cover;width:4rem;height:41.58rem;margin:1%;line-height:3rem;padding:.25rem;border-bottom:0 none}.l5r5e.twenty-questions-dialog .errors{position:sticky;top:1rem;left:1rem;z-index:999;width:calc(100% - 1rem);background-color:#963c41;border:1px solid rgba(25,0,0,.75);color:#fff;border-radius:1rem;text-align:center;line-height:2rem}.l5r5e.twenty-questions-dialog h3{font-size:1.25rem;color:#5a6e5a;text-shadow:0 0 rgba(0,0,0,.25);margin:2rem 0 .5rem 1rem}.l5r5e.twenty-questions-dialog nav .item{color:#000;font-size:2rem;font-weight:bold;background-color:rgba(255,255,255,.25)}.l5r5e.twenty-questions-dialog nav .item.active,.l5r5e.twenty-questions-dialog nav .item:hover{color:#fff;background-color:rgba(73,12,11,.85);--notchSize: 0.5rem;-webkit-clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)));clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)))}.l5r5e.twenty-questions-dialog nav .item:hover{background-color:#5a6e5a}.l5r5e.twenty-questions-dialog article{padding:2% 2% 2% 18%}.l5r5e.twenty-questions-dialog article label.full{display:block;width:100%;text-align:right;font-size:1rem}.l5r5e.twenty-questions-dialog article label.full input{display:inline;width:80%;float:right;text-align:left;margin-left:.5rem}.l5r5e.twenty-questions-dialog article>label{font-size:1rem;padding:0 0 0 1rem;line-height:2rem}.l5r5e.twenty-questions-dialog article>label>*{line-height:1rem}.l5r5e.twenty-questions-dialog article table{width:100%;text-align:center}.l5r5e.twenty-questions-dialog article table tr th{color:#5a6e5a;font-weight:normal}.l5r5e.twenty-questions-dialog article table tr td{vertical-align:top;line-height:2rem;border:1px solid rgba(186,187,177,.5);font-size:.85rem;padding:.25rem}.l5r5e.twenty-questions-dialog article table tr td>*{line-height:1rem}.l5r5e.twenty-questions-dialog article table tr td>ul li{line-height:2rem}.l5r5e.twenty-questions-dialog article table tr td>ul li>*{line-height:1rem}.l5r5e.twenty-questions-dialog article table tr td.done{border:1px solid #699678;box-shadow:0 1px 5px #699678}.l5r5e.twenty-questions-dialog article select{height:2rem;color:#764f40;background:rgba(255,255,255,.25);border:1px solid rgba(255,255,255,.5);border-radius:.25rem;padding:0 .25rem;margin:.25rem;width:calc(100% - .5rem)}.l5r5e.twenty-questions-dialog article textarea{color:#764f40;background:rgba(255,255,255,.25);border:1px solid rgba(255,255,255,.5);margin:0 .25rem 1rem}.l5r5e.twenty-questions-dialog article hr{border-top:1px solid rgba(0,0,0,.25)}.l5r5e.twenty-questions-dialog article a.entity-link,.l5r5e.twenty-questions-dialog article a.inline-roll{color:#5a6e5a;background:rgba(255,255,255,.25);border:1px solid rgba(0,0,0,.25)}.l5r5e.twenty-questions-dialog article a.entity-link i,.l5r5e.twenty-questions-dialog article a.inline-roll i{color:#5a6e5a}.l5r5e.twenty-questions-dialog article .tq-drag-n-drop{border:0 none;padding:0}.l5r5e.twenty-questions-dialog article .third{width:230px}.l5r5e.twenty-questions-dialog article .fifty{width:49%}.l5r5e.twenty-questions-dialog article .or{width:100px}.l5r5e.twenty-questions-dialog article .dropbox{min-height:75px}.l5r5e.twenty-questions-dialog article .checklist{margin:.25rem .25rem 1rem}.l5r5e.twenty-questions-dialog article .checklist strong{display:block;width:100%;color:#764f40}.l5r5e.twenty-questions-dialog article .checklist label{font-size:.85rem;flex:0 0 auto;margin:0 .25rem .25rem;padding:0 .5rem;color:#5a6e5a;background:rgba(255,255,255,.5);border:1px solid #5a6e5a;border-radius:1rem}.l5r5e.twenty-questions-dialog article .checklist label.technique{padding:.25rem;margin:.25rem;border-radius:0;display:inline-block}.l5r5e.twenty-questions-dialog article .checklist input{margin:.25rem 0 0 0;height:.65rem;width:.65rem}.l5r5e.twenty-questions-dialog article #generchar_disclaimer{color:#963c41;font-weight:bold;font-size:1.25rem;text-align:center;flex:100%;padding:1rem 0}.l5r5e.twenty-questions-dialog article .next{margin:2rem 0 4rem}.l5r5e.twenty-questions-dialog article .autocomplete-wrapper{width:calc(100% - 2px)}#measurement .waypoint-label-additional{color:var(--color-text-emphatic);font-size:var(--font-size-24)}#tactical-grid-settings input[type=number]:invalid{background-color:red}#tactical-grid-settings input[type=number]:-moz-read-only{border:none;outline:none;box-shadow:none;background:rgba(0,0,0,0);cursor:default;pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none}#tactical-grid-settings input[type=number]:read-only{border:none;outline:none;box-shadow:none;background:rgba(0,0,0,0);cursor:default;pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none}#tactical-grid-settings .range_band{display:flex;flex-flow:wrap}#tactical-grid-settings .range_band fieldset{flex:25%}} \ No newline at end of file +@layer system{body>*{scrollbar-width:thin}body:not(.background){background:url("../assets/imgs/bg-table.webp") no-repeat;background-size:cover}.toggle-hidden{display:none !important}.window-app .window-content{z-index:1;position:relative;background-size:cover;scrollbar-width:thin;padding:0}.window-app .window-content>form,.window-app .window-content>div{padding:.5rem}.window-app .window-content .compendium,.window-app .window-content .help-dialog{background-position:top;background-size:100%;background:url("../assets/ui/bgSidebar.webp") no-repeat;border:1px solid #c3a582;border-radius:0;color:#fff}.window-app .window-content .compendium ol,.window-app .window-content .help-dialog ol{padding-right:.25rem}.window-app .window-content .compendium ol li,.window-app .window-content .help-dialog ol li{border-bottom:1px solid rgba(255,255,255,.25)}.window-app .window-content .compendium .directory-header,.window-app .window-content .help-dialog .directory-header{padding:.25rem 0}.window-app .window-content .help-dialog{padding:.5rem 1.5rem}.window-app .window-content .help-dialog button{cursor:default;color:#fff;background:linear-gradient(rgb(95, 40, 65), rgb(65, 25, 40), rgb(95, 40, 65));background-origin:padding-box;-o-border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image-width:.5rem;border-image-outset:0px}.window-app .window-content .help-dialog button:hover{background:linear-gradient(rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75))}.window-app .window-content .compendium .item{position:relative}.window-app .window-content .compendium .item i{float:right;line-height:1rem;text-align:right;font-size:.75rem;color:rgba(240,240,225,.75);font-style:italic;flex:0 0 auto;position:absolute;right:0;text-shadow:0 0 0 rgba(255,255,255,.1)}.window-app .window-content .compendium .item i:before{margin:0 .25rem 0 0;font-style:normal}.window-app.sheet .window-content,.window-app.npc .window-content,.window-app.advancement .window-content,.window-app.armor .window-content,.window-app.item .window-content,.window-app.peculiarity .window-content,.window-app.property .window-content,.window-app.technique .window-content,.window-app.weapon .window-content,.window-app.twenty-questions-dialog .window-content{overflow-y:scroll}.window-app .window-resizable-handle{z-index:2;background:#000}.window-app.twenty-questions-dialog .window-content{background:#fffae6 url("../assets/imgs/bg-scroll.webp") no-repeat;background-size:cover}#l5r5e-twenty-questions-dialog{min-height:800px;min-width:600px}input[type=text]:focus,input[type=number]:focus,input[type=password]:focus,input[type=date]:focus,input[type=time]:focus{box-shadow:0 0 6px red}.tabs .item.active{text-shadow:0 0 10px red}#controls .scene-control.active,#controls .control-tool.active,#controls .scene-control:hover,#controls .control-tool:hover{box-shadow:0 0 10px red}#sidebar #settings button,#sidebar .sidebar-tab .action-buttons button{height:2rem;line-height:initial}button:hover{box-shadow:0 0 10px red}button:focus{box-shadow:0 0 10px red}.item-list>li{padding:.25rem;border:1px solid rgba(0,0,0,.05);border-bottom:0 none}.item-list>li:nth-child(odd){background:rgba(186,187,177,.2)}.item-list>li:nth-child(even){background:rgba(186,187,177,.1)}.item-list>li:last-child{border-bottom:1px solid rgba(0,0,0,.05)}fieldset{flex:1;flex-wrap:wrap;display:flex;margin:0 .25rem;padding:.5rem;border:1px solid rgba(186,187,177,.5)}fieldset legend{color:#5a6e5a}fieldset .editor{height:100%}.editor,.editor-container{flex:1;height:100%}table{background:rgba(0,0,0,0);border:1px solid rgba(186,187,177,.5)}table thead{background:rgba(186,187,177,.5);color:#5a6e5a;text-shadow:none;border-bottom:rgba(186,187,177,.5)}table tr:nth-child(odd){background:rgba(186,187,177,.2)}table tr:nth-child(even){background:rgba(186,187,177,.1)}sub,sup{color:rgba(0,0,0,.5)}.sheet nav.sheet-tabs{font-size:.75rem}.editor-container ul,.item-description ul{margin:.5rem 0}.editor-container ul li,.item-description ul li{list-style-type:initial;margin:.5rem 0 .5rem 1.5rem;padding:0}.prepared-character{color:#699678}.prepared-adversary{color:#9b7350}.prepared-minion{color:#5f919b}.prepared-icon{font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;width:1.5rem}.prepared-icon-true:before{content:""}.prepared-icon-false:before{content:""}.prepared-icon-actor:before{content:""}a.compendium-link{background:#ddd;padding:1px 4px;border:1px solid #4b4a44;border-radius:2px;white-space:nowrap;word-break:break-all}#playlists .sound-control i.fas.fa-random,#playlists .sound-control i.far.fa-arrow-alt-circle-right,#playlists .sound-control i.fas.fa-compress-arrows-alt,#playlists .sound-control i.fas.fa-ban{color:#ff6400}#playlists .sound-control i.fas.fa-square{color:#d00}#playlists .sound-control i.fas.fa-play,#playlists .sound-control i.fas.fa-play-circle{color:#0d0}#playlists .sound-control i.fas.fa-pause,#playlists .sound-control i.fas.fa-backward,#playlists .sound-control i.fas.fa-forward{color:#0096ff}.window-draggable-handle{z-index:20 !important}#forien-quest-log .window-content,#forien-quest-log-form .window-content,.window-app.forien-quest-preview .window-content{overflow:initial}#OneJournalShell:first-child>.window-header,#OneJournalShell.maximized>.window-header{z-index:20}@font-face{font-family:"LogotypeL5r";src:url("../fonts/LogotypeL5r.ttf") format("truetype")}@font-face{font-family:"BrushtipTexe";src:url("../fonts/BrushtipTexe.ttf") format("truetype")}@font-face{font-family:"PatrickHand";src:url("../fonts/PatrickHand.ttf") format("truetype")}@font-face{font-family:"Caballar";src:url("../fonts/Caballar.ttf") format("truetype")}@font-face{font-family:"ArchitectsDaughter";src:url("../fonts/ArchitectsDaughter.ttf") format("truetype")}body{font:16px "PatrickHand",sans-serif;letter-spacing:.05rem}h1,h4{font-family:"BrushtipTexe",sans-serif}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.25rem}i.i_strife,i.i_success,i.i_explosive,i.i_opportunity,i.i_earth,i.i_water,i.i_fire,i.i_air,i.i_void,i.i_kiho,i.i_maho,i.i_ninjitsu,i.i_prerequisite_exemption,i.i_rituals,i.i_shuji,i.i_invocations,i.i_kata,i.i_inversion,i.i_mantra,i.i_imperial,i.i_ronin,i.i_crab,i.i_crane,i.i_dragon,i.i_lion,i.i_mantis,i.i_phoenix,i.i_scorpion,i.i_tortoise,i.i_unicorn,i.i_bushi,i.i_courtier,i.i_shugenja,i.i_ring,i.i_skill{font-family:"LogotypeL5r",sans-serif;line-height:1rem;font-size:1.25rem;font-style:normal;font-weight:normal;vertical-align:middle;text-shadow:0 0 0 rgba(0,0,0,.5)}i.i_strife:before{content:"";color:#cd0000}i.i_success:before{content:"";color:#cd0000}i.i_explosive:before{content:"";color:#cd0000}i.i_opportunity:before{content:"";color:#cd0000}i.i_earth:before{content:"";color:#699678}i.i_air:before{content:"";color:#917896}i.i_water:before{content:"";color:#5f919b}i.i_fire:before{content:"";color:#9b7350}i.i_void:before{content:"";color:#4b4641}i.i_invocations:before{content:"";color:#ff6400}i.i_kata:before{content:"";color:red}i.i_kiho:before{content:"";color:#009632}i.i_maho:before{content:"";color:#c83200}i.i_ninjitsu:before{content:"";color:#343434}i.i_prerequisite_exemption:before{content:"";color:#343434}i.i_rituals:before{content:"";color:#0096ff}i.i_shuji:before{content:"";color:#00ff96}i.i_inversion:before{content:"";color:#4b4641}i.i_mantra:before{content:"";color:#fa0}i.i_crab:before{content:"";color:#82828c}i.i_crane:before{content:"";color:#789191}i.i_dragon:before{content:"";color:#55826e}i.i_lion:before{content:"";color:#a08c50}i.i_mantis:before{content:"";color:#2d551e}i.i_phoenix:before{content:"";color:#91784b}i.i_scorpion:before{content:"";color:#9b463c}i.i_tortoise:before{content:"";color:#b4c82d}i.i_unicorn:before{content:"";color:#785a87}i.i_imperial:before{content:"";color:#78ffb4}i.i_ronin:before{content:"";color:#612001}i.i_bushi:before{content:"";color:#a55a5a}i.i_courtier:before{content:"";color:#6982a5}i.i_shugenja:before{content:"";color:#5aa582}i.i_ring{content:"";background:rgba(0,0,0,0) url("../assets/dices/default/ring_blank.svg") no-repeat 0 center;background-size:1rem;display:inline-block;height:1rem;width:1rem}i.i_skill{content:"";background:rgba(0,0,0,0) url("../assets/dices/default/skill_blank.svg") no-repeat 0 0;background-size:1rem;display:inline-block;height:1rem;width:1rem}.compendium .item i{font-family:"PatrickHand",sans-serif}.compendium .item i:before{font-family:"LogotypeL5r",sans-serif}body,#navigation #scene-list .scene.view,#navigation #scene-list .scene.context,#navigation #nav-toggle,#navigation #scene-list .scene.nav-item,#controls .scene-control.active,#controls .control-tool.active,#controls .scene-control:hover,#controls .control-tool:hover,#client-settings .window-content form .form-group>label,#client-settings .window-content form .form-group select,#client-settings .form-group input,.app.window-app .form-group label,#sidebar .sidebar-tab #chat-controls div.roll-type-select select,#sidebar .sidebar-tab #chat-controls div.roll-type-select i.fas{cursor:url("../assets/cursors/normal.webp"),default !important}a,#logo,#hotbar .macro,#playlists-popout .global-volume::-webkit-slider-thumb,#sidebar #playlists .global-volume::-webkit-slider-thumb,#playlists-popout li.playlist:not(:first-of-type) li.sound .sound-volume::-webkit-slider-thumb,#sidebar #playlists li.playlist:not(:first-of-type) li.sound .sound-volume::-webkit-slider-thumb,#sidebar #settings button,.app.window-app.sheet.wfrp4e.actor.character-sheet .tab.main.active .main-row .movement.row-section .move-value .auto-calc-toggle,.app.window-app.sheet.wfrp4e.actor.npc-sheet .main-row .movement.row-section .move-value .auto-calc-toggle,.app.window-app.sheet.wfrp4e.actor.creature-sheet .main-row .movement.row-section .move-value .auto-calc-toggle,.app.window-app .form-group input[type=range]::-webkit-slider-thumb,.token-sheet .tab[data-tab=image] input[type=range]::-webkit-slider-thumb,#drawing-config .tab[data-tab=image] input[type=range]::-webkit-slider-thumb,.metacurrency-value,.overcast-button,.chargen-button,#controls .scene-control,#controls .control-tool,#effects-config .flex2::-webkit-slider-thumb,#client-settings section.content .submenu>button,#client-settings .window-content button label,form .form-group .form-fields button,.sidebar-tab .action-buttons button,.dialog .dialog-buttons button,.item-edit,.item-delete,.item-equip,.item-curriculum,.technique-edit,.technique-delete,.peculiarity-edit,.peculiarity-delete,.attribute-dtype,.equip-readied-control,form button,label{cursor:url("../assets/cursors/pointer.webp"),pointer !important}.draggable{cursor:url("../assets/cursors/drag.webp"),move !important}body.theme-light{--l5r5e-restricted-opacity: 0.35;--l5r5e-restricted-filter: grayscale(1) brightness(1.1);--l5r5e-dropdown-bg: #f4efe6;--l5r5e-dropdown-color: var(--color-dark-2, #222);--l5r5e-dropdown-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);--l5r5e-dropdown-group-color: var(--color-dark-4, #444);--l5r5e-dropdown-group-bg: rgba(0, 0, 0, 0.05);--l5r5e-dropdown-option-color: var(--color-dark-2, #222);--l5r5e-dropdown-no-results-color: var(--color-dark-4, #444);--l5r5e-chip-border-color: var(--color-light-5, #9f8475);--l5r5e-chip-bg: rgba(93, 20, 43, 0.08);--l5r5e-chip-color: var(--color-dark-2, #222);--l5r5e-filter-selected-opacity: 0.45;--l5r5e-filter-selected-tint: invert(0.15) sepia(1) saturate(6) hue-rotate(295deg) brightness(0.7)}body.theme-dark{--l5r5e-restricted-opacity: 0.6;--l5r5e-restricted-filter: grayscale(0.3);--l5r5e-dropdown-bg: var(--color-cool-4, #302831);--l5r5e-dropdown-color: var(--color-light-2, #efe6d8);--l5r5e-dropdown-shadow: 0 4px 12px rgba(0, 0, 0, 0.6);--l5r5e-dropdown-group-color: var(--color-light-5, #9f8475);--l5r5e-dropdown-group-bg: rgba(255, 255, 255, 0.05);--l5r5e-dropdown-option-color: var(--color-light-2, #efe6d8);--l5r5e-dropdown-no-results-color: var(--color-light-5, #9f8475);--l5r5e-chip-border-color: var(--color-light-5, #9f8475);--l5r5e-chip-bg: rgba(93, 20, 43, 0.12);--l5r5e-chip-color: var(--color-light-2, #efe6d8);--l5r5e-filter-selected-opacity: 0.6;--l5r5e-filter-selected-tint: invert(1) sepia(1) saturate(4) hue-rotate(5deg)}.application.theme-light,.themed.theme-light{--l5r5e-restricted-opacity: 0.35;--l5r5e-restricted-filter: grayscale(1) brightness(1.1);--l5r5e-dropdown-bg: #f4efe6;--l5r5e-dropdown-color: var(--color-dark-2, #222);--l5r5e-dropdown-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);--l5r5e-dropdown-group-color: var(--color-dark-4, #444);--l5r5e-dropdown-group-bg: rgba(0, 0, 0, 0.05);--l5r5e-dropdown-option-color: var(--color-dark-2, #222);--l5r5e-dropdown-no-results-color: var(--color-dark-4, #444);--l5r5e-chip-border-color: var(--color-light-5, #9f8475);--l5r5e-chip-bg: rgba(93, 20, 43, 0.08);--l5r5e-chip-color: var(--color-dark-2, #222);--l5r5e-filter-selected-opacity: 0.45;--l5r5e-filter-selected-tint: invert(0.15) sepia(1) saturate(6) hue-rotate(295deg) brightness(0.7)}.application.theme-dark,.themed.theme-dark{--l5r5e-restricted-opacity: 0.6;--l5r5e-restricted-filter: grayscale(0.3);--l5r5e-dropdown-bg: var(--color-cool-4, #302831);--l5r5e-dropdown-color: var(--color-light-2, #efe6d8);--l5r5e-dropdown-shadow: 0 4px 12px rgba(0, 0, 0, 0.6);--l5r5e-dropdown-group-color: var(--color-light-5, #9f8475);--l5r5e-dropdown-group-bg: rgba(255, 255, 255, 0.05);--l5r5e-dropdown-option-color: var(--color-light-2, #efe6d8);--l5r5e-dropdown-no-results-color: var(--color-light-5, #9f8475);--l5r5e-chip-border-color: var(--color-light-5, #9f8475);--l5r5e-chip-bg: rgba(93, 20, 43, 0.12);--l5r5e-chip-color: var(--color-light-2, #efe6d8);--l5r5e-filter-selected-opacity: 0.6;--l5r5e-filter-selected-tint: invert(1) sepia(1) saturate(4) hue-rotate(5deg)}button{font-size:.75rem;cursor:url("../assets/cursors/pointer.webp"),pointer}.pointer{cursor:url("../assets/cursors/pointer.webp"),pointer}#game-details .system{overflow:auto;border-bottom:1px solid var(--color-border-light-highlight)}#game-details .system .system-title{white-space:break-spaces}.chat-message ul,.chat-message li{list-style:none;margin:unset;padding:unset}#logo{content:url("../assets/l5r-logo.webp");height:80px;width:88px;margin-left:.5rem;opacity:.8}#navigation{left:120px}#navigation #nav-toggle,#navigation #scene-list .scene.nav-item{cursor:default;color:#fff;background:linear-gradient(rgba(10, 0, 20, 0.75), rgba(0, 0, 10, 0.75), rgba(10, 0, 20, 0.75));background-origin:padding-box;-o-border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image-width:.25rem;border-image-outset:0px}#navigation #nav-toggle:hover,#navigation #scene-list .scene.nav-item:hover{background:linear-gradient(rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75))}#navigation #scene-list .scene.nav-item.active{background:linear-gradient(rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75))}#navigation #scene-list .scene.nav-item.active:hover{background:linear-gradient(rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75))}#navigation #scene-list .scene.view,#navigation #scene-list .scene.context{cursor:default;color:#fff;background:linear-gradient(rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75));background-origin:padding-box;-o-border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image-width:.25rem;border-image-outset:0px;box-shadow:0 0 20px red}#navigation #scene-list .scene.view:hover,#navigation #scene-list .scene.context:hover{background:linear-gradient(rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75))}#controls{top:100px}#controls ol .scene-control.active,#controls ol .control-tool.active,#controls ol .scene-control:hover,#controls ol .control-tool:hover{background:linear-gradient(rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75));background-origin:padding-box;-o-border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image-width:.25rem;border-image-outset:0px;box-shadow:0 0 10px red}#controls ol .scene-control.active:hover,#controls ol .control-tool.active:hover,#controls ol .scene-control:hover:hover,#controls ol .control-tool:hover:hover{background:linear-gradient(rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75))}#controls ol .scene-control,#controls ol .control-tool{color:#fff;background:linear-gradient(rgba(10, 0, 20, 0.75), rgba(0, 0, 10, 0.75), rgba(10, 0, 20, 0.75));background-origin:padding-box;-o-border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image-width:.25rem;border-image-outset:0px}#controls ol .scene-control:hover,#controls ol .control-tool:hover{background:linear-gradient(rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75))}#playlists .playlist .playlist-header h4{font:.75rem "PatrickHand",sans-serif;text-transform:uppercase;text-align:right}#combat .combat-tracker-header .encounters h3,#combat-popout .combat-tracker-header .encounters h3{font-size:.85rem}#combat .combat-tracker-header .encounters ul,#combat-popout .combat-tracker-header .encounters ul{display:flex;color:rgba(255,255,255,.5)}#combat .combat-tracker-header .encounters ul.encounter,#combat-popout .combat-tracker-header .encounters ul.encounter{border-right:1px solid rgba(255,255,255,.25)}#combat .combat-tracker-header .encounters ul li,#combat-popout .combat-tracker-header .encounters ul li{cursor:url("../assets/cursors/pointer.webp"),pointer}#combat .combat-tracker-header .encounters .prepared,#combat-popout .combat-tracker-header .encounters .prepared{justify-content:space-evenly}#combat .combat-tracker-header .encounters .encounter,#combat-popout .combat-tracker-header .encounters .encounter{justify-content:space-between}#combat .combat-tracker-header .encounters .encounter i,#combat-popout .combat-tracker-header .encounters .encounter i{font-size:23px;vertical-align:middle}#combat .combat-tracker-header .encounters .encounter i:hover,#combat-popout .combat-tracker-header .encounters .encounter i:hover{text-shadow:0 0 8px red}#combat .combat-tracker-header .encounters .encounter .active,#combat-popout .combat-tracker-header .encounters .encounter .active{color:#c83200}#combat .combat-tracker-header .encounters .encounter .active:hover,#combat-popout .combat-tracker-header .encounters .encounter .active:hover{text-shadow:none}#combat .combat-tracker-header .encounters .encounter-icon,#combat-popout .combat-tracker-header .encounters .encounter-icon{font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}#combat .combat-tracker-header .encounters .encounter-icon-intrigue:before,#combat-popout .combat-tracker-header .encounters .encounter-icon-intrigue:before{content:""}#combat .combat-tracker-header .encounters .encounter-icon-duel:before,#combat-popout .combat-tracker-header .encounters .encounter-icon-duel:before{content:""}#combat .combat-tracker-header .encounters .encounter-icon-skirmish:before,#combat-popout .combat-tracker-header .encounters .encounter-icon-skirmish:before{content:""}#combat .combat-tracker-header .encounters .encounter-icon-mass_battle:before,#combat-popout .combat-tracker-header .encounters .encounter-icon-mass_battle:before{content:""}#pause img{content:url("../assets/icons/pause.svg")}.compendium-directory{min-width:350px}.compendium-directory .directory-item .ring-rarity-rank{display:flex;align-items:center;justify-content:end;padding-right:1rem;font-size:.75rem;white-space:nowrap}.compendium-directory .directory-item .ring-rarity-rank i[class^=i_]{margin-right:.25rem}.compendium-directory .not-for-players{opacity:var(--l5r5e-restricted-opacity);filter:var(--l5r5e-restricted-filter)}.compendium-directory [data-application-part=filter] .filter-bar{display:flex;flex-direction:column;gap:.25rem;padding:.5rem}.compendium-directory [data-application-part=filter] .flexrow{position:relative;display:flex;align-items:center;gap:.35rem;margin:.35rem .5rem;padding-right:1.5rem}.compendium-directory [data-application-part=filter] .flexrow.source-filter{padding-right:0}.compendium-directory [data-application-part=filter] .flexrow label{flex-shrink:0;width:3.5rem;font-size:.8rem;line-height:1;margin-right:.25rem}.compendium-directory [data-application-part=filter] .number-filter{flex-wrap:nowrap}.compendium-directory [data-application-part=filter] .number-filter a,.compendium-directory [data-application-part=filter] .rank-filter a,.compendium-directory [data-application-part=filter] .rarity-filter a,.compendium-directory [data-application-part=filter] .ring-filter i{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;padding:.1rem .3rem;cursor:pointer;text-align:center;border-radius:3px;font-size:1.2rem;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;z-index:1}.compendium-directory [data-application-part=filter] .rank-filter a.selected::before,.compendium-directory [data-application-part=filter] .rarity-filter a.selected::before,.compendium-directory [data-application-part=filter] .ring-filter i.selected::after{content:"";position:absolute;inset:0;background:url("../assets/icons/circle.svg") center/contain no-repeat;opacity:var(--l5r5e-filter-selected-opacity);filter:var(--l5r5e-filter-selected-tint);pointer-events:none;z-index:-1}.compendium-directory [data-application-part=filter] .ring-filter i.selected::after{inset:-4px}.compendium-directory [data-application-part=filter] a[data-clear]{position:absolute;display:inline-flex;align-items:center;justify-content:center;right:.25rem;top:50%;transform:translateY(-50%);margin:0;min-width:unset;opacity:.5;cursor:pointer;font-size:.85rem;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:.1rem .3rem}.compendium-directory [data-application-part=filter] a[data-clear]:hover{opacity:1}.compendium-directory [data-application-part=filter] .source-filter l5r5e-multi-select{width:100%}.compendium-directory button.gm.applyPlayerFilter{margin-left:.5rem;margin-bottom:.3rem}.l5r5e-tooltip{cursor:url("../assets/cursors/pointer.webp"),pointer}.l5r5e-tooltip .l5r5e-tooltip-ct,.l5r5e-tooltip.l5r5e-tooltip-ct{visibility:hidden;min-height:-moz-fit-content;min-height:fit-content;width:600px;height:auto;max-height:100%;background:#3e3a30 url("../assets/imgs/bg-l5r.webp") no-repeat;color:#000;font-size:.8rem;text-align:left;border:0 none;border-radius:0;padding:.5rem .75rem;display:block;position:absolute;z-index:9999}.l5r5e-tooltip .l5r5e-tooltip-ct *,.l5r5e-tooltip.l5r5e-tooltip-ct *{color:#000}.l5r5e-tooltip .l5r5e-tooltip-ct section>ul,.l5r5e-tooltip.l5r5e-tooltip-ct section>ul{display:flex;flex-flow:row wrap;padding:.25rem 0 .25rem 1rem}.l5r5e-tooltip .l5r5e-tooltip-ct section>ul li,.l5r5e-tooltip.l5r5e-tooltip-ct section>ul li{flex:50%;padding:0;padding-right:1rem;margin:0;list-style-type:square}.l5r5e-tooltip .l5r5e-tooltip-ct:before,.l5r5e-tooltip.l5r5e-tooltip-ct:before{z-index:-2;content:"";position:absolute;height:calc(100% + .6rem);width:calc(100% - .65rem);border:1px solid #c3a582;border-radius:0;top:-0.35rem;left:.25rem;background:#3e3a30 url("../assets/imgs/bg-l5r.webp") no-repeat}.l5r5e-tooltip .l5r5e-tooltip-ct:after,.l5r5e-tooltip.l5r5e-tooltip-ct:after{z-index:-1;content:"";position:absolute;height:100%;width:100%;border:1px solid #c3a582;border-radius:0;top:-1px;left:-1px}.l5r5e-tooltip .l5r5e-tooltip-ct .goodvalue,.l5r5e-tooltip.l5r5e-tooltip-ct .goodvalue{color:#4e8c69}.l5r5e-tooltip .l5r5e-tooltip-ct .badvalue,.l5r5e-tooltip.l5r5e-tooltip-ct .badvalue{color:#ab2a00}.l5r5e-tooltip .l5r5e-tooltip-ct .reference,.l5r5e-tooltip.l5r5e-tooltip-ct .reference{display:flex}.l5r5e-tooltip .l5r5e-tooltip-ct .reference .page,.l5r5e-tooltip.l5r5e-tooltip-ct .reference .page{margin-left:1ch}.l5r5e-tooltip .card-header img{display:inline-block;background:rgba(0,0,0,0);border:0 none;width:20px;margin:0;padding:0}.l5r5e-chat-item{color:#000;font-size:.8rem}.l5r5e-chat-item *{color:#000}.l5r5e-chat-item h2{font-size:1.1rem}.l5r5e-chat-item section>ul{display:flex;flex-flow:row wrap;padding:.25rem 0 .25rem 1rem}.l5r5e-chat-item section>ul li{flex:100%;padding:1px !important;margin:0;border:0 none !important;list-style-type:square}.l5r5e-chat-item .card-header img{display:inline-block;background:rgba(0,0,0,0);border:0 none;width:20px;margin:0;padding:0}.l5r5e-chat-item .reference{display:flex;flex-wrap:nowrap}.l5r5e-chat-item .page{margin-left:1ch}#l5r5e-gm-monitor{min-height:170px;min-width:240px}#l5r5e-gm-monitor .window-content [data-application-part=hidden_tabs]{display:none}#l5r5e-gm-monitor .window-content table{margin:0;overflow:auto}#l5r5e-gm-monitor .window-content form{padding:0 .5rem}#l5r5e-gm-monitor .window-content thead tr>th{background:rgba(0,0,0,.9);color:rgba(207,207,207,.7803921569);position:sticky;z-index:2;top:0}#l5r5e-gm-monitor .window-content thead tr>th i.i_void:before{color:rgba(207,207,207,.8)}#l5r5e-gm-monitor .window-content th,#l5r5e-gm-monitor .window-content td{border:1px solid rgba(90,110,90,.3137254902);padding:.25em}#l5r5e-gm-monitor .window-content img{border:none;min-width:24px;min-height:24px;max-width:32px;max-height:32px}#l5r5e-gm-monitor .window-content .goodvalue{color:#4e8c69}#l5r5e-gm-monitor .window-content .badvalue{color:#ab2a00}#l5r5e-gm-monitor .window-draggable-handle{display:none}#l5r5e-gm-toolbox{display:flex;background:linear-gradient(rgba(10, 0, 20, 0.75), rgba(0, 0, 10, 0.75), rgba(10, 0, 20, 0.75));border:1px solid #c3a582;margin:.5rem}#l5r5e-gm-toolbox .window-header{border-bottom:1px solid #c3a582;background:none}#l5r5e-gm-toolbox .window-header .window-title{text-align:center}#l5r5e-gm-toolbox .window-header h1{letter-spacing:.25rem;line-height:2.25rem;color:rgba(255,255,255,.65);padding-top:1ch}#l5r5e-gm-toolbox .window-content{padding:0}#l5r5e-gm-toolbox .window-content .gm-tools-container{color:var(--color-text-primary);display:flex;font-size:2rem;line-height:2rem;min-height:2rem;margin:0;padding:0}#l5r5e-gm-toolbox .window-content .gm-tools-container li{flex:1;display:flex;margin:0;padding:0;border-right:1px solid #c3a582;cursor:url("../assets/cursors/pointer.webp"),pointer}#l5r5e-gm-toolbox .window-content .gm-tools-container li:last-child{margin:0;border:0 none}#l5r5e-gm-toolbox .window-content .gm-tools-container li :hover{text-shadow:0 0 red}#l5r5e-gm-toolbox .window-content .gm-tools-container .difficulty_hidden .fa{width:3rem}#l5r5e-gm-toolbox .window-content .gm-tools-container .difficulty_hidden .difficulty{flex:1rem;width:2rem;font-size:2rem;text-align:center;margin:0;padding:.5rem}#l5r5e-gm-toolbox .window-content .gm-tools-container .fa{padding:.5rem}#l5r5e-gm-toolbox .window-content .gm-tools-container .fa-bed,#l5r5e-gm-toolbox .window-content .gm-tools-container .fa-star-half-alt,#l5r5e-gm-toolbox .window-content .gm-tools-container .fa-table,#l5r5e-gm-toolbox .window-content .gm-tools-container .fa-podcast{width:100%;padding:.5rem}#l5r5e-gm-toolbox .window-draggable-handle{display:none}form#settings-config div.form-group:has(l5r5e-multi-select) .form-fields{order:3}form#settings-config div.form-group:has(#settings-config-l5r5e\.compendium-unofficial-content-for-players) .form-fields{order:3}form#settings-config div.form-group:has(#settings-config-l5r5e\.compendium-unofficial-content-for-players) .form-fields .tags{order:1}l5r5e-combo-box{display:block;flex:1;min-width:0;width:100%}l5r5e-combo-box li{flex:none !important;margin:0 !important;padding:0 !important}l5r5e-combo-box input{margin:0 !important;flex:none !important;height:auto !important}l5r5e-combo-box .wrapper{display:block;position:relative;width:100%}l5r5e-combo-box .input{width:100%;background:rgba(0,0,0,0);border:none;border-bottom:1px solid #6e7e6b;font-family:inherit;font-size:inherit;color:inherit;padding:2px 4px}l5r5e-combo-box .input:focus{outline:none;border-bottom-color:darkred}l5r5e-combo-box .input:disabled{opacity:.45;cursor:not-allowed}l5r5e-combo-box .dropdown{text-shadow:none;color:#333;position:absolute;top:100%;left:0;right:0;z-index:100;max-height:200px;overflow-y:auto;background:#f4efe6;border:1px solid #6e7e6b;box-shadow:2px 4px 8px rgba(0,0,0,.3);margin:0;padding:0;list-style:none;text-align:center;font-size:var(--font-size-16);font-family:"PatrickHand",sans-serif}l5r5e-combo-box .option{display:block;margin:0;flex:none;padding:4px 8px;cursor:pointer;font-size:.85em;color:#333;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid rgba(110,126,107,.3)}l5r5e-combo-box .option:hover,l5r5e-combo-box .option.active{background:darkred;color:#f4efe6}l5r5e-combo-box .option:last-child,l5r5e-combo-box .group:last-child{border-bottom:none}l5r5e-combo-box .group{padding:4px 8px 2px;font-size:.7em;font-weight:bold;color:#6e7e6b;text-transform:uppercase;letter-spacing:.08em;background:rgba(110,126,107,.15);cursor:default}l5r5e-combo-box .no-results{padding:6px 8px;color:#999;font-style:italic;font-size:.85em}l5r5e-multi-select,l5r5e-combo-box{display:block;position:relative}l5r5e-combo-box .wrapper{position:relative;display:block;padding:.375rem .625rem;border-width:1px;border-style:solid;border-color:var(--color-border, #6e7e6b);border-radius:4px;transition:border-color .15s ease,box-shadow .15s ease}l5r5e-combo-box .wrapper:focus-within{border-color:var(--color-warm-3, #5d142b);box-shadow:0 0 0 2px rgba(93,20,43,.2)}l5r5e-combo-box .wrapper.disabled{opacity:.45;pointer-events:none}l5r5e-combo-box input.input{display:block;width:100%;padding:0;border:none;background:rgba(0,0,0,0);outline:none;font-size:inherit;line-height:1.4;min-width:4ch}l5r5e-multi-select .multi-select-container{position:relative}l5r5e-multi-select .selection-box{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;padding:.3125rem .5rem;min-height:2.25rem;border:1px solid var(--color-border, #6e7e6b);border-radius:4px;cursor:text;transition:border-color .15s ease,box-shadow .15s ease}l5r5e-multi-select .selection-box:focus-within{border-color:var(--color-warm-3, #5d142b);box-shadow:0 0 0 2px rgba(93,20,43,.2)}l5r5e-multi-select .selection-box.disabled{opacity:.45;pointer-events:none;cursor:default}l5r5e-multi-select .selection-box.disabled .input-sizer{display:none}l5r5e-multi-select .chip-list{display:contents}l5r5e-multi-select .chip{display:inline-flex;align-items:center;gap:.1875rem;padding:.0625rem .3125rem;border:1px solid var(--l5r5e-chip-border-color);border-radius:3px;background:var(--l5r5e-chip-bg);color:var(--l5r5e-chip-color);font-size:.8em;line-height:1.4;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}l5r5e-multi-select .chip-remove{display:inline-flex;align-items:center;justify-content:center;padding:0 .0625rem;cursor:pointer;color:var(--color-light-5, #9f8475)}l5r5e-multi-select .chip-remove:hover{color:var(--color-warm-2, #c9593f)}l5r5e-multi-select .input-sizer{display:inline-grid;flex:1 1 auto;min-width:4ch;max-width:100%}l5r5e-multi-select .input-sizer::after{content:attr(data-value) " ";grid-area:1/1;visibility:hidden;white-space:pre;font:inherit;line-height:1.4;pointer-events:none}l5r5e-multi-select .input-sizer input.input{grid-area:1/1;width:100%;min-width:0;padding:.125rem 0;border:none;background:rgba(0,0,0,0);outline:none;font:inherit;line-height:1.4}l5r5e-multi-select .clear-btn{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;flex-shrink:0;white-space:nowrap;padding:0 .125rem;border:none;background:none;font-size:1.1em;cursor:pointer;color:var(--color-light-5, #9f8475)}l5r5e-multi-select .clear-btn:hover{color:var(--color-warm-2, #c9593f)}l5r5e-multi-select .dropdown,l5r5e-combo-box .dropdown{position:absolute;top:calc(100% + .25rem);left:0;right:0;z-index:100;max-height:14rem;overflow-y:auto;overflow-x:hidden;list-style:none;margin:0;padding:.25rem 0;border-width:1px;border-style:solid;border-radius:4px;background:var(--l5r5e-dropdown-bg);border-color:var(--color-border, #6e7e6b);box-shadow:var(--l5r5e-dropdown-shadow);color:var(--l5r5e-dropdown-color)}l5r5e-multi-select .dropdown li.group,l5r5e-combo-box .dropdown li.group{padding:.375rem .75rem .125rem;font-size:.7em;font-weight:600;text-transform:uppercase;letter-spacing:.06em;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:var(--l5r5e-dropdown-group-color);background:var(--l5r5e-dropdown-group-bg)}l5r5e-multi-select .dropdown li.option,l5r5e-combo-box .dropdown li.option{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;font-size:.875em;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:var(--l5r5e-dropdown-option-color)}l5r5e-multi-select .dropdown li.option:hover,l5r5e-multi-select .dropdown li.option.active,l5r5e-combo-box .dropdown li.option:hover,l5r5e-combo-box .dropdown li.option.active{background:var(--color-warm-3, #5d142b);color:var(--color-light-1, #f7f3e8)}l5r5e-multi-select .dropdown li.option.selected,l5r5e-combo-box .dropdown li.option.selected{background:rgba(93,20,43,.25)}l5r5e-multi-select .dropdown li.option.disabled,l5r5e-combo-box .dropdown li.option.disabled{cursor:default;pointer-events:none;opacity:.45}l5r5e-multi-select .dropdown li.option .checkmark,l5r5e-combo-box .dropdown li.option .checkmark{flex-shrink:0;width:.875rem;text-align:center;font-size:.85em;color:var(--color-warm-1, #ee9b3a)}l5r5e-multi-select .dropdown li.option .label,l5r5e-combo-box .dropdown li.option .label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}l5r5e-multi-select .dropdown li.no-results,l5r5e-combo-box .dropdown li.no-results{padding:.5rem .75rem;font-size:.875em;font-style:italic;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:var(--l5r5e-dropdown-no-results-color)}.application{color:var(--color-text-primary)}.application .scrollable{--scroll-margin: 0}.application .window-header{background:linear-gradient(rgba(10, 0, 20, 0.75), rgba(0, 0, 10, 0.75), rgba(10, 0, 20, 0.75))}.application .window-header .window-title{font-family:"BrushtipTexe",sans-serif;font-size:1.25rem}.application .window-content{padding:.25rem}.application .window-content table{background:rgba(0,0,0,0);border:1px solid rgba(186,187,177,.5)}.application .window-content table thead{background:rgba(186,187,177,.5);color:#5a6e5a;text-shadow:none;border-bottom:rgba(186,187,177,.5)}.application .window-content table tr:nth-child(odd){background:rgba(186,187,177,.2)}.application .window-content table tr:nth-child(even){background:rgba(186,187,177,.1)}#sidebar-tabs button.l5r5e{position:relative;display:flex;justify-content:center;align-items:center}#sidebar-tabs button.l5r5e.chatIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/chat.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/chat.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.combatIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/combat-tracker.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/combat-tracker.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.sceneIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/scenes.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/scenes.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.actorIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/actors.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/actors.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.itemIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/object.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/object.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.journalIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/journal.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/journal.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.rolltableIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/rolltable.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/rolltable.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.playlistIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/playlist.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/playlist.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.compendiumIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/compendium.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/compendium.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.settingsIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/settings.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/settings.svg") no-repeat center/contain;z-index:0}#sidebar-tabs button.l5r5e.icon-plus::after{z-index:2}#sidebar-content .create-button.l5r5e{position:relative;display:flex;justify-content:center;align-items:center;filter:drop-shadow(0 0 3px var(--color-dark-1))}#sidebar-content .create-button.l5r5e.chatIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/chat.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/chat.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.combatIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/combat-tracker.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/combat-tracker.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.sceneIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/scenes.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/scenes.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.actorIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/actors.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/actors.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.itemIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/object.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/object.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.journalIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/journal.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/journal.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.rolltableIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/rolltable.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/rolltable.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.playlistIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/playlist.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/playlist.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.compendiumIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/compendium.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/compendium.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.settingsIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/settings.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/settings.svg") no-repeat center/contain;z-index:0}#sidebar-content .create-button.l5r5e.icon-plus::after{z-index:2}#sidebar-content i.l5r5e{position:relative;display:flex;justify-content:center;align-items:center;width:2em;height:2em;color:currentColor}#sidebar-content i.l5r5e.chatIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/chat.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/chat.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.combatIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/combat-tracker.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/combat-tracker.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.sceneIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/scenes.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/scenes.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.actorIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/actors.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/actors.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.itemIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/object.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/object.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.journalIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/journal.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/journal.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.rolltableIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/rolltable.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/rolltable.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.playlistIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/playlist.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/playlist.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.compendiumIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/compendium.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/compendium.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.settingsIcon::before{content:"";position:absolute;width:95%;height:95%;background-color:currentColor;mask:url("../assets/ui/sidebar/settings.svg") no-repeat center/contain;-webkit-mask:url("../assets/ui/sidebar/settings.svg") no-repeat center/contain;z-index:0}#sidebar-content i.l5r5e.icon-plus::after{z-index:2}#sidebar-tabs>menu{gap:4px}#sidebar-content.expanded{background:url("../assets/ui/bgSidebar.webp") no-repeat;-o-border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-style:solid;border-image-width:.5rem;border-image-outset:0px;margin-top:2px;margin-right:2px;height:calc(100% - 10px)}#sidebar-content.expanded .sidebar-tab,#sidebar-content.expanded .tab{margin:3px;border-radius:5px}#sidebar-content.expanded #chat{margin:unset;padding-right:4px}#sidebar-content.expanded #chat .chat-scroll{direction:unset;scrollbar-color:var(--color-light-4) var(--color-dark-3);scrollbar-width:thin}#hotbar #action-bar .slot{-o-border-image:url("../assets/ui/macro-button.webp");border-image:url("../assets/ui/macro-button.webp");border-image-slice:8 fill;border-image-width:.25rem}#menu.active{transition:max-height 150ms ease-in}#menu{transition:max-height 10ms ease-out}.l5r5e .dice-picker{cursor:url("../assets/cursors/pointer.webp"),pointer}.l5r5e .dice-picker-dialog{width:35rem;min-height:auto}.l5r5e .dice-picker-dialog .effects{clear:both;display:flex;flex-wrap:wrap;justify-content:center;gap:2px 4px}.l5r5e .dice-picker-dialog .effects .effect-container{border:1px solid #5a6e5a;border-radius:4px;background-color:rgba(0,0,0,.4);padding:3px;display:flex}.l5r5e .dice-picker-dialog .effects .effect-delete{width:16px;height:16px;background-repeat:no-repeat;background-size:contain;text-align:end;cursor:url("../assets/cursors/pointer.webp"),pointer}.l5r5e .dice-picker-dialog .effects .effect-icon{width:16px;height:16px;background-repeat:no-repeat;background-size:contain}.l5r5e .dice-picker-dialog .effects .effect-name{vertical-align:top;white-space:nowrap;color:#fff;margin-left:4px;font-size:14px;line-height:16px}.l5r5e .dice-picker-dialog *{transition:none}.l5r5e .dice-picker-dialog input[type=text]:focus,.l5r5e .dice-picker-dialog input[type=text]:hover{box-shadow:none !important;border:none !important;text-shadow:none !important}.l5r5e .dice-picker-dialog select{text-align:center;width:134px;direction:rtl;-webkit-appearance:none;-moz-appearance:none;appearance:none}.l5r5e .dice-picker-dialog option{font-size:.8rem}.l5r5e .dice-picker-dialog img{border:0}.l5r5e .dice-picker-dialog table{text-align:center;background:none;border:none;border:0 none;margin:0;padding:0}.l5r5e .dice-picker-dialog table tbody tr td{width:250px;padding:0 .5rem}.l5r5e .dice-picker-dialog table tbody tr td:first-child,.l5r5e .dice-picker-dialog table tbody tr td:last-child{width:150px}.l5r5e .dice-picker-dialog table tbody tr:last-child td{width:100%;padding:.5rem}.l5r5e .dice-picker-dialog .pointer-choice{cursor:url("../assets/cursors/pointer.webp"),pointer}.l5r5e .dice-picker-dialog .ring-selection.ring-selected i{text-shadow:0px 1px 1px red}.l5r5e .dice-picker-dialog .ring-selection.ring-selected strong{color:rgba(255,0,0,.75)}.l5r5e .dice-picker-dialog .ring-selection.ring-selected input{border:2px solid rgba(255,0,0,.75) !important}.l5r5e .dice-picker-dialog .quantity{font-size:xx-large}.l5r5e .dice-picker-dialog .third{display:inline-block;text-align:center;vertical-align:middle}.l5r5e .dice-picker-dialog .dice-container.assistance{display:flex;align-items:anchor-center}.l5r5e .dice-picker-dialog .dice-container{display:inline-block;position:relative;text-align:center}.l5r5e .dice-picker-dialog .dice-container>img{height:40px;width:40px}.l5r5e .dice-picker-dialog .dice-container.dice-value.input-dice{width:20px;color:#0f0f0e;background:none;border:none;font-size:large;padding:0}.l5r5e .dice-picker-dialog .dice-value{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.l5r5e .dice-picker-dialog input[name="ring.value"][type=text]{color:#f0f0e0;border:unset;background:unset}.l5r5e .dice-picker-dialog input[name="skill.value"][type=text]{color:#0f0f0e;border:unset;background:unset}.l5r5e .dice-picker-dialog input[name="difficulty.value"][type=text]{color:#0f0f0e;border:unset;background:unset}.l5r5e .dice-picker-dialog input[name="skill.assistance"][type=text]{color:#0f0f0e;border:unset;background:unset}.l5r5e .roll-n-keep-dialog{min-width:600px;max-width:800px}.l5r5e .roll-n-keep-dialog.finalized{width:auto;min-width:400px}.l5r5e .roll-n-keep-dialog img{border:0}.l5r5e .roll-n-keep-dialog table{display:table;min-height:9rem;border:0 none;margin:.25rem 0;padding:0}.l5r5e .roll-n-keep-dialog table tbody tr{background:rgba(0,0,0,0)}.l5r5e .roll-n-keep-dialog table tbody tr td{margin:0;padding:0}.l5r5e .roll-n-keep-dialog .rnk-ct{margin:0;display:flex;flex-wrap:wrap;border-radius:.25rem;background:rgba(0,0,0,.05);border:1px solid rgba(255,255,255,.5)}.l5r5e .roll-n-keep-dialog .rnk-ct .rnk-center{flex:350px;flex-wrap:wrap;display:flex}.l5r5e .roll-n-keep-dialog .rnk-ct .form-group{width:100%}.l5r5e .roll-n-keep-dialog .rnk-ct .form-group .form-fields{flex:1}.l5r5e .roll-n-keep-dialog .rnk-ct .form-group .form-fields:nth-child(2){flex:3}.l5r5e .roll-n-keep-dialog .rnk-ct .form-group .form-fields:nth-child(2) input{flex:3}.l5r5e .roll-n-keep-dialog .rnk-ct .form-group .form-fields:nth-child(2) i{flex:unset}.l5r5e .roll-n-keep-dialog .rnk-ct .form-group .range-value{width:2rem}.l5r5e .roll-n-keep-dialog .profil{border-bottom:1px solid rgba(0,0,0,.1);display:flex;flex-direction:column}.l5r5e .roll-n-keep-dialog .profil .effects{clear:both;display:flex;flex-wrap:wrap;justify-content:center;gap:2px 4px}.l5r5e .roll-n-keep-dialog .profil .effects .effect-container{border:1px solid #5a6e5a;border-radius:4px;background-color:rgba(0,0,0,.4);padding:3px;display:flex}.l5r5e .roll-n-keep-dialog .profil .effects .effect-delete{width:16px;height:16px;background-repeat:no-repeat;background-size:contain;text-align:end;cursor:url("../assets/cursors/pointer.webp"),pointer}.l5r5e .roll-n-keep-dialog .profil .effects .effect-icon{width:16px;height:16px;background-repeat:no-repeat;background-size:contain}.l5r5e .roll-n-keep-dialog .profil .effects .effect-name{vertical-align:top;white-space:nowrap;color:#fff;margin-left:4px;font-size:14px;line-height:16px}.l5r5e .roll-n-keep-dialog .dropbox{position:relative;min-height:7rem}.l5r5e .roll-n-keep-dialog .dropbox legend i:last-child{position:absolute;top:0;right:0;border-radius:.15rem;padding:0 .1rem 0 .15rem;font-size:.65rem;line-height:1rem;width:1rem;margin:.25rem;text-align:center;color:#fff;background:#5a6e5a}.l5r5e .roll-n-keep-dialog .dropbox.faces-change{min-height:40px;margin:.5rem auto}.l5r5e .roll-n-keep-dialog .dropbox.discards{border:1px solid gray}.l5r5e .roll-n-keep-dialog .dropbox.rerolls{border:1px solid #ff4500}.l5r5e .roll-n-keep-dialog .dropbox.keeps{flex:100%;border:1px solid green}.l5r5e .roll-n-keep-dialog .dropbox.swap{flex:0 0 calc(100px + 1rem);flex-direction:column;border:1px solid #f0f}.l5r5e .roll-n-keep-dialog .dropbox.discards,.l5r5e .roll-n-keep-dialog .dropbox.rerolls{flex:0 0 calc(50% - .5rem);margin-bottom:.5rem}.l5r5e .roll-n-keep-dialog .dice-ct{position:relative;padding:.25rem}.l5r5e .roll-n-keep-dialog .dice-ct:before{content:"";position:absolute;height:.5rem;width:2px;top:-0.3rem;right:calc(50% - 1px);background:rgba(0,0,0,.25)}.l5r5e .roll-n-keep-dialog .dice-ct:after{content:"";position:absolute;bottom:0;right:0;border-radius:.15rem;padding:0 .15rem;font-size:.65rem;line-height:1rem;width:1rem;text-align:center;color:#fff;background:gray}.l5r5e .roll-n-keep-dialog .dice-ct.discard{filter:opacity(0.5)}.l5r5e .roll-n-keep-dialog .dice-ct.discard:after{content:"";background:gray}.l5r5e .roll-n-keep-dialog .dice-ct.reroll{filter:opacity(0.5)}.l5r5e .roll-n-keep-dialog .dice-ct.reroll:after{content:"";background:#ff4500}.l5r5e .roll-n-keep-dialog .dice-ct.keep:after{content:"";background:green}.l5r5e .roll-n-keep-dialog .dice-ct.swap:after{content:"";background:#f0f}.l5r5e .roll-n-keep-dialog tr:first-child .dice-ct:before{display:none}.l5r5e .roll-n-keep-dialog .dice{height:40px;width:40px}.l5r5e .roll-n-keep-dialog .dice.discard{filter:opacity(0.5);border:0 none}.l5r5e .roll-n-keep-dialog .dice.reroll{filter:opacity(0.5);border:0 none}.l5r5e .roll-n-keep-dialog .dice.keep{border:0 none}.l5r5e .roll-n-keep-dialog .dice.swap{border:0 none}.l5r5e .roll-n-keep-dialog #finalize{width:100%;margin:.5rem .25rem .25rem}.l5r5e .roll-n-keep-dialog .section-header i{font-size:.75rem;margin:0 .25rem}.l5r5e .roll-n-keep-dialog .fa-sign-in-alt{transform:rotate(90deg)}.l5r5e .roll-n-keep-dialog .chat-profil ul{display:flex;flex-direction:row}.l5r5e .roll-n-keep-dialog .chat-profil ul li:nth-child(1),.l5r5e .roll-n-keep-dialog .chat-profil ul li:nth-child(2){flex:0 0 4rem;padding:0 .25rem .25rem}.l5r5e .roll-n-keep-dialog .chat-profil ul li:nth-child(4){flex:0 0 4rem;padding:0 .25rem .25rem}.l5r5e .roll-n-keep-dialog .chat-profil ul .profile-img{width:4rem}.l5r5e .roll-n-keep-dialog .chat-profil ul .chat-profil-stance{font-size:3.5rem;line-height:3.5rem}.l5r5e .dice-picker-dialog button,.l5r5e .roll-n-keep-dialog button{cursor:default;color:#fff;background:linear-gradient(rgb(95, 40, 65), rgb(65, 25, 40), rgb(95, 40, 65));background-origin:padding-box;-o-border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image-width:.5rem;border-image-outset:0px;margin:.5rem 0 0}.l5r5e .dice-picker-dialog button:hover,.l5r5e .roll-n-keep-dialog button:hover{background:linear-gradient(rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75))}.l5r5e .dice-picker-dialog button[disabled],.l5r5e .roll-n-keep-dialog button[disabled]{opacity:.25}.l5r5e .dice-picker-dialog button[disabled]:hover,.l5r5e .roll-n-keep-dialog button[disabled]:hover{box-shadow:none}.l5r5e .dice-picker-dialog #context-menu,.l5r5e .roll-n-keep-dialog #context-menu{max-width:none}.l5r5e .dice-picker-dialog .symbols-help,.l5r5e .roll-n-keep-dialog .symbols-help{font-style:italic;color:#666;font-size:.8rem;line-height:1rem;margin:.5rem auto 0}.l5r5e .dice-picker-dialog .symbols-help i,.l5r5e .roll-n-keep-dialog .symbols-help i{font-size:1rem;line-height:1rem}.l5r5e ul,.l5r5e li{list-style-type:none;margin:0;padding:0}.l5r5e .earth{color:#699678}.l5r5e .air{color:#917896}.l5r5e .water{color:#5f919b}.l5r5e .fire{color:#9b7350}.l5r5e .void{color:#4b4641}.l5r5e input[type=text],.l5r5e input[type=number],.l5r5e input[type=password],.l5r5e input[type=date],.l5r5e input[type=time],.l5r5e textarea{padding:.25rem;background:rgba(255,255,255,.5);border:1px solid rgba(186,187,177,.5);color:rgba(0,0,0,.5);resize:vertical;border-radius:0;box-shadow:none}.l5r5e input[type=text][disabled],.l5r5e input[type=number][disabled],.l5r5e input[type=password][disabled],.l5r5e input[type=date][disabled],.l5r5e input[type=time][disabled],.l5r5e textarea[disabled]{background:rgba(255,255,255,.25)}.l5r5e input[type=number]{text-align:center}.l5r5e.system-badge{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.25rem}.l5r5e.system-badge>img{height:128px;border:none;-o-object-fit:contain;object-fit:contain}.l5r5e.system-badge .system-info{position:relative;font-size:var(--font-size-16)}.l5r5e.system-badge .system-info i{-webkit-padding-start:2px;padding-inline-start:2px;font-size:var(--font-size-12)}.l5r5e.sidebar-info{margin-bottom:-0.5rem}.l5r5e.sidebar-info .system-badge{margin-top:.5rem}.l5r5e.sidebar-info .notification-pip{color:var(--color-text-accent);font-size:var(--font-size-12);top:4px;right:-14px}.l5r5e.sidebar-info ul.unlist{display:flex;flex-wrap:wrap;padding-left:0;list-style:none;-webkit-clip-path:inset(0 0 0 2ch);clip-path:inset(0 0 0 2ch)}.l5r5e.sidebar-info ul.links{gap:0;margin-top:6px;margin-left:10%}.l5r5e.sidebar-info ul.links li{padding-left:1ch;white-space:nowrap}.l5r5e.sidebar-info ul.links li::before{content:"•";display:inline-block;margin-right:1ch;width:1ch;text-align:center}.l5r5e.chat.dice-roll .chat-dice{display:inline;position:relative;padding:0;margin:0}.l5r5e.chat.dice-roll .chat-dice:after{content:"";position:absolute;bottom:0;right:0;border-radius:.15rem;padding:0 .15rem;font-size:.65em;line-height:1rem;text-align:center;color:#fff;background:rgba(0,0,0,0)}.l5r5e.chat.dice-roll .chat-dice:last-of-type:after,.l5r5e.chat.dice-roll .chat-dice:nth-child(6):after,.l5r5e.chat.dice-roll .chat-dice:nth-child(12):after,.l5r5e.chat.dice-roll .chat-dice:nth-child(18):after{padding:0 .175rem 0 .15rem}.l5r5e.chat.dice-roll .chat-dice.rerolled>img{border-bottom:0 none}.l5r5e.chat.dice-roll .chat-dice.rerolled:after{content:"";background:#ff4500}.l5r5e.chat.dice-roll .chat-dice.swapped>img{border-bottom:0 none}.l5r5e.chat.dice-roll .chat-dice.swapped:after{content:"";background:#f0f}.l5r5e.chat.dice-roll .chat-dice>img{border:1px solid rgba(0,0,0,0);height:auto}.l5r5e.chat.dice-roll .chat-profil{text-align:center;vertical-align:middle}.l5r5e.chat.dice-roll .chat-profil .profile-img{margin:.25rem .25rem 0 0}.l5r5e.chat.dice-roll .chat-profil-stance{font-size:2.5rem;line-height:2.5rem;margin:.25rem;text-shadow:1px 1px 1px rgba(0,0,0,.5)}.l5r5e.chat.dice-roll .chat-profil-element{flex-wrap:wrap;flex-grow:1}.l5r5e.chat.dice-roll .chat-profil-element-skill{flex-grow:3}.l5r5e.chat.dice-roll .chat-profil-element:last-child{flex-grow:2}.l5r5e.chat.dice-roll .dice-formula,.l5r5e.chat.dice-roll .dice-total{background:rgba(255,255,255,.1);border:rgba(255,255,255,.75);text-align:center;margin:.5rem 0;padding:.25rem .5rem .25rem .25rem}.l5r5e.chat.dice-roll .dice-formula-rnk,.l5r5e.chat.dice-roll .dice-total-rnk{line-height:2rem}.l5r5e.chat.dice-roll .dice-formula-rnk i,.l5r5e.chat.dice-roll .dice-total-rnk i{margin-left:.5rem}.l5r5e.chat.dice-roll button{justify-self:center}.l5r5e.chat.dice-roll button.chat-dice-rnk{cursor:url("../assets/cursors/pointer.webp"),pointer;color:#fff;background:linear-gradient(rgb(95, 40, 65), rgb(65, 25, 40), rgb(95, 40, 65));background-origin:padding-box;-o-border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image:url("../assets/ui/macro-button.webp") 10 repeat;border-image-width:.5rem;border-image-outset:0px;margin:.5rem 0 0}.l5r5e.chat.dice-roll button.chat-dice-rnk:hover{background:linear-gradient(rgba(35, 10, 5, 0.75), rgba(65, 20, 15, 0.75), rgba(35, 10, 5, 0.75))}.l5r5e.chat.dice-roll button.chat-dice-rnk-ended{background:linear-gradient(rgba(10, 0, 20, 0.75), rgba(0, 0, 10, 0.75), rgba(10, 0, 20, 0.75))}.l5r5e.chat.dice-roll .dice-result-rnk{background:rgba(0,0,255,.1);border:1px solid rgba(55,55,155,.75);padding:.25rem;color:rgba(55,55,155,.75);text-align:center;font-weight:bold;text-shadow:0 0 0 #000}.l5r5e.chat.dice-roll .dice-result-rnk.success{background:rgba(0,255,0,.1);border-color:rgba(55,155,55,.75);color:rgba(55,155,55,.75)}.l5r5e.chat.dice-roll .dice-result-rnk.success i.i_success{font-size:1rem}.l5r5e.chat.dice-roll .dice-result-rnk.unknown{background:rgba(121,121,121,.1);border-color:rgba(124,124,124,.75);color:rgba(91,91,91,.75)}.l5r5e.chat.dice-roll .dice-result-rnk.fail{background:rgba(255,0,0,.1);border-color:rgba(155,55,55,.75);color:rgba(155,55,55,.75)}.l5r5e.chat.dice-roll .target,.l5r5e.chat.dice-roll .item-infos{display:flex;align-items:center;flex:0 0 100%;margin:.5rem 0;padding:.25rem .5rem .25rem .25rem;background:rgba(255,255,255,.1);border:solid 1px rgba(100,0,0,.75);border-radius:3px}.l5r5e.chat.dice-roll .target .profile,.l5r5e.chat.dice-roll .item-infos .profile{flex:1;margin:.25rem .25rem 0 0;position:relative}.l5r5e.chat.dice-roll .target .profile .profile-img,.l5r5e.chat.dice-roll .item-infos .profile .profile-img{position:relative;border:none;filter:drop-shadow(0 0 1px rgba(0, 0, 0, 0.66))}.l5r5e.chat.dice-roll .target .name,.l5r5e.chat.dice-roll .item-infos .name{flex:6;font-family:"BrushtipTexe",sans-serif}.l5r5e.chat.dice-roll .target .content-link,.l5r5e.chat.dice-roll .item-infos .content-link{background:unset;border:unset}.l5r5e.chat.dice-roll .target .content-link i,.l5r5e.chat.dice-roll .item-infos .content-link i{display:none}.l5r5e.chat.dice-roll .item-infos{border:solid 1px rgba(0,78,100,.75)}.l5r5e.chat.dice-roll .item-infos i{font-size:var(--font-size-12)}.l5r5e.chat.dice-roll .dice-container{display:flex}.l5r5e.sheet{min-width:37rem}.l5r5e.sheet label:hover{text-shadow:0 0 2px red}.l5r5e.sheet .l5r-buttons-bar{display:flex;flex:0 0 100%;overflow:hidden;padding:0 8px;line-height:1.9rem;justify-content:flex-end;background:rgba(186,187,177,.5);height:2rem}.l5r5e.sheet .l5r-buttons-bar a.l5r-header-button{flex:none;margin:0 0 0 8px}.l5r5e.sheet.actor .sheet-header h1{flex:auto;margin:0 0 .25rem .5rem}.l5r5e.sheet.actor .sheet-body{height:calc(100% - 28rem)}.l5r5e.sheet.actor fieldset.advancement,.l5r5e.sheet.actor fieldset.items-wrapper{display:grid;flex:100%}.l5r5e.sheet.actor .advancements-tabs{height:2rem;line-height:2rem;font-size:1rem}.l5r5e.sheet form{display:flex;flex-wrap:wrap;align-content:flex-start}.l5r5e.sheet .sheet-body{flex:0 0 100%;align-items:flex-start}.l5r5e.sheet .sheet-body .effects{clear:both;display:flex;flex-wrap:wrap;gap:2px 4px}.l5r5e.sheet .sheet-body .effects .effect-container{border:1px solid #5a6e5a;border-radius:4px;background-color:rgba(0,0,0,.4);padding:3px;display:flex}.l5r5e.sheet .sheet-body .effects .effect-delete{width:16px;height:16px;background-repeat:no-repeat;background-size:contain;text-align:end;cursor:url("../assets/cursors/pointer.webp"),pointer}.l5r5e.sheet .sheet-body .effects .effect-icon{width:16px;height:16px;background-repeat:no-repeat;background-size:contain}.l5r5e.sheet .sheet-body .effects .effect-name{vertical-align:top;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;margin-left:4px;font-size:14px;line-height:16px;max-width:140px}.l5r5e.sheet section.tab[data-tab],.l5r5e.sheet article.tab[data-tab]{display:none}.l5r5e.sheet section.tab[data-tab].active,.l5r5e.sheet article.tab[data-tab].active{display:flex}.l5r5e.sheet .sheet-header{align-items:flex-start;flex-wrap:wrap}.l5r5e.sheet .sheet-header input{flex:0 0 3rem;font-size:1.5rem;height:2rem}.l5r5e.sheet .sheet-header h1{flex:0 0 calc(100% - 90px - 1.25rem);margin:0 0 .25rem 1rem}.l5r5e.sheet .sheet-header h1 input{flex:0 0 100%;font-size:3rem;height:5rem;margin:0;width:100%;text-align:right;color:#963c41;text-shadow:0 0 1px #963c41;background:rgba(0,0,0,0);border:0 none;border-radius:0;border-bottom:1px solid rgba(90,110,90,.25)}.l5r5e.sheet .sheet-header h1:before{content:"";position:absolute;background:url("../assets/imgs/brush.webp") no-repeat 0 0;background-size:contain;height:225px;width:100%;z-index:-1;top:-1rem;left:-0.25rem}.l5r5e.sheet .sheet-header img{flex:0 0 150px;height:150px;width:150px;margin-right:0;-o-object-fit:contain;object-fit:contain;background:rgba(255,255,255,.25);border:1px solid rgba(186,187,177,.25);--notchSize: 0.5rem;-webkit-clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)));clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)))}.l5r5e.sheet .sheet-header .compromised input{border:1px solid #963c41;box-shadow:0 1px 5px #963c41}.l5r5e.sheet .sheet-header .header-fields h2{font-family:"BrushtipTexe",sans-serif;font-size:1rem;padding:.25rem .25rem 0;margin:1rem 20% 0 0;text-align:center;color:rgba(0,0,0,.25);text-shadow:0 0 1px rgba(90,110,90,.25);border-bottom:0 none;background:rgba(186,187,177,.5);--notchSize: 0.5rem;-webkit-clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, 100% 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% 100%);clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, 100% 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% 100%)}.l5r5e.sheet .sheet-header .header-fields h2.right{margin:1rem 0 0 20%;-webkit-clip-path:polygon(0% 0, var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% 100%, 100% 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)));clip-path:polygon(0% 0, var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% 100%, 100% 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)))}.l5r5e.sheet .sheet-header .header-fields h2:before{content:"";position:absolute;height:1px;width:100%}.l5r5e.sheet .sheet-header .identity-wrapper{display:flex;position:initial;flex-wrap:wrap;flex:0 0 calc(100% - 150px)}.l5r5e.sheet .sheet-header .identity-wrapper label{display:flex;color:#5a6e5a;text-transform:uppercase;font-size:.75rem;line-height:2rem}.l5r5e.sheet .sheet-header .identity-wrapper label input{flex:1;font-size:1.25rem;height:1.75rem;margin:0 1rem 0 .5rem;padding:0 .25rem .25rem}.l5r5e.sheet .sheet-header .identity-wrapper label input[disabled]{border:1px solid rgba(186,187,177,.5);background:rgba(255,255,255,.25)}.l5r5e.sheet .sheet-header .identity-wrapper .identity-content{display:flex;flex-wrap:wrap}.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li{flex:33%}.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(1),.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(2){flex:calc(50% - 3rem);margin:0 0 .25rem}.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(3){flex:auto}.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(3) input{width:1rem;padding:0;margin-right:0}.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(4),.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(5){flex:60%}.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(4) input,.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(5) input{font-size:1rem}.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(5){flex:40%}.l5r5e.sheet .sheet-header .identity-wrapper .identity-content li:nth-child(5) input{margin-right:0}.l5r5e.sheet .sheet-header .mid-wrapper{display:flex}.l5r5e.sheet .sheet-header .side-col{width:30%}.l5r5e.sheet .sheet-header .central-col{width:40%}.l5r5e.sheet .sheet-header .rings{padding:0;margin-top:1rem}.l5r5e.sheet .sheet-header .social-content,.l5r5e.sheet .sheet-header .attributes-wrapper{flex:none;flex-wrap:wrap;display:flex;padding:.5rem 0 0 .25rem;border-left:2px solid rgba(186,187,177,.5)}.l5r5e.sheet .sheet-header .social-content li,.l5r5e.sheet .sheet-header .attributes-wrapper li{position:relative}.l5r5e.sheet .sheet-header .social-content li:before,.l5r5e.sheet .sheet-header .attributes-wrapper li:before{content:"";position:absolute;background:linear-gradient(rgba(186, 187, 177, 0.5), rgba(186, 187, 177, 0));height:2px;width:97%;top:-0.25rem;left:-0.25rem}.l5r5e.sheet .sheet-header .social-content li:nth-child(2):before,.l5r5e.sheet .sheet-header .attributes-wrapper li:nth-child(2):before{width:90%}.l5r5e.sheet .sheet-header .social-content li:nth-child(3):before,.l5r5e.sheet .sheet-header .attributes-wrapper li:nth-child(3):before{width:80%}.l5r5e.sheet .sheet-header .social-content li:nth-child(4):before,.l5r5e.sheet .sheet-header .attributes-wrapper li:nth-child(4):before{width:90%}.l5r5e.sheet .sheet-header .social-content label,.l5r5e.sheet .sheet-header .attributes-wrapper label{display:flex;color:#5a6e5a;text-transform:uppercase;font-size:.75rem;height:2.5rem;margin:.25rem 0;flex-direction:row-reverse}.l5r5e.sheet .sheet-header .social-content label strong,.l5r5e.sheet .sheet-header .attributes-wrapper label strong{flex:0 0 calc(100% - 4.5rem)}.l5r5e.sheet .sheet-header .social-content label input,.l5r5e.sheet .sheet-header .attributes-wrapper label input{flex:0 0 3rem;margin:0 .25rem;height:2rem}.l5r5e.sheet .sheet-header .social-content label input[disabled],.l5r5e.sheet .sheet-header .attributes-wrapper label input[disabled]{background:rgba(255,255,255,.25)}.l5r5e.sheet .sheet-header .social-content .affinities,.l5r5e.sheet .sheet-header .attributes-wrapper .affinities{padding-top:.25rem}.l5r5e.sheet .sheet-header .social-content .affinities .ring,.l5r5e.sheet .sheet-header .attributes-wrapper .affinities .ring{display:flex;flex-wrap:wrap;flex-direction:unset;flex:3rem;height:1.5rem;margin:0}.l5r5e.sheet .sheet-header .social-content .affinities i,.l5r5e.sheet .sheet-header .attributes-wrapper .affinities i{flex:1rem;margin:0;text-align:center}.l5r5e.sheet .sheet-header .social-content .affinities input,.l5r5e.sheet .sheet-header .attributes-wrapper .affinities input{flex:1.25rem;height:1.25rem;margin:0}.l5r5e.sheet .sheet-header .focus-content,.l5r5e.sheet .sheet-header .vigilance-content{flex:0 0 50%;padding-bottom:.5rem}.l5r5e.sheet .sheet-header .focus-content .attribute-label,.l5r5e.sheet .sheet-header .vigilance-content .attribute-label{flex-wrap:wrap;height:auto}.l5r5e.sheet .sheet-header .focus-content .attribute-label strong,.l5r5e.sheet .sheet-header .vigilance-content .attribute-label strong{flex:100%;text-align:center}.l5r5e.sheet .sheet-header .focus-content .attribute-label input,.l5r5e.sheet .sheet-header .vigilance-content .attribute-label input{flex:1 0 3rem}.l5r5e.sheet .sheet-header .focus-content .attribute-label:before,.l5r5e.sheet .sheet-header .vigilance-content .attribute-label:before{top:auto;bottom:.1rem;height:calc(100% - 1.45rem);width:calc(100% - .4rem)}.l5r5e.sheet .sheet-header .attributes-wrapper{padding:.5rem .25rem 0 0;border-left:0 none;border-right:2px solid rgba(186,187,177,.5)}.l5r5e.sheet .sheet-header .attributes-wrapper li:before{left:auto;right:-0.25rem}.l5r5e.sheet .sheet-header .attributes-wrapper li.focus-content:before{width:0}.l5r5e.sheet .sheet-header .attributes-wrapper li.vigilance-content:before{width:160%}.l5r5e.sheet .sheet-header .attributes-wrapper li.void-content:before{width:90%}.l5r5e.sheet .sheet-header .attributes-wrapper label{flex-direction:row;width:100%}.l5r5e.sheet .sheet-header .attributes-wrapper label strong{text-align:right}.l5r5e.sheet .sheet-header .attributes-wrapper label:nth-child(2) strong{position:absolute;top:0;left:0;font-size:.65rem;width:3rem;color:rgba(0,0,0,.25)}.l5r5e.sheet .sheet-header .attributes-wrapper label:nth-child(2) input{font-size:1.25rem;padding-top:.75rem}.l5r5e.sheet .sheet-header .attributes-wrapper .endurance-content label:nth-child(1) strong,.l5r5e.sheet .sheet-header .attributes-wrapper .composure-content label:nth-child(1) strong{flex:0 0 calc(100% - 6rem)}.l5r5e.sheet .sheet-header .attributes-wrapper .endurance-content label:nth-child(1) input,.l5r5e.sheet .sheet-header .attributes-wrapper .composure-content label:nth-child(1) input{flex:0 0 5.5rem;padding-right:3rem}.l5r5e.sheet .sheet-header .attributes-wrapper .endurance-content label:nth-child(2),.l5r5e.sheet .sheet-header .attributes-wrapper .composure-content label:nth-child(2){position:absolute;right:0;width:3.5rem}.l5r5e.sheet .sheet-header .attributes-wrapper .increment-control{line-height:13px;position:relative;top:.2rem}.l5r5e.sheet .sheet-header .attributes-wrapper .void-content{width:100%;padding-top:.25rem}.l5r5e.sheet .sheet-header .attributes-wrapper .void-content label{margin:0}.l5r5e.sheet .sheet-header .attributes-wrapper .void-content label strong{flex:1 0 calc(100% - 5rem);padding:0 .25rem}.l5r5e.sheet .sheet-header .attributes-wrapper .void-content label strong:after{content:"/";position:absolute;right:1.25rem;font-size:1rem;bottom:.6rem;color:#764f40}.l5r5e.sheet .sheet-header .attributes-wrapper .void-content label input:nth-child(2){flex:3rem;padding-right:1.25rem}.l5r5e.sheet .sheet-header .attributes-wrapper .void-content label input:last-child{flex:1;border:0 none;font-size:1rem;text-align:right;padding-left:.25rem;padding-top:.75rem;position:absolute;right:.25rem;width:1rem}.l5r5e.sheet .sheet-header .attributes-wrapper li{display:flex}.l5r5e.sheet .sheet-header .attributes-wrapper li p{display:none;z-index:2;position:absolute;background:rgba(0,0,0,.5);color:#fff;line-height:1.5rem;text-align:center;width:100%;padding:.25rem;bottom:-2.25rem;right:-0.25rem;--notchSize: 0.5rem;-webkit-clip-path:polygon(0% 0, 0 0%, 100% 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)));clip-path:polygon(0% 0, 0 0%, 100% 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)))}.l5r5e.sheet .sheet-header .attributes-wrapper li:hover p{display:block;height:auto}.l5r5e.sheet .sheet-header .attributes-wrapper .focus-content p,.l5r5e.sheet .sheet-header .attributes-wrapper .vigilance-content p{bottom:-3.75rem}.l5r5e.sheet .sheet-header .attribute-label{position:relative}.l5r5e.sheet .sheet-header .identity-content .attribute-label:before{height:calc(100% - .6rem);width:calc(100% - .65rem);left:auto;top:.15rem;right:.85rem}.l5r5e.sheet .sheet-header .identity-content li:nth-child(3) .attribute-label:before,.l5r5e.sheet .sheet-header .identity-content li:nth-child(5) .attribute-label:before{height:calc(100% - .6rem);width:calc(100% + .25rem);left:auto;top:.15rem;right:-0.15rem}.l5r5e.sheet .sheet-header .attributes-wrapper .attribute-label:nth-child(2):before{left:auto;right:3.15rem;width:2.6rem}.l5r5e.sheet .sheet-header .attributes-wrapper .attribute-label:before{left:auto;right:.15rem}.l5r5e.sheet .sheet-header .void-content .attribute-label:before{width:3.85rem}.l5r5e.sheet article{background:rgba(255,255,255,.25);padding:.5rem;flex-wrap:wrap;min-height:calc(100% - 3.25rem)}.l5r5e.sheet article fieldset h3{font-size:1.25rem;width:100%;text-align:left;line-height:2rem;color:#764f40;border-bottom:1px solid}.l5r5e.sheet article fieldset h3 .item-control.item-add{float:right;font-size:.75rem;line-height:.75rem;border:1px solid;padding:.25rem;margin:.25rem;color:#fff;background:#764f40}.l5r5e.sheet article fieldset h3 .item-control.item-add:hover{opacity:.75}.l5r5e.sheet article .narrative-content{flex:100%;display:flex}.l5r5e.sheet article .narrative-content fieldset{flex:0 0 calc(50% - .5rem)}.l5r5e.sheet article .narrative-content fieldset label{width:100%}.l5r5e.sheet article .narrative-list{flex:0 0 50%}.l5r5e.sheet article .narrative-list fieldset{flex:0 0 50%}.l5r5e.sheet article .narrative-list fieldset label{width:100%}.l5r5e.sheet article .narrative-fluff{flex:0 0 50%;display:flex;flex-direction:column}.l5r5e.sheet article .narrative-fluff .narrative-description,.l5r5e.sheet article .narrative-fluff .narrative-note{flex:1;font-size:.85rem;max-height:24rem}.l5r5e.sheet article .narrative-fluff .narrative-description .editor-container,.l5r5e.sheet article .narrative-fluff .narrative-note .editor-container{min-height:18rem}.l5r5e.sheet article .techniques-wrapper{padding-left:.25rem}.l5r5e.sheet article .techniques-wrapper fieldset{margin:0 0 0 .25rem}.l5r5e.sheet article .techniques-wrapper .dice-picker-tech:hover{text-shadow:0 0 2px red}.l5r5e.sheet article .techniques-wrapper .checklist{display:flex;flex-wrap:wrap;font-size:.85rem;margin:0 0 .25rem .25rem;padding:.5rem;background:rgba(186,187,177,.5);--notchSize: 0.25rem;-webkit-clip-path:polygon(0% 0, var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% 100%, 100% 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)));clip-path:polygon(0% 0, var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% 100%, 100% 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)))}.l5r5e.sheet article .techniques-wrapper .checklist i{color:rgba(0,0,0,.5);margin-right:.5rem}.l5r5e.sheet article .techniques-wrapper .checklist label{flex:0 0 auto;margin:0 .25rem .25rem;padding:0 .5rem;color:#5a6e5a;background:rgba(255,255,255,.5);border:1px solid #5a6e5a;border-radius:1rem}.l5r5e.sheet article .techniques-wrapper .checklist input{margin:.25rem 0 0 0;height:.65rem;width:.65rem}.l5r5e.sheet article .stances-content{flex:100%;height:100%;align-self:flex-start}.l5r5e.sheet article .stances-content .item-list{position:relative;padding-top:2rem;margin:0}.l5r5e.sheet article .stances-content .stance-content{padding:0;margin:0}.l5r5e.sheet article .stances-content .stance-content label{display:block;position:absolute;top:0;left:0;width:20%;line-height:1.5rem;padding:.25rem;color:#fff}.l5r5e.sheet article .stances-content .stance-content label.earth{background:#699678}.l5r5e.sheet article .stances-content .stance-content label.air{background:#917896;left:20%}.l5r5e.sheet article .stances-content .stance-content label.water{background:#5f919b;left:40%}.l5r5e.sheet article .stances-content .stance-content label.fire{background:#9b7350;left:60%}.l5r5e.sheet article .stances-content .stance-content label.void{background:#4b4641;left:80%}.l5r5e.sheet article .stances-content .stance-content label input{float:right;position:relative;top:.3rem;right:.25rem}.l5r5e.sheet article .weapons-content,.l5r5e.sheet article .armors-content{flex:0 0 calc(50% - .5rem)}.l5r5e.sheet .xp,.l5r5e.sheet .money-wrapper{flex:100%;flex-direction:row;color:#000}.l5r5e.sheet .xp label,.l5r5e.sheet .money-wrapper label{display:flex;flex:33.3333333333%;padding:.5rem;font-size:.85rem;align-items:center}.l5r5e.sheet .xp label input,.l5r5e.sheet .money-wrapper label input{margin-left:.5rem}.l5r5e.sheet .xp .xp-buttons,.l5r5e.sheet .xp .money-buttons,.l5r5e.sheet .money-wrapper .xp-buttons,.l5r5e.sheet .money-wrapper .money-buttons{line-height:13px;padding-left:.3em}.l5r5e.sheet .xp .increment-control,.l5r5e.sheet .money-wrapper .increment-control{display:flex;flex-direction:column;align-items:center;padding-left:.2rem;flex:none}.l5r5e.sheet table{border:none;font-size:.85rem;color:#000;text-align:left}.l5r5e.sheet table thead{border:none;font-family:"BrushtipTexe",sans-serif;font-weight:normal}.l5r5e.sheet table thead th{padding-left:.5rem;padding-right:.5rem;font-size:1rem}.l5r5e.sheet table thead th:first-child{flex:calc(100% - 16rem);padding-left:.5rem;text-align:left}.l5r5e.sheet table thead th:nth-child(2){flex:0 0 2rem}.l5r5e.sheet table thead th:nth-child(3),.l5r5e.sheet table thead th:nth-child(4){flex:0 0 4rem}.l5r5e.sheet table tbody{border:none}.l5r5e.sheet table tbody .curriculum{flex:0 0 2rem}.l5r5e.sheet table tbody .name{flex:calc(100% - 13rem);padding-left:.5rem;text-align:left}.l5r5e.sheet table tbody .xp,.l5r5e.sheet table tbody .rank{flex:0 0 4rem}.l5r5e.sheet table tbody .actions{flex:0 0 3rem;font-size:.75rem}.l5r5e.sheet table tbody .actions ul{display:flex;flex-direction:row}.l5r5e.sheet table tbody .actions ul li{flex:0 0 1rem}.l5r5e.sheet table tbody .actions ul li:hover{color:rgba(255,0,0,.75)}.l5r5e.sheet table tbody .tfoot{padding:.25 .5rem;background:rgba(186,187,177,.5);text-shadow:none;border-top:rgba(186,187,177,.5);text-align:center}.l5r5e.sheet table tbody img{width:16px;height:16px;border:none;display:inline}.l5r5e.sheet table tfoot{border:none;-moz-text-align-last:center;text-align-last:center}.l5r5e.sheet .inventory .items-wrapper h3{background:rgba(90,110,90,.15);color:#5a6e5a;border-bottom:1px solid #fff;font-family:"Caballar",sans-serif;font-size:1rem;padding-left:.5rem;margin:0}.l5r5e.sheet .inventory .items-wrapper .item-list{display:block}.l5r5e.sheet.actor .initiative-wrapper,.l5r5e.sheet.npc .initiative-wrapper{flex:100%;height:100%;align-self:flex-start;text-align:center;display:block}.l5r5e.sheet.actor .initiative button,.l5r5e.sheet.npc .initiative button{width:auto;min-width:20%;margin:0 .25rem .25rem;padding:0 .5rem;color:#5a6e5a;background:rgba(255,255,255,.5);border:1px solid #5a6e5a;border-radius:1rem;line-height:1.5rem;height:1.5rem}.l5r5e.sheet.actor .initiative button:focus,.l5r5e.sheet.npc .initiative button:focus{box-shadow:none}.l5r5e.sheet.actor .limited h1,.l5r5e.sheet.npc .limited h1{margin:.5rem 0}.l5r5e.sheet.actor .limited img.full,.l5r5e.sheet.npc .limited img.full{flex:initial;height:auto;width:-moz-max-content;width:max-content;border:0 none;margin:0 auto}.l5r5e.sheet.actor .limited .sheet-header,.l5r5e.sheet.npc .limited .sheet-header{flex:none;height:auto;width:100%}.l5r5e.sheet.actor .limited ul,.l5r5e.sheet.npc .limited ul{display:flex;flex-wrap:wrap}.l5r5e.sheet.actor .limited ul li,.l5r5e.sheet.npc .limited ul li{flex:50%;padding:.25rem 0}.l5r5e.sheet.actor .limited ul li input,.l5r5e.sheet.npc .limited ul li input{width:75%;float:right}.l5r5e.sheet.actor .limited ul li:nth-child(1),.l5r5e.sheet.actor .limited ul li:nth-child(2),.l5r5e.sheet.npc .limited ul li:nth-child(1),.l5r5e.sheet.npc .limited ul li:nth-child(2){flex:calc(50% - 5rem);margin-right:1rem}.l5r5e.sheet.actor .limited ul li:nth-child(3),.l5r5e.sheet.npc .limited ul li:nth-child(3){flex:auto}.l5r5e.sheet.actor .limited ul li:nth-child(3) input,.l5r5e.sheet.npc .limited ul li:nth-child(3) input{width:2rem}.l5r5e.sheet.actor .limited ul li:nth-child(4),.l5r5e.sheet.actor .limited ul li:nth-child(5),.l5r5e.sheet.npc .limited ul li:nth-child(4),.l5r5e.sheet.npc .limited ul li:nth-child(5){flex:calc(50% - 1rem);margin-right:1rem}.l5r5e.sheet.actor .limited ul li:nth-child(4) input,.l5r5e.sheet.actor .limited ul li:nth-child(5) input,.l5r5e.sheet.npc .limited ul li:nth-child(4) input,.l5r5e.sheet.npc .limited ul li:nth-child(5) input{font-size:1rem}.l5r5e.sheet nav.sheet-tabs{flex:100%}.l5r5e.sheet.journal .journal-page-content ul{margin:.5rem 0}.l5r5e.sheet.journal .journal-page-content li{list-style-type:initial;margin:.5rem 0 .5rem 1.5rem;padding:0}.l5r5e.sheet .editable[data-lang=Español] .sheet-header .focus-content .attribute-label strong,.l5r5e.sheet .editable[data-lang=Español] .sheet-header .vigilance-content .attribute-label strong{font-size:.7rem;line-height:1.1rem}.l5r5e.npc .sheet-header h1:before{top:-3.75rem}.l5r5e.npc .sheet-header img{flex:0 0 90px;height:90px;width:90px}.l5r5e.npc .sheet-header fieldset{flex:1 1 100%;min-height:2rem;width:100%;margin:0}.l5r5e.npc .sheet-header .header-fields{padding:0}.l5r5e.npc .sheet-header .identity-wrapper{flex:1 1 100%}.l5r5e.npc .sheet-header .identity-wrapper h1{margin:0 .25rem 1rem 1rem}.l5r5e.npc .sheet-header .identity-wrapper .identity-list{flex:0 0 100%;display:flex;margin:.25rem 0 .5rem}.l5r5e.npc .sheet-header .identity-wrapper .identity-list li{flex:1;flex-wrap:wrap;display:flex}.l5r5e.npc .sheet-header .identity-wrapper .identity-list li select{width:100%;background:rgba(255,255,255,.5);border:0 none;text-transform:capitalize;color:#764f40;font-family:"PatrickHand",sans-serif;font-weight:bold;font-size:1rem;letter-spacing:.15rem}.l5r5e.npc .sheet-header .identity-wrapper .identity-list li i,.l5r5e.npc .sheet-header .identity-wrapper .identity-list li input{font-size:1.25rem;height:1.5rem;line-height:1.5rem;width:7.25rem;margin:auto;text-align:center}.l5r5e.npc .sheet-header .affinities{display:flex;flex-wrap:wrap}.l5r5e.npc .sheet-header .affinities select{position:relative;background:rgba(0,0,0,0);border:0 none;margin:0;padding:0;text-align:left;font-weight:bold;margin:0 0 .25rem 0;color:#5a6e5a}.l5r5e.npc .sheet-header .affinities input{flex:1rem;font-size:1rem;height:1.5rem}.l5r5e.npc .sheet-header .social-content{margin-bottom:.5rem}.l5r5e.npc .sheet-header .social-content .attitude{height:1.5rem;padding-left:.25rem}.l5r5e.npc .sheet-header .social-content .attitude input{height:1.5rem;flex:1;margin-right:0}.l5r5e.npc .sheet-body{padding:0}.l5r5e.npc .npc-skill{display:flex;width:100%;line-height:2rem;font-size:.75rem;margin:.5rem 0;text-align:center}.l5r5e.npc .npc-skill li{flex:1;padding:.25rem;text-transform:uppercase;color:#fff}.l5r5e.npc .npc-skill li:nth-child(1){background:#4b4641}.l5r5e.npc .npc-skill li:nth-child(2){background:#699678}.l5r5e.npc .npc-skill li:nth-child(3){background:#9b7350}.l5r5e.npc .npc-skill li:nth-child(4){background:#917896}.l5r5e.npc .npc-skill li:nth-child(5){flex:1.25;background:#5f919b}.l5r5e.npc .npc-skill input[type=number]{float:right;font-size:1.25rem;height:2rem;width:1rem;margin:0;padding:0;border:0 none;background:rgba(0,0,0,0);color:#fff}.l5r5e.npc article{min-height:auto}.l5r5e.npc article fieldset,.l5r5e.npc article .checklist{flex:0 0 calc(100% - .5rem)}.l5r5e.npc article .items-content{flex:0 0 calc(100% - .5rem);margin:1rem .25rem 0}.l5r5e.npc article .weapons-content{flex:1}.l5r5e.npc article .initiative-wrapper{margin-bottom:.5rem}.l5r5e.npc article:last-child{padding-bottom:1rem}.l5r5e.npc article .techniques-wrapper{padding-left:.5rem}.l5r5e.npc article .techniques-wrapper fieldset,.l5r5e.npc article .techniques-wrapper .checklist{flex:100%;margin:0}.l5r5e.npc .npc-note .editor{min-height:6rem;max-height:12rem}.l5r5e.npc .narrative-note{flex:0 0 calc(50% - .25rem)}.l5r5e.character-generator-dialog form .body{clear:both;display:flex;flex-direction:column;flex-wrap:wrap;margin:3px 0;align-items:start}.l5r5e.character-generator-dialog input[type=number]{width:auto}.l5r5e.character-generator-dialog form .form-group{border-bottom:solid rgba(128,128,128,.2392156863) 1px}.l5r5e.character-generator-dialog form .form-group.smaller>label{flex:10}.l5r5e.character-generator-dialog form .form-group.smaller .form-fields{flex:1}.l5r5e.sheet.army .sheet-header{height:9.5rem}.l5r5e.sheet.army .sheet-header h1{flex:1}.l5r5e.sheet.army .sheet-header .readiness{flex:0 0 100%;align-items:flex-start}.l5r5e.sheet.army .sheet-header .readiness ul{display:flex;position:relative;padding:.25rem;height:4rem}.l5r5e.sheet.army .sheet-header .readiness ul li{flex:25%;display:flex;flex-direction:column;align-items:center;position:relative}.l5r5e.sheet.army .sheet-header .readiness ul li .increment-control{position:absolute;right:-0.7rem;top:15%;display:flex;flex-direction:column;gap:.1rem;line-height:1}.l5r5e.sheet.army .sheet-header .readiness ul li strong{color:#5a6e5a;text-align:center;text-transform:uppercase;font-size:.75rem}.l5r5e.sheet.army .sheet-header .readiness ul li label{position:relative;display:flex;align-items:center;justify-content:center}.l5r5e.sheet.army .sheet-header .readiness ul li input{background:rgba(0,0,0,0);border:0 none;text-align:center;margin:0;padding:0;width:2rem}.l5r5e.sheet.army .sheet-header .readiness ul li:after{content:"";width:2rem;height:2rem;position:absolute;background:rgba(0,0,0,0) url("../assets/icons/circle.svg") no-repeat 0 0;background-size:contain;opacity:.25;z-index:-1}.l5r5e.sheet.army .sheet-header .readiness ul li:nth-child(1):after{transform:rotate(0deg)}.l5r5e.sheet.army .sheet-header .readiness ul li:nth-child(2):after{transform:rotate(90deg)}.l5r5e.sheet.army .sheet-header .readiness ul li:nth-child(3):after{transform:rotate(180deg)}.l5r5e.sheet.army .sheet-header .readiness ul li:nth-child(4):after{transform:rotate(-90deg)}.l5r5e.sheet.army .sheet-header .readiness h2{flex:0 0 100%}.l5r5e.sheet.army .sheet-body{height:calc(100% - 11.5rem)}.l5r5e.sheet.army .sheet-body .tab{height:calc(100% - 3.5rem)}.l5r5e.sheet.army .sheet-body .tab.army .warlord,.l5r5e.sheet.army .sheet-body .tab.army .commander{display:flex;flex-wrap:wrap}.l5r5e.sheet.army .sheet-body .tab.army .warlord .fa-sign-in-alt,.l5r5e.sheet.army .sheet-body .tab.army .commander .fa-sign-in-alt{transform:rotate(90deg)}.l5r5e.sheet.army .sheet-body .tab.army .warlord fieldset,.l5r5e.sheet.army .sheet-body .tab.army .commander fieldset{margin-top:.25rem;margin-bottom:.25rem}.l5r5e.sheet.army .sheet-body .tab.army .warlord fieldset strong,.l5r5e.sheet.army .sheet-body .tab.army .commander fieldset strong{color:#5a6e5a}.l5r5e.sheet.army .sheet-body .tab.army .warlord fieldset label,.l5r5e.sheet.army .sheet-body .tab.army .commander fieldset label{flex:100%}.l5r5e.sheet.army .sheet-body .tab.army .warlord fieldset p,.l5r5e.sheet.army .sheet-body .tab.army .commander fieldset p{width:100%}.l5r5e.sheet.army .sheet-body .tab.army .warlord fieldset textarea,.l5r5e.sheet.army .sheet-body .tab.army .commander fieldset textarea{height:calc(100% - 22px)}.l5r5e.sheet.army .sheet-body .tab.army .warlord fieldset .actor-remove-control,.l5r5e.sheet.army .sheet-body .tab.army .commander fieldset .actor-remove-control{font-size:12px}.l5r5e.sheet.army .sheet-body .tab.army .standing{flex:0 0 100%;display:flex;flex-wrap:wrap}.l5r5e.sheet.army .sheet-body .tab.army .standing h2{flex:0 0 100%}.l5r5e.sheet.army .sheet-body .tab.army .standing ul{display:flex;position:relative}.l5r5e.sheet.army .sheet-body .tab.army .standing ul li{flex:33%;display:inline-grid;position:relative;padding:.25rem;flex-direction:column-reverse}.l5r5e.sheet.army .sheet-body .tab.army .standing ul li strong{text-align:center}.l5r5e.sheet.army .sheet-body .tab.army .standing ul li input{background:rgba(0,0,0,0);border:0 none;text-align:center}.l5r5e.sheet.army .sheet-body .tab.army .standing ul li:after{content:"";width:2rem;height:2rem;position:absolute;right:calc(50% - .95rem);top:calc(50% - .2rem);background:rgba(0,0,0,0) url("../assets/icons/circle.svg") no-repeat 0 0;background-size:contain;opacity:.25;z-index:-1}.l5r5e.sheet.army .sheet-body .tab.army .standing ul li:nth-child(1):after{transform:rotate(0deg)}.l5r5e.sheet.army .sheet-body .tab.army .standing ul li:nth-child(2):after{transform:rotate(90deg)}.l5r5e.sheet.army .sheet-body .tab.army .standing ul li:nth-child(3):after{transform:rotate(180deg)}.l5r5e.sheet.army .sheet-body .tab.army .warlord-name{display:flex;flex:100%;flex-wrap:wrap;margin:0;padding:.5rem .5rem 0;background:rgba(186,187,177,.5);--notchSize: 0.25rem}.l5r5e.sheet.army .sheet-body .tab.army .warlord-name i{color:rgba(0,0,0,.5);margin-right:.5rem}.l5r5e.sheet.army .sheet-body .tab.army .warlord-name label{flex:0 0 auto !important;height:1.65rem;margin:0;padding:0 .5rem;color:#5a6e5a;background:rgba(255,255,255,.5);border:1px solid #5a6e5a;border-radius:1rem}.l5r5e.sheet.army .sheet-body .tab.others{flex-direction:column}.l5r5e.sheet.army .sheet-body .tab.others .editor-container{min-height:8rem;max-height:14rem}.l5r5e nav.sheet-tabs{height:3rem;line-height:2rem;font-family:"Caballar",sans-serif;letter-spacing:-0.05rem;font-size:1rem;border:0 none;border-bottom:1px solid rgba(186,187,177,.5);margin-bottom:0;background:rgba(255,255,255,.5);color:rgba(0,0,0,.5);display:flex;flex-direction:row;--notchSize: 0.5rem;-webkit-clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), 100% 100%, var(--notchSize) 100%, 0% 100%);clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), 100% 100%, var(--notchSize) 100%, 0% 100%)}.l5r5e nav .item{flex:1}.l5r5e nav .item:hover{background-color:#5a6e5a;color:rgba(255,255,255,.65);text-shadow:none;-webkit-clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% 100%, 0 100%, 0% 0%, 0% 100%);clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% 100%, 0 100%, 0% 0%, 0% 100%)}.l5r5e nav .item.active{background-color:rgba(73,12,11,.85);color:#fff;-webkit-clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% 100%, 0 100%, 0% 0%, 0% 100%);clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% 100%, 0 100%, 0% 0%, 0% 100%)}.l5r5e nav .item.active:hover{background-color:rgba(73,12,11,.85);cursor:default}.l5r5e .rings{display:flex;flex-wrap:wrap;color:rgba(255,255,255,.65)}.l5r5e .rings #earth,.l5r5e .rings #air,.l5r5e .rings #water,.l5r5e .rings #fire,.l5r5e .rings #void{position:relative;flex:1 1 50%;text-align:center}.l5r5e .rings #earth i.i_earth,.l5r5e .rings #earth i.i_water,.l5r5e .rings #earth i.i_fire,.l5r5e .rings #earth i.i_air,.l5r5e .rings #earth i.i_void,.l5r5e .rings #air i.i_earth,.l5r5e .rings #air i.i_water,.l5r5e .rings #air i.i_fire,.l5r5e .rings #air i.i_air,.l5r5e .rings #air i.i_void,.l5r5e .rings #water i.i_earth,.l5r5e .rings #water i.i_water,.l5r5e .rings #water i.i_fire,.l5r5e .rings #water i.i_air,.l5r5e .rings #water i.i_void,.l5r5e .rings #fire i.i_earth,.l5r5e .rings #fire i.i_water,.l5r5e .rings #fire i.i_fire,.l5r5e .rings #fire i.i_air,.l5r5e .rings #fire i.i_void,.l5r5e .rings #void i.i_earth,.l5r5e .rings #void i.i_water,.l5r5e .rings #void i.i_fire,.l5r5e .rings #void i.i_air,.l5r5e .rings #void i.i_void{font-size:5rem;line-height:4.75rem}.l5r5e .rings #earth label,.l5r5e .rings #air label,.l5r5e .rings #water label,.l5r5e .rings #fire label,.l5r5e .rings #void label{position:relative;width:5rem;line-height:0;float:right}.l5r5e .rings #earth label.stance-active strong,.l5r5e .rings #air label.stance-active strong,.l5r5e .rings #water label.stance-active strong,.l5r5e .rings #fire label.stance-active strong,.l5r5e .rings #void label.stance-active strong{-webkit-text-decoration:underline 2px;text-decoration:underline 2px}.l5r5e .rings #earth input,.l5r5e .rings #air input,.l5r5e .rings #water input,.l5r5e .rings #fire input,.l5r5e .rings #void input{position:absolute;height:2rem;width:2rem;border-radius:100%;top:0;left:0;text-align:center;font-size:1rem;border:2px solid rgba(186,187,177,.5);color:rgba(255,255,255,.65)}.l5r5e .rings #earth input:hover,.l5r5e .rings #air input:hover,.l5r5e .rings #water input:hover,.l5r5e .rings #fire input:hover,.l5r5e .rings #void input:hover{border:2px solid rgba(255,0,0,.75);text-shadow:0 0 3px red;box-shadow:0 0 3px inset red}.l5r5e .rings #earth{float:right;color:#699678}.l5r5e .rings #earth input{top:auto;right:0;bottom:-0.9rem;left:auto;background:#699678}.l5r5e .rings #earth label strong{position:absolute;bottom:.75rem;left:-1.75rem}.l5r5e .rings #air{color:#917896}.l5r5e .rings #air input{top:auto;right:auto;bottom:-0.9rem;left:0;background:#917896}.l5r5e .rings #air label{float:left}.l5r5e .rings #air label strong{position:absolute;bottom:.75rem;right:-1rem}.l5r5e .rings #water{float:right;color:#5f919b;padding-right:2rem}.l5r5e .rings #water input{top:17%;right:-1.25rem;bottom:auto;left:auto;background:#5f919b}.l5r5e .rings #water label strong{position:absolute;bottom:-0.75rem;right:2rem}.l5r5e .rings #fire{color:#9b7350;padding-left:2rem}.l5r5e .rings #fire input{top:17%;right:auto;bottom:auto;left:-1.25rem;background:#9b7350}.l5r5e .rings #fire label{float:left}.l5r5e .rings #fire label strong{position:absolute;bottom:-0.75rem;right:2rem}.l5r5e .rings #void{top:-2rem;margin:0 calc(50% - 2.5rem);color:#4b4641}.l5r5e .rings #void input{top:-1rem;right:auto;bottom:auto;left:30%;background:#4b4641}.l5r5e .rings #void label strong{position:absolute;bottom:-0.75rem;left:1.75rem}.l5r5e.sheet article .skills-wrapper,.l5r5e.sheet article .techniques-wrapper{flex:50%}.l5r5e.sheet article .skills-wrapper>li,.l5r5e.sheet article .techniques-wrapper>li{display:flex;flex-wrap:wrap;font-size:.85rem;margin:0 0 1rem;border:1px solid rgba(186,187,177,.5);--notchSize: 0.75rem;-webkit-clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, 100% 0, 100% 0, 100% 100%, 100% 100%, 0 100%, 0 100%);clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, 100% 0, 100% 0, 100% 100%, 100% 100%, 0 100%, 0 100%)}.l5r5e.sheet article .skills-wrapper>li h4,.l5r5e.sheet article .techniques-wrapper>li h4{flex:100%;margin:0;padding:.5rem .5rem 0;text-align:center;background:rgba(186,187,177,.5);color:#5a6e5a;--notchSize: 0.5rem;-webkit-clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, 100% 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% 100%);clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, 100% 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% 100%)}.l5r5e.sheet article .skills-wrapper>li ul,.l5r5e.sheet article .techniques-wrapper>li ul{flex:50%;padding:.25rem .5rem .25rem 0}.l5r5e.sheet article .skills-wrapper>li ul li,.l5r5e.sheet article .techniques-wrapper>li ul li{text-align:left;line-height:2rem;margin:.25rem 0}.l5r5e.sheet article .skills-wrapper>li ul li.skill,.l5r5e.sheet article .techniques-wrapper>li ul li.skill{text-align:right}.l5r5e.sheet article .skills-wrapper>li ul li.skill span,.l5r5e.sheet article .techniques-wrapper>li ul li.skill span{color:rgba(0,0,0,.5)}.l5r5e.sheet article .skills-wrapper>li ul li.skill span[data-skill=melee],.l5r5e.sheet article .skills-wrapper>li ul li.skill span[data-skill=ranged],.l5r5e.sheet article .skills-wrapper>li ul li.skill span[data-skill=unarmed],.l5r5e.sheet article .techniques-wrapper>li ul li.skill span[data-skill=melee],.l5r5e.sheet article .techniques-wrapper>li ul li.skill span[data-skill=ranged],.l5r5e.sheet article .techniques-wrapper>li ul li.skill span[data-skill=unarmed]{float:left;line-height:1rem;width:calc(100% - 2rem)}.l5r5e.sheet article .skills-wrapper>li ul.skill-category-ring-actions,.l5r5e.sheet article .techniques-wrapper>li ul.skill-category-ring-actions{padding:.25rem 0 .25rem .5rem;border-left:1px solid rgba(186,187,177,.5)}.l5r5e.sheet article .skills-wrapper>li input,.l5r5e.sheet article .techniques-wrapper>li input{width:1.75rem;height:1.75rem;text-align:center}.l5r5e.sheet article .skills-wrapper>li:last-child,.l5r5e.sheet article .techniques-wrapper>li:last-child{margin:0}.l5r5e .item-list{flex:100%}.l5r5e .item-list .tab[data-tab]{display:none}.l5r5e .item-list .item .item-header{display:flex}.l5r5e .item-list .item .item-header .item-img{flex:0 0 32px;padding-right:.25rem}.l5r5e .item-list .item .item-header .item-img img{border:none}.l5r5e .item-list .item .item-header .item-name{flex:1 1 auto;font-size:1rem;line-height:1rem;color:#764f40;align-content:center}.l5r5e .item-list .item .item-header .removed{text-decoration-line:line-through}.l5r5e .item-list .item .item-header .item-edit,.l5r5e .item-list .item .item-header .item-delete,.l5r5e .item-list .item .item-header .item-equip,.l5r5e .item-list .item .item-header .technique-edit,.l5r5e .item-list .item .item-header .technique-delete,.l5r5e .item-list .item .item-header .peculiarity-edit,.l5r5e .item-list .item .item-header .peculiarity-delete,.l5r5e .item-list .item .item-header .property-edit,.l5r5e .item-list .item .item-header .property-delete{line-height:1rem;font-size:.75rem;flex:0 0 1rem;padding:0 .1rem;color:#000}.l5r5e .item-list .item .item-header .icon-stat-container{line-height:1rem;font-size:.75rem;padding:0 .25rem;color:#000}.l5r5e .item-list .item .item-header .item-edit:hover,.l5r5e .item-list .item .item-header .item-delete:hover,.l5r5e .item-list .item .item-header .item-equip:hover,.l5r5e .item-list .item .item-header .technique-edit:hover,.l5r5e .item-list .item .item-header .technique-delete:hover,.l5r5e .item-list .item .item-header .peculiarity-edit:hover,.l5r5e .item-list .item .item-header .peculiarity-delete:hover,.l5r5e .item-list .item .item-header .property-edit:hover,.l5r5e .item-list .item .item-header .property-delete:hover{text-shadow:0 0 3px red;color:#000}.l5r5e .item-list .item .item-properties{display:flex;flex-direction:row}.l5r5e .item-list .item .item-properties>li{margin:.25rem .1rem;padding:.1rem .5rem;background-color:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.65);border-radius:1rem;width:auto;font-size:.75rem;color:#000}.l5r5e .item-list .item .item-properties>li:first-child{margin-left:0}.l5r5e .item-list .item .item-properties>li:last-child{margin-right:0}.l5r5e .item-list .item .item-properties .equip-readied-control:hover{color:#963c41;background:#fff}.l5r5e .item-list .item p{font-size:.85rem;margin:0;padding:0 .5rem;max-width:100%}.l5r5e .item-list .item p:first-child{padding-top:.5rem}.l5r5e .item-list .item p:last-child{padding-bottom:.5rem}.l5r5e.advancement .sheet-header,.l5r5e.army-cohort .sheet-header,.l5r5e.army-fortification .sheet-header,.l5r5e.armor .sheet-header,.l5r5e.bond .sheet-header,.l5r5e.item .sheet-header,.l5r5e.item-pattern .sheet-header,.l5r5e.peculiarity .sheet-header,.l5r5e.property .sheet-header,.l5r5e.signature-scroll .sheet-header,.l5r5e.technique .sheet-header,.l5r5e.title .sheet-header,.l5r5e.weapon .sheet-header{margin-bottom:.5rem}.l5r5e.advancement .sheet-header img,.l5r5e.army-cohort .sheet-header img,.l5r5e.army-fortification .sheet-header img,.l5r5e.armor .sheet-header img,.l5r5e.bond .sheet-header img,.l5r5e.item .sheet-header img,.l5r5e.item-pattern .sheet-header img,.l5r5e.peculiarity .sheet-header img,.l5r5e.property .sheet-header img,.l5r5e.signature-scroll .sheet-header img,.l5r5e.technique .sheet-header img,.l5r5e.title .sheet-header img,.l5r5e.weapon .sheet-header img{flex:0 0 90px;height:90px;width:90px;background:rgba(255,255,255,.25)}.l5r5e.advancement .sheet-header h1 input,.l5r5e.army-cohort .sheet-header h1 input,.l5r5e.army-fortification .sheet-header h1 input,.l5r5e.armor .sheet-header h1 input,.l5r5e.bond .sheet-header h1 input,.l5r5e.item .sheet-header h1 input,.l5r5e.item-pattern .sheet-header h1 input,.l5r5e.peculiarity .sheet-header h1 input,.l5r5e.property .sheet-header h1 input,.l5r5e.signature-scroll .sheet-header h1 input,.l5r5e.technique .sheet-header h1 input,.l5r5e.title .sheet-header h1 input,.l5r5e.weapon .sheet-header h1 input{height:5.5rem}.l5r5e.advancement fieldset input[name="system.effects"],.l5r5e.army-cohort fieldset input[name="system.effects"],.l5r5e.army-fortification fieldset input[name="system.effects"],.l5r5e.armor fieldset input[name="system.effects"],.l5r5e.bond fieldset input[name="system.effects"],.l5r5e.item fieldset input[name="system.effects"],.l5r5e.item-pattern fieldset input[name="system.effects"],.l5r5e.peculiarity fieldset input[name="system.effects"],.l5r5e.property fieldset input[name="system.effects"],.l5r5e.signature-scroll fieldset input[name="system.effects"],.l5r5e.technique fieldset input[name="system.effects"],.l5r5e.title fieldset input[name="system.effects"],.l5r5e.weapon fieldset input[name="system.effects"]{text-align:left}.l5r5e.advancement .sheet-body,.l5r5e.army-cohort .sheet-body,.l5r5e.army-fortification .sheet-body,.l5r5e.armor .sheet-body,.l5r5e.bond .sheet-body,.l5r5e.item .sheet-body,.l5r5e.item-pattern .sheet-body,.l5r5e.peculiarity .sheet-body,.l5r5e.property .sheet-body,.l5r5e.signature-scroll .sheet-body,.l5r5e.technique .sheet-body,.l5r5e.title .sheet-body,.l5r5e.weapon .sheet-body{flex:100%;height:calc(100% - 90px - .25rem);align-self:stretch;display:flex;flex-wrap:wrap}.l5r5e.advancement article,.l5r5e.army-cohort article,.l5r5e.army-fortification article,.l5r5e.armor article,.l5r5e.bond article,.l5r5e.item article,.l5r5e.item-pattern article,.l5r5e.peculiarity article,.l5r5e.property article,.l5r5e.signature-scroll article,.l5r5e.technique article,.l5r5e.title article,.l5r5e.weapon article{display:flex;flex-wrap:wrap;min-height:auto}.l5r5e.advancement article label,.l5r5e.army-cohort article label,.l5r5e.army-fortification article label,.l5r5e.armor article label,.l5r5e.bond article label,.l5r5e.item article label,.l5r5e.item-pattern article label,.l5r5e.peculiarity article label,.l5r5e.property article label,.l5r5e.signature-scroll article label,.l5r5e.technique article label,.l5r5e.title article label,.l5r5e.weapon article label{color:#5a6e5a;margin:.25rem;line-height:1.5rem}.l5r5e.advancement article.attributes,.l5r5e.army-cohort article.attributes,.l5r5e.army-fortification article.attributes,.l5r5e.armor article.attributes,.l5r5e.bond article.attributes,.l5r5e.item article.attributes,.l5r5e.item-pattern article.attributes,.l5r5e.peculiarity article.attributes,.l5r5e.property article.attributes,.l5r5e.signature-scroll article.attributes,.l5r5e.technique article.attributes,.l5r5e.title article.attributes,.l5r5e.weapon article.attributes{align-self:flex-start;width:100%;height:6.5rem}.l5r5e.advancement article.attributes #advancement_type,.l5r5e.advancement article.attributes #advancement_skill,.l5r5e.army-cohort article.attributes #advancement_type,.l5r5e.army-cohort article.attributes #advancement_skill,.l5r5e.army-fortification article.attributes #advancement_type,.l5r5e.army-fortification article.attributes #advancement_skill,.l5r5e.armor article.attributes #advancement_type,.l5r5e.armor article.attributes #advancement_skill,.l5r5e.bond article.attributes #advancement_type,.l5r5e.bond article.attributes #advancement_skill,.l5r5e.item article.attributes #advancement_type,.l5r5e.item article.attributes #advancement_skill,.l5r5e.item-pattern article.attributes #advancement_type,.l5r5e.item-pattern article.attributes #advancement_skill,.l5r5e.peculiarity article.attributes #advancement_type,.l5r5e.peculiarity article.attributes #advancement_skill,.l5r5e.property article.attributes #advancement_type,.l5r5e.property article.attributes #advancement_skill,.l5r5e.signature-scroll article.attributes #advancement_type,.l5r5e.signature-scroll article.attributes #advancement_skill,.l5r5e.technique article.attributes #advancement_type,.l5r5e.technique article.attributes #advancement_skill,.l5r5e.title article.attributes #advancement_type,.l5r5e.title article.attributes #advancement_skill,.l5r5e.weapon article.attributes #advancement_type,.l5r5e.weapon article.attributes #advancement_skill{flex:0 0 calc(40% - 2rem);margin:.25rem}.l5r5e.advancement article.attributes select[name="system.skill"],.l5r5e.advancement article.attributes select[name="system.ring"],.l5r5e.advancement article.attributes select[name="system.peculiarity_type"],.l5r5e.advancement article.attributes select[name="system.technique_type"],.l5r5e.army-cohort article.attributes select[name="system.skill"],.l5r5e.army-cohort article.attributes select[name="system.ring"],.l5r5e.army-cohort article.attributes select[name="system.peculiarity_type"],.l5r5e.army-cohort article.attributes select[name="system.technique_type"],.l5r5e.army-fortification article.attributes select[name="system.skill"],.l5r5e.army-fortification article.attributes select[name="system.ring"],.l5r5e.army-fortification article.attributes select[name="system.peculiarity_type"],.l5r5e.army-fortification article.attributes select[name="system.technique_type"],.l5r5e.armor article.attributes select[name="system.skill"],.l5r5e.armor article.attributes select[name="system.ring"],.l5r5e.armor article.attributes select[name="system.peculiarity_type"],.l5r5e.armor article.attributes select[name="system.technique_type"],.l5r5e.bond article.attributes select[name="system.skill"],.l5r5e.bond article.attributes select[name="system.ring"],.l5r5e.bond article.attributes select[name="system.peculiarity_type"],.l5r5e.bond article.attributes select[name="system.technique_type"],.l5r5e.item article.attributes select[name="system.skill"],.l5r5e.item article.attributes select[name="system.ring"],.l5r5e.item article.attributes select[name="system.peculiarity_type"],.l5r5e.item article.attributes select[name="system.technique_type"],.l5r5e.item-pattern article.attributes select[name="system.skill"],.l5r5e.item-pattern article.attributes select[name="system.ring"],.l5r5e.item-pattern article.attributes select[name="system.peculiarity_type"],.l5r5e.item-pattern article.attributes select[name="system.technique_type"],.l5r5e.peculiarity article.attributes select[name="system.skill"],.l5r5e.peculiarity article.attributes select[name="system.ring"],.l5r5e.peculiarity article.attributes select[name="system.peculiarity_type"],.l5r5e.peculiarity article.attributes select[name="system.technique_type"],.l5r5e.property article.attributes select[name="system.skill"],.l5r5e.property article.attributes select[name="system.ring"],.l5r5e.property article.attributes select[name="system.peculiarity_type"],.l5r5e.property article.attributes select[name="system.technique_type"],.l5r5e.signature-scroll article.attributes select[name="system.skill"],.l5r5e.signature-scroll article.attributes select[name="system.ring"],.l5r5e.signature-scroll article.attributes select[name="system.peculiarity_type"],.l5r5e.signature-scroll article.attributes select[name="system.technique_type"],.l5r5e.technique article.attributes select[name="system.skill"],.l5r5e.technique article.attributes select[name="system.ring"],.l5r5e.technique article.attributes select[name="system.peculiarity_type"],.l5r5e.technique article.attributes select[name="system.technique_type"],.l5r5e.title article.attributes select[name="system.skill"],.l5r5e.title article.attributes select[name="system.ring"],.l5r5e.title article.attributes select[name="system.peculiarity_type"],.l5r5e.title article.attributes select[name="system.technique_type"],.l5r5e.weapon article.attributes select[name="system.skill"],.l5r5e.weapon article.attributes select[name="system.ring"],.l5r5e.weapon article.attributes select[name="system.peculiarity_type"],.l5r5e.weapon article.attributes select[name="system.technique_type"]{flex:0 0 calc(40% - .5rem);margin:.25rem}.l5r5e.advancement article.attributes .attribute-value,.l5r5e.advancement article.attributes .attribute,.l5r5e.advancement article.attributes .value,.l5r5e.army-cohort article.attributes .attribute-value,.l5r5e.army-cohort article.attributes .attribute,.l5r5e.army-cohort article.attributes .value,.l5r5e.army-fortification article.attributes .attribute-value,.l5r5e.army-fortification article.attributes .attribute,.l5r5e.army-fortification article.attributes .value,.l5r5e.armor article.attributes .attribute-value,.l5r5e.armor article.attributes .attribute,.l5r5e.armor article.attributes .value,.l5r5e.bond article.attributes .attribute-value,.l5r5e.bond article.attributes .attribute,.l5r5e.bond article.attributes .value,.l5r5e.item article.attributes .attribute-value,.l5r5e.item article.attributes .attribute,.l5r5e.item article.attributes .value,.l5r5e.item-pattern article.attributes .attribute-value,.l5r5e.item-pattern article.attributes .attribute,.l5r5e.item-pattern article.attributes .value,.l5r5e.peculiarity article.attributes .attribute-value,.l5r5e.peculiarity article.attributes .attribute,.l5r5e.peculiarity article.attributes .value,.l5r5e.property article.attributes .attribute-value,.l5r5e.property article.attributes .attribute,.l5r5e.property article.attributes .value,.l5r5e.signature-scroll article.attributes .attribute-value,.l5r5e.signature-scroll article.attributes .attribute,.l5r5e.signature-scroll article.attributes .value,.l5r5e.technique article.attributes .attribute-value,.l5r5e.technique article.attributes .attribute,.l5r5e.technique article.attributes .value,.l5r5e.title article.attributes .attribute-value,.l5r5e.title article.attributes .attribute,.l5r5e.title article.attributes .value,.l5r5e.weapon article.attributes .attribute-value,.l5r5e.weapon article.attributes .attribute,.l5r5e.weapon article.attributes .value{flex:1 1 auto;margin:.5rem .25rem .25rem}.l5r5e.advancement article.attributes select[name="system.advancement_type"],.l5r5e.advancement article.attributes select[name="system.skill"],.l5r5e.army-cohort article.attributes select[name="system.advancement_type"],.l5r5e.army-cohort article.attributes select[name="system.skill"],.l5r5e.army-fortification article.attributes select[name="system.advancement_type"],.l5r5e.army-fortification article.attributes select[name="system.skill"],.l5r5e.armor article.attributes select[name="system.advancement_type"],.l5r5e.armor article.attributes select[name="system.skill"],.l5r5e.bond article.attributes select[name="system.advancement_type"],.l5r5e.bond article.attributes select[name="system.skill"],.l5r5e.item article.attributes select[name="system.advancement_type"],.l5r5e.item article.attributes select[name="system.skill"],.l5r5e.item-pattern article.attributes select[name="system.advancement_type"],.l5r5e.item-pattern article.attributes select[name="system.skill"],.l5r5e.peculiarity article.attributes select[name="system.advancement_type"],.l5r5e.peculiarity article.attributes select[name="system.skill"],.l5r5e.property article.attributes select[name="system.advancement_type"],.l5r5e.property article.attributes select[name="system.skill"],.l5r5e.signature-scroll article.attributes select[name="system.advancement_type"],.l5r5e.signature-scroll article.attributes select[name="system.skill"],.l5r5e.technique article.attributes select[name="system.advancement_type"],.l5r5e.technique article.attributes select[name="system.skill"],.l5r5e.title article.attributes select[name="system.advancement_type"],.l5r5e.title article.attributes select[name="system.skill"],.l5r5e.weapon article.attributes select[name="system.advancement_type"],.l5r5e.weapon article.attributes select[name="system.skill"]{text-transform:capitalize}.l5r5e.advancement article.attributes .type,.l5r5e.army-cohort article.attributes .type,.l5r5e.army-fortification article.attributes .type,.l5r5e.armor article.attributes .type,.l5r5e.bond article.attributes .type,.l5r5e.item article.attributes .type,.l5r5e.item-pattern article.attributes .type,.l5r5e.peculiarity article.attributes .type,.l5r5e.property article.attributes .type,.l5r5e.signature-scroll article.attributes .type,.l5r5e.technique article.attributes .type,.l5r5e.title article.attributes .type,.l5r5e.weapon article.attributes .type{display:block}.l5r5e.advancement article.attributes .type label,.l5r5e.army-cohort article.attributes .type label,.l5r5e.army-fortification article.attributes .type label,.l5r5e.armor article.attributes .type label,.l5r5e.bond article.attributes .type label,.l5r5e.item article.attributes .type label,.l5r5e.item-pattern article.attributes .type label,.l5r5e.peculiarity article.attributes .type label,.l5r5e.property article.attributes .type label,.l5r5e.signature-scroll article.attributes .type label,.l5r5e.technique article.attributes .type label,.l5r5e.title article.attributes .type label,.l5r5e.weapon article.attributes .type label{width:calc(50% - .5rem);float:left}.l5r5e.advancement article.attributes .properties,.l5r5e.army-cohort article.attributes .properties,.l5r5e.army-fortification article.attributes .properties,.l5r5e.armor article.attributes .properties,.l5r5e.bond article.attributes .properties,.l5r5e.item article.attributes .properties,.l5r5e.item-pattern article.attributes .properties,.l5r5e.peculiarity article.attributes .properties,.l5r5e.property article.attributes .properties,.l5r5e.signature-scroll article.attributes .properties,.l5r5e.technique article.attributes .properties,.l5r5e.title article.attributes .properties,.l5r5e.weapon article.attributes .properties{flex:0 0 calc(50% - .5rem);margin:.25rem}.l5r5e.advancement article.attributes .equipped,.l5r5e.army-cohort article.attributes .equipped,.l5r5e.army-fortification article.attributes .equipped,.l5r5e.armor article.attributes .equipped,.l5r5e.bond article.attributes .equipped,.l5r5e.item article.attributes .equipped,.l5r5e.item-pattern article.attributes .equipped,.l5r5e.peculiarity article.attributes .equipped,.l5r5e.property article.attributes .equipped,.l5r5e.signature-scroll article.attributes .equipped,.l5r5e.technique article.attributes .equipped,.l5r5e.title article.attributes .equipped,.l5r5e.weapon article.attributes .equipped{flex:100%;margin:0;text-align:right}.l5r5e.advancement article.attributes input[type=text],.l5r5e.advancement article.attributes input[type=number],.l5r5e.army-cohort article.attributes input[type=text],.l5r5e.army-cohort article.attributes input[type=number],.l5r5e.army-fortification article.attributes input[type=text],.l5r5e.army-fortification article.attributes input[type=number],.l5r5e.armor article.attributes input[type=text],.l5r5e.armor article.attributes input[type=number],.l5r5e.bond article.attributes input[type=text],.l5r5e.bond article.attributes input[type=number],.l5r5e.item article.attributes input[type=text],.l5r5e.item article.attributes input[type=number],.l5r5e.item-pattern article.attributes input[type=text],.l5r5e.item-pattern article.attributes input[type=number],.l5r5e.peculiarity article.attributes input[type=text],.l5r5e.peculiarity article.attributes input[type=number],.l5r5e.property article.attributes input[type=text],.l5r5e.property article.attributes input[type=number],.l5r5e.signature-scroll article.attributes input[type=text],.l5r5e.signature-scroll article.attributes input[type=number],.l5r5e.technique article.attributes input[type=text],.l5r5e.technique article.attributes input[type=number],.l5r5e.title article.attributes input[type=text],.l5r5e.title article.attributes input[type=number],.l5r5e.weapon article.attributes input[type=text],.l5r5e.weapon article.attributes input[type=number]{width:2rem}.l5r5e.advancement article.attributes input[type=text].grip,.l5r5e.advancement article.attributes input[type=number].grip,.l5r5e.army-cohort article.attributes input[type=text].grip,.l5r5e.army-cohort article.attributes input[type=number].grip,.l5r5e.army-fortification article.attributes input[type=text].grip,.l5r5e.army-fortification article.attributes input[type=number].grip,.l5r5e.armor article.attributes input[type=text].grip,.l5r5e.armor article.attributes input[type=number].grip,.l5r5e.bond article.attributes input[type=text].grip,.l5r5e.bond article.attributes input[type=number].grip,.l5r5e.item article.attributes input[type=text].grip,.l5r5e.item article.attributes input[type=number].grip,.l5r5e.item-pattern article.attributes input[type=text].grip,.l5r5e.item-pattern article.attributes input[type=number].grip,.l5r5e.peculiarity article.attributes input[type=text].grip,.l5r5e.peculiarity article.attributes input[type=number].grip,.l5r5e.property article.attributes input[type=text].grip,.l5r5e.property article.attributes input[type=number].grip,.l5r5e.signature-scroll article.attributes input[type=text].grip,.l5r5e.signature-scroll article.attributes input[type=number].grip,.l5r5e.technique article.attributes input[type=text].grip,.l5r5e.technique article.attributes input[type=number].grip,.l5r5e.title article.attributes input[type=text].grip,.l5r5e.title article.attributes input[type=number].grip,.l5r5e.weapon article.attributes input[type=text].grip,.l5r5e.weapon article.attributes input[type=number].grip{width:calc(100% - 4rem);margin-bottom:.25rem}.l5r5e.advancement article.attributes input[name="system.zeni"],.l5r5e.army-cohort article.attributes input[name="system.zeni"],.l5r5e.army-fortification article.attributes input[name="system.zeni"],.l5r5e.armor article.attributes input[name="system.zeni"],.l5r5e.bond article.attributes input[name="system.zeni"],.l5r5e.item article.attributes input[name="system.zeni"],.l5r5e.item-pattern article.attributes input[name="system.zeni"],.l5r5e.peculiarity article.attributes input[name="system.zeni"],.l5r5e.property article.attributes input[name="system.zeni"],.l5r5e.signature-scroll article.attributes input[name="system.zeni"],.l5r5e.technique article.attributes input[name="system.zeni"],.l5r5e.title article.attributes input[name="system.zeni"],.l5r5e.weapon article.attributes input[name="system.zeni"]{width:7rem;float:right}.l5r5e.advancement article.attributes fieldset input[type=text],.l5r5e.advancement article.attributes fieldset input[type=number],.l5r5e.army-cohort article.attributes fieldset input[type=text],.l5r5e.army-cohort article.attributes fieldset input[type=number],.l5r5e.army-fortification article.attributes fieldset input[type=text],.l5r5e.army-fortification article.attributes fieldset input[type=number],.l5r5e.armor article.attributes fieldset input[type=text],.l5r5e.armor article.attributes fieldset input[type=number],.l5r5e.bond article.attributes fieldset input[type=text],.l5r5e.bond article.attributes fieldset input[type=number],.l5r5e.item article.attributes fieldset input[type=text],.l5r5e.item article.attributes fieldset input[type=number],.l5r5e.item-pattern article.attributes fieldset input[type=text],.l5r5e.item-pattern article.attributes fieldset input[type=number],.l5r5e.peculiarity article.attributes fieldset input[type=text],.l5r5e.peculiarity article.attributes fieldset input[type=number],.l5r5e.property article.attributes fieldset input[type=text],.l5r5e.property article.attributes fieldset input[type=number],.l5r5e.signature-scroll article.attributes fieldset input[type=text],.l5r5e.signature-scroll article.attributes fieldset input[type=number],.l5r5e.technique article.attributes fieldset input[type=text],.l5r5e.technique article.attributes fieldset input[type=number],.l5r5e.title article.attributes fieldset input[type=text],.l5r5e.title article.attributes fieldset input[type=number],.l5r5e.weapon article.attributes fieldset input[type=text],.l5r5e.weapon article.attributes fieldset input[type=number]{float:right}.l5r5e.advancement article.attributes .attribute.full,.l5r5e.army-cohort article.attributes .attribute.full,.l5r5e.army-fortification article.attributes .attribute.full,.l5r5e.armor article.attributes .attribute.full,.l5r5e.bond article.attributes .attribute.full,.l5r5e.item article.attributes .attribute.full,.l5r5e.item-pattern article.attributes .attribute.full,.l5r5e.peculiarity article.attributes .attribute.full,.l5r5e.property article.attributes .attribute.full,.l5r5e.signature-scroll article.attributes .attribute.full,.l5r5e.technique article.attributes .attribute.full,.l5r5e.title article.attributes .attribute.full,.l5r5e.weapon article.attributes .attribute.full{flex:100%}.l5r5e.advancement article.attributes .attribute.full input,.l5r5e.army-cohort article.attributes .attribute.full input,.l5r5e.army-fortification article.attributes .attribute.full input,.l5r5e.armor article.attributes .attribute.full input,.l5r5e.bond article.attributes .attribute.full input,.l5r5e.item article.attributes .attribute.full input,.l5r5e.item-pattern article.attributes .attribute.full input,.l5r5e.peculiarity article.attributes .attribute.full input,.l5r5e.property article.attributes .attribute.full input,.l5r5e.signature-scroll article.attributes .attribute.full input,.l5r5e.technique article.attributes .attribute.full input,.l5r5e.title article.attributes .attribute.full input,.l5r5e.weapon article.attributes .attribute.full input{float:right;width:70%}.l5r5e.advancement article.attributes .bonds-types,.l5r5e.army-cohort article.attributes .bonds-types,.l5r5e.army-fortification article.attributes .bonds-types,.l5r5e.armor article.attributes .bonds-types,.l5r5e.bond article.attributes .bonds-types,.l5r5e.item article.attributes .bonds-types,.l5r5e.item-pattern article.attributes .bonds-types,.l5r5e.peculiarity article.attributes .bonds-types,.l5r5e.property article.attributes .bonds-types,.l5r5e.signature-scroll article.attributes .bonds-types,.l5r5e.technique article.attributes .bonds-types,.l5r5e.title article.attributes .bonds-types,.l5r5e.weapon article.attributes .bonds-types{flex:100%}.l5r5e.advancement article.attributes .bonds-types input,.l5r5e.army-cohort article.attributes .bonds-types input,.l5r5e.army-fortification article.attributes .bonds-types input,.l5r5e.armor article.attributes .bonds-types input,.l5r5e.bond article.attributes .bonds-types input,.l5r5e.item article.attributes .bonds-types input,.l5r5e.item-pattern article.attributes .bonds-types input,.l5r5e.peculiarity article.attributes .bonds-types input,.l5r5e.property article.attributes .bonds-types input,.l5r5e.signature-scroll article.attributes .bonds-types input,.l5r5e.technique article.attributes .bonds-types input,.l5r5e.title article.attributes .bonds-types input,.l5r5e.weapon article.attributes .bonds-types input{width:75%;float:right}.l5r5e.advancement article.infos,.l5r5e.army-cohort article.infos,.l5r5e.army-fortification article.infos,.l5r5e.armor article.infos,.l5r5e.bond article.infos,.l5r5e.item article.infos,.l5r5e.item-pattern article.infos,.l5r5e.peculiarity article.infos,.l5r5e.property article.infos,.l5r5e.signature-scroll article.infos,.l5r5e.technique article.infos,.l5r5e.title article.infos,.l5r5e.weapon article.infos{display:flex;align-self:stretch;height:calc(100% - 7.5rem);width:100%;padding-bottom:1.25rem}.l5r5e.advancement article.infos .reference,.l5r5e.army-cohort article.infos .reference,.l5r5e.army-fortification article.infos .reference,.l5r5e.armor article.infos .reference,.l5r5e.bond article.infos .reference,.l5r5e.item article.infos .reference,.l5r5e.item-pattern article.infos .reference,.l5r5e.peculiarity article.infos .reference,.l5r5e.property article.infos .reference,.l5r5e.signature-scroll article.infos .reference,.l5r5e.technique article.infos .reference,.l5r5e.title article.infos .reference,.l5r5e.weapon article.infos .reference{display:flex;flex:0 0 calc(100% - .5rem);margin:.5rem .25rem}.l5r5e.advancement article.infos .reference input[name="system.source_reference.source"],.l5r5e.army-cohort article.infos .reference input[name="system.source_reference.source"],.l5r5e.army-fortification article.infos .reference input[name="system.source_reference.source"],.l5r5e.armor article.infos .reference input[name="system.source_reference.source"],.l5r5e.bond article.infos .reference input[name="system.source_reference.source"],.l5r5e.item article.infos .reference input[name="system.source_reference.source"],.l5r5e.item-pattern article.infos .reference input[name="system.source_reference.source"],.l5r5e.peculiarity article.infos .reference input[name="system.source_reference.source"],.l5r5e.property article.infos .reference input[name="system.source_reference.source"],.l5r5e.signature-scroll article.infos .reference input[name="system.source_reference.source"],.l5r5e.technique article.infos .reference input[name="system.source_reference.source"],.l5r5e.title article.infos .reference input[name="system.source_reference.source"],.l5r5e.weapon article.infos .reference input[name="system.source_reference.source"]{text-align:center;width:70%}.l5r5e.advancement article.infos .reference input[name="system.source_reference.page"],.l5r5e.army-cohort article.infos .reference input[name="system.source_reference.page"],.l5r5e.army-fortification article.infos .reference input[name="system.source_reference.page"],.l5r5e.armor article.infos .reference input[name="system.source_reference.page"],.l5r5e.bond article.infos .reference input[name="system.source_reference.page"],.l5r5e.item article.infos .reference input[name="system.source_reference.page"],.l5r5e.item-pattern article.infos .reference input[name="system.source_reference.page"],.l5r5e.peculiarity article.infos .reference input[name="system.source_reference.page"],.l5r5e.property article.infos .reference input[name="system.source_reference.page"],.l5r5e.signature-scroll article.infos .reference input[name="system.source_reference.page"],.l5r5e.technique article.infos .reference input[name="system.source_reference.page"],.l5r5e.title article.infos .reference input[name="system.source_reference.page"],.l5r5e.weapon article.infos .reference input[name="system.source_reference.page"]{width:30%}.l5r5e.advancement article.infos fieldset,.l5r5e.army-cohort article.infos fieldset,.l5r5e.army-fortification article.infos fieldset,.l5r5e.armor article.infos fieldset,.l5r5e.bond article.infos fieldset,.l5r5e.item article.infos fieldset,.l5r5e.item-pattern article.infos fieldset,.l5r5e.peculiarity article.infos fieldset,.l5r5e.property article.infos fieldset,.l5r5e.signature-scroll article.infos fieldset,.l5r5e.technique article.infos fieldset,.l5r5e.title article.infos fieldset,.l5r5e.weapon article.infos fieldset{align-self:stretch;height:calc(100% - 2rem);box-sizing:content-box}.l5r5e.advancement article.properties fieldset,.l5r5e.army-cohort article.properties fieldset,.l5r5e.army-fortification article.properties fieldset,.l5r5e.armor article.properties fieldset,.l5r5e.bond article.properties fieldset,.l5r5e.item article.properties fieldset,.l5r5e.item-pattern article.properties fieldset,.l5r5e.peculiarity article.properties fieldset,.l5r5e.property article.properties fieldset,.l5r5e.signature-scroll article.properties fieldset,.l5r5e.technique article.properties fieldset,.l5r5e.title article.properties fieldset,.l5r5e.weapon article.properties fieldset{margin-bottom:.5rem}.l5r5e.advancement article.attributes .attribute-value,.l5r5e.advancement article.attributes .attribute,.l5r5e.advancement article.attributes .value{flex:0 0 calc(33% - .5rem)}.l5r5e.advancement article.attributes .cursus{flex:0 0 calc(19% - .5rem);line-height:.75rem;text-align:right;margin:0 .25rem}.l5r5e.advancement article.attributes .cursus input{margin-top:.25rem}.l5r5e.technique article.attributes{height:7.5rem}.l5r5e.technique article.attributes input[type=text]{width:10rem}.l5r5e.technique article.attributes .cursus{flex:0 0 calc(20% - .5rem);line-height:.75rem;text-align:right;margin:0 .25rem}.l5r5e.technique article.attributes .cursus input{margin-top:.25rem}.l5r5e.technique article.infos{height:calc(100% - 8.5rem)}.l5r5e.peculiarity article.attributes{height:8.5rem}.l5r5e.peculiarity article.attributes .cursus{flex:0 0 calc(20% - .5rem);line-height:.75rem;text-align:right;margin:0 .25rem}.l5r5e.peculiarity article.attributes .cursus input{margin-top:.25rem}.l5r5e.peculiarity article.infos{height:calc(100% - 9.5rem)}.l5r5e.item article.attributes{height:4.5rem}.l5r5e.item article.attributes .properties{flex:100%}.l5r5e.item article.infos{flex:0 0 60%;height:calc(100% - 5.5rem)}.l5r5e.item article.properties{flex:0 0 40%;height:calc(100% - 5.5rem)}.l5r5e.property article.properties{width:100%}.l5r5e.property article.infos{height:calc(100% - 4.5rem)}.l5r5e.armor article.attributes{height:9.5rem}.l5r5e.armor article.infos{flex:0 0 60%;height:calc(100% - 10.5rem)}.l5r5e.armor article.properties{flex:0 0 40%;height:calc(100% - 10.5rem)}.l5r5e.weapon article.attributes{height:18.5rem}.l5r5e.weapon article.attributes .stats,.l5r5e.weapon article.attributes .attribute-value{flex:0 0 calc(50% - .5rem);flex-wrap:wrap;margin:.25rem}.l5r5e.weapon article.attributes .stats label,.l5r5e.weapon article.attributes .attribute-value label{width:100%}.l5r5e.weapon article.attributes .stats input[type=text]{text-align:center}.l5r5e.weapon article.attributes .value{flex:0 0 calc(25% - .5rem)}.l5r5e.weapon article.attributes .category,.l5r5e.weapon article.attributes .skillType{flex:0 0 calc(50% - .5rem)}.l5r5e.weapon article.attributes .category input,.l5r5e.weapon article.attributes .category .attribute-dtype,.l5r5e.weapon article.attributes .skillType input,.l5r5e.weapon article.attributes .skillType .attribute-dtype{width:100%;margin:.25rem}.l5r5e.weapon article.infos{flex:0 0 60%;height:calc(100% - 19.5rem)}.l5r5e.weapon article.properties{flex:0 0 40%;height:calc(100% - 19.5rem)}.l5r5e.item-pattern .attribute.item{display:inline}.l5r5e.item-pattern .attribute.item .item-properties{display:inline}.l5r5e.item-pattern .attribute.item .item-properties li{display:inline}.l5r5e.title .sheet-body{height:calc(100% - 90px - 4.25rem)}.l5r5e.title article.infos{height:calc(100% - 3.5rem)}.l5r5e.title article.attributes{height:auto;background:rgba(0,0,0,0)}.l5r5e.title article.experience{flex:100%;height:calc(100% - 4rem)}.l5r5e.army-cohort .sheet-body{height:calc(100% - 92px - 3.6rem)}.l5r5e.army-cohort article .fa-sign-in-alt{transform:rotate(90deg)}.l5r5e.army-cohort article.attributes{height:7rem}.l5r5e.army-cohort article.attributes input[type=text]{width:100%}.l5r5e.army-cohort article.attributes .actor-remove-control{font-size:12px}.l5r5e.army-cohort article.attributes .flx50{flex:0 0 calc(50% - .5rem)}.l5r5e.army-cohort article.attributes .flx100{flex:0 0 calc(100% - .5rem)}.l5r5e.army-cohort article.attributes .editor-container{min-height:8rem;max-height:14rem}.l5r5e.army-cohort article.abilities{align-self:stretch;height:calc(100% - 8rem);width:100%;box-sizing:content-box}.l5r5e.army-fortification .sheet-body{height:calc(100% - 92px)}.l5r5e.army-fortification article.infos{height:calc(100% - 4.5rem)}.l5r5e.army-fortification article.attributes{height:3.5rem}.l5r5e .item-list>li .item-description{flex:unset;height:0;margin:0;padding:0;font-size:.75rem;color:rgba(0,0,0,.75);overflow:hidden;background:rgba(0,0,0,.05);border:0 none;transition:height .25s ease-in}.l5r5e .item-list>li div.item-description{padding:0}.l5r5e .item-list>li div.item-description:hover,.l5r5e .item-list>li div.item-description:active{padding:0}.l5r5e .item-list>li:hover .item-description,.l5r5e .item-list>li:active .item-description{height:6rem;overflow-y:auto;scrollbar-width:thin;border:1px solid rgba(186,187,177,.5)}.l5r5e .item-list>li:hover p .item-description,.l5r5e .item-list>li:active p .item-description{padding:.25rem}.l5r5e .item-list .stance-content .item-description{display:none;height:auto}.l5r5e .item-list .stance-content .stance-active{display:block;height:auto;border:0 none}.l5r5e .item-list .stance-content:hover .item-description{height:auto;border:0 none}.l5r5e .item-list .stance-content:hover .stance-active{display:block}.l5r5e.twenty-questions-dialog .sheet-tabs{position:fixed;flex-direction:column;background:url("../assets/imgs/bg-20nav.webp") no-repeat;background-size:cover;width:4rem;height:41.58rem;margin:1%;line-height:3rem;padding:.25rem;border-bottom:0 none}.l5r5e.twenty-questions-dialog .errors{position:sticky;top:1rem;left:1rem;z-index:999;width:calc(100% - 1rem);background-color:#963c41;border:1px solid rgba(25,0,0,.75);color:#fff;border-radius:1rem;text-align:center;line-height:2rem}.l5r5e.twenty-questions-dialog h3{font-size:1.25rem;color:#5a6e5a;text-shadow:0 0 rgba(0,0,0,.25);margin:2rem 0 .5rem 1rem}.l5r5e.twenty-questions-dialog nav .item{color:#000;font-size:2rem;font-weight:bold;background-color:rgba(255,255,255,.25)}.l5r5e.twenty-questions-dialog nav .item.active,.l5r5e.twenty-questions-dialog nav .item:hover{color:#fff;background-color:rgba(73,12,11,.85);--notchSize: 0.5rem;-webkit-clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)));clip-path:polygon(0% var(--notchSize), var(--notchSize) 0%, calc(100% - var(--notchSize)) 0%, 100% var(--notchSize), 100% calc(100% - var(--notchSize)), calc(100% - var(--notchSize)) 100%, var(--notchSize) 100%, 0% calc(100% - var(--notchSize)))}.l5r5e.twenty-questions-dialog nav .item:hover{background-color:#5a6e5a}.l5r5e.twenty-questions-dialog article{padding:2% 2% 2% 18%}.l5r5e.twenty-questions-dialog article label.full{display:block;width:100%;text-align:right;font-size:1rem}.l5r5e.twenty-questions-dialog article label.full input{display:inline;width:80%;float:right;text-align:left;margin-left:.5rem}.l5r5e.twenty-questions-dialog article>label{font-size:1rem;padding:0 0 0 1rem;line-height:2rem}.l5r5e.twenty-questions-dialog article>label>*{line-height:1rem}.l5r5e.twenty-questions-dialog article table{width:100%;text-align:center}.l5r5e.twenty-questions-dialog article table tr th{color:#5a6e5a;font-weight:normal}.l5r5e.twenty-questions-dialog article table tr td{vertical-align:top;line-height:2rem;border:1px solid rgba(186,187,177,.5);font-size:.85rem;padding:.25rem}.l5r5e.twenty-questions-dialog article table tr td>*{line-height:1rem}.l5r5e.twenty-questions-dialog article table tr td>ul li{line-height:2rem}.l5r5e.twenty-questions-dialog article table tr td>ul li>*{line-height:1rem}.l5r5e.twenty-questions-dialog article table tr td.done{border:1px solid #699678;box-shadow:0 1px 5px #699678}.l5r5e.twenty-questions-dialog article select{height:2rem;color:#764f40;background:rgba(255,255,255,.25);border:1px solid rgba(255,255,255,.5);border-radius:.25rem;padding:0 .25rem;margin:.25rem;width:calc(100% - .5rem)}.l5r5e.twenty-questions-dialog article textarea{color:#764f40;background:rgba(255,255,255,.25);border:1px solid rgba(255,255,255,.5);margin:0 .25rem 1rem}.l5r5e.twenty-questions-dialog article hr{border-top:1px solid rgba(0,0,0,.25)}.l5r5e.twenty-questions-dialog article a.entity-link,.l5r5e.twenty-questions-dialog article a.inline-roll{color:#5a6e5a;background:rgba(255,255,255,.25);border:1px solid rgba(0,0,0,.25)}.l5r5e.twenty-questions-dialog article a.entity-link i,.l5r5e.twenty-questions-dialog article a.inline-roll i{color:#5a6e5a}.l5r5e.twenty-questions-dialog article .tq-drag-n-drop{border:0 none;padding:0}.l5r5e.twenty-questions-dialog article .third{width:230px}.l5r5e.twenty-questions-dialog article .fifty{width:49%}.l5r5e.twenty-questions-dialog article .or{width:100px}.l5r5e.twenty-questions-dialog article .dropbox{min-height:75px}.l5r5e.twenty-questions-dialog article .checklist{margin:.25rem .25rem 1rem}.l5r5e.twenty-questions-dialog article .checklist strong{display:block;width:100%;color:#764f40}.l5r5e.twenty-questions-dialog article .checklist label{font-size:.85rem;flex:0 0 auto;margin:0 .25rem .25rem;padding:0 .5rem;color:#5a6e5a;background:rgba(255,255,255,.5);border:1px solid #5a6e5a;border-radius:1rem}.l5r5e.twenty-questions-dialog article .checklist label.technique{padding:.25rem;margin:.25rem;border-radius:0;display:inline-block}.l5r5e.twenty-questions-dialog article .checklist input{margin:.25rem 0 0 0;height:.65rem;width:.65rem}.l5r5e.twenty-questions-dialog article #generchar_disclaimer{color:#963c41;font-weight:bold;font-size:1.25rem;text-align:center;flex:100%;padding:1rem 0}.l5r5e.twenty-questions-dialog article .next{margin:2rem 0 4rem}.l5r5e.twenty-questions-dialog article .autocomplete-wrapper{width:calc(100% - 2px)}#measurement .waypoint-label-additional{color:var(--color-text-emphatic);font-size:var(--font-size-24)}#tactical-grid-settings input[type=number]:invalid{background-color:red}#tactical-grid-settings input[type=number]:-moz-read-only{border:none;outline:none;box-shadow:none;background:rgba(0,0,0,0);cursor:default;pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none}#tactical-grid-settings input[type=number]:read-only{border:none;outline:none;box-shadow:none;background:rgba(0,0,0,0);cursor:default;pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none}#tactical-grid-settings .range_band{display:flex;flex-flow:wrap}#tactical-grid-settings .range_band fieldset{flex:25%}} \ No newline at end of file diff --git a/system/styles/scss/global-appv2.scss b/system/styles/scss/global-appv2.scss index ea0bd6d..d185aa3 100644 --- a/system/styles/scss/global-appv2.scss +++ b/system/styles/scss/global-appv2.scss @@ -1,5 +1,5 @@ .application { - color: var(--color-text-dark-primary); + color: var(--color-text-primary); .scrollable { --scroll-margin: 0; diff --git a/system/styles/scss/ui.scss b/system/styles/scss/ui.scss index 6525080..97f5b7d 100644 --- a/system/styles/scss/ui.scss +++ b/system/styles/scss/ui.scss @@ -1,5 +1,67 @@ /* SCSS */ +@mixin theme-dark { + // Restricted entries + --l5r5e-restricted-opacity: 0.6; + --l5r5e-restricted-filter: grayscale(0.3); + + // l5r5e-multi-select + --l5r5e-dropdown-bg: var(--color-cool-4, #302831); + --l5r5e-dropdown-color: var(--color-light-2, #efe6d8); + --l5r5e-dropdown-shadow: 0 4px 12px rgba(0, 0, 0, 0.6); + --l5r5e-dropdown-group-color: var(--color-light-5, #9f8475); + --l5r5e-dropdown-group-bg: rgba(255, 255, 255, 0.05); + --l5r5e-dropdown-option-color: var(--color-light-2, #efe6d8); + --l5r5e-dropdown-no-results-color: var(--color-light-5, #9f8475); + --l5r5e-chip-border-color: var(--color-light-5, #9f8475); + --l5r5e-chip-bg: rgba(93, 20, 43, 0.12); + --l5r5e-chip-color: var(--color-light-2, #efe6d8); + + // selection ring + --l5r5e-filter-selected-opacity: 0.6; + --l5r5e-filter-selected-tint: invert(1) sepia(1) saturate(4) hue-rotate(5deg); // → gold +} + +@mixin theme-light { + // Restricted entries + --l5r5e-restricted-opacity: 0.35; + --l5r5e-restricted-filter: grayscale(1) brightness(1.1); + + // l5r5e-multi-select + --l5r5e-dropdown-bg: #f4efe6; + --l5r5e-dropdown-color: var(--color-dark-2, #222); + --l5r5e-dropdown-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); + --l5r5e-dropdown-group-color: var(--color-dark-4, #444); + --l5r5e-dropdown-group-bg: rgba(0, 0, 0, 0.05); + --l5r5e-dropdown-option-color: var(--color-dark-2, #222); + --l5r5e-dropdown-no-results-color: var(--color-dark-4, #444); + --l5r5e-chip-border-color: var(--color-light-5, #9f8475); + --l5r5e-chip-bg: rgba(93, 20, 43, 0.08); + --l5r5e-chip-color: var(--color-dark-2, #222); + + // selection ring + --l5r5e-filter-selected-opacity: 0.45; + --l5r5e-filter-selected-tint: invert(0.15) sepia(1) saturate(6) hue-rotate(295deg) brightness(0.7); // → deep red +} + +body.theme-light { + @include theme-light(); +} +body.theme-dark { + @include theme-dark(); +} + +.application.theme-light, +.themed.theme-light { + @include theme-light(); +} +.application.theme-dark, +.themed.theme-dark { + @include theme-dark(); +} + +// ───────────────────────────────────────────────────────────── + button { font-size: 0.75rem; cursor: url("../assets/cursors/pointer.webp"), pointer; @@ -29,7 +91,6 @@ button { } } -// logo #logo { content: url("../assets/l5r-logo.webp"); height: 80px; @@ -38,22 +99,8 @@ button { opacity: 0.8; } -// navigation #navigation { left: 120px; - //&:before { - // content: ""; - // background: url("../assets/l5r-logo.webp") no-repeat 0 0; - // background-size: cover; - // height: 80px; - // width: 88px; - // opacity: 0.65; - // position: absolute; - // left: -12rem; - // &:hover { - // opacity: 0.75; - // } - //} #nav-toggle, #scene-list .scene.nav-item { cursor: default; @@ -115,7 +162,6 @@ button { } } -// controls #controls { top: 100px; ol { @@ -164,7 +210,6 @@ button { } } -// Playlist #playlists { .playlist { .playlist-header { @@ -177,7 +222,6 @@ button { } } -// Combat #combat, #combat-popout { .combat-tracker-header { @@ -246,50 +290,138 @@ button { } } -// Pause #pause { img { content: url("../assets/icons/pause.svg"); } } -// Compendium -.directory-item { - .ring-filter { - i.i_earth, - i.i_fire, - i.i_water, - i.i_air, - i.i_void { - line-height: unset; // do not have it rised up +.compendium-directory { + + min-width: 350px; //Default size set as min + + .directory-item { + .ring-rarity-rank { + display: flex; + align-items: center; + justify-content: end; + padding-right: 1rem; + font-size: 0.75rem; + white-space: nowrap; + + i[class^="i_"] { // i_water, i_air etc. + margin-right: 0.25rem; + } } } - .ring-rarity-rank { - flex: unset - } -} - -.not-for-players { - filter:brightness(0.5); -} - -.compendium-header { - .ring-filter{ - .selected { - filter: drop-shadow(0px 0px 5px yellow); - } - } - .rank-filter { - .selected { - filter: drop-shadow(0px 0px 5px yellow) drop-shadow(0px 0px 5px yellow) drop-shadow(0px 0px 5px yellow); - } + .not-for-players { + opacity: var(--l5r5e-restricted-opacity); + filter: var(--l5r5e-restricted-filter); } - l5r5e-multi-select { - .input-element-tags { - max-height: 100px; + [data-application-part="filter"] { + .filter-bar { + display: flex; + flex-direction: column; + gap: 0.25rem; + padding: 0.5rem; } + + .flexrow { + position: relative; + display: flex; + align-items: center; + gap: 0.35rem; + margin: 0.35rem 0.5rem; + padding-right: 1.5rem; // space for the clear filter x + + &.source-filter { + padding-right: 0; + } + + label { + flex-shrink: 0; + width: 3.5rem; // same column alignment + font-size: 0.8rem; + line-height: 1; + margin-right: 0.25rem; + } + } + + .number-filter { + flex-wrap: nowrap; + } + + // ── Filter buttons ( and ) + .number-filter a, + .rank-filter a, + .rarity-filter a, + .ring-filter i { + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 1.5rem; + padding: 0.1rem 0.3rem; + cursor: pointer; + text-align: center; + border-radius: 3px; + font-size: 1.2rem; + line-height: 1; + user-select: none; + position: relative; + z-index: 1; + } + + // ── Selected state circle + .rank-filter a.selected::before, + .rarity-filter a.selected::before, + .ring-filter i.selected::after { + content: ""; + position: absolute; + inset: 0; + background: url("../assets/icons/circle.svg") center / contain no-repeat; + opacity: var(--l5r5e-filter-selected-opacity); + filter: var(--l5r5e-filter-selected-tint); + pointer-events: none; + z-index: -1; + } + + // Ring-specific adjustment for circle + .ring-filter i.selected::after { + inset: -4px; + } + + // ── Inline clear button + a[data-clear] { + position: absolute; + display: inline-flex; + align-items: center; + justify-content: center; + right: 0.25rem; + top: 50%; + transform: translateY(-50%); + margin: 0; + min-width: unset; + opacity: 0.5; + cursor: pointer; + font-size: 0.85rem; + line-height: 1; + user-select: none; + padding: 0.1rem 0.3rem; + + &:hover { + opacity: 1; + } + } + + .source-filter l5r5e-multi-select { + width: 100%; + } + } + button.gm.applyPlayerFilter { + margin-left: 0.5rem; + margin-bottom: 0.3rem; } } @@ -545,49 +677,6 @@ button { } } -l5r5e-multi-select { - display: grid; - grid-template-columns: minmax(auto, 1fr); - select { - justify-self: center; - width: 100%; - height: 100%; - text-align-last: center; - } - .input-element-tags { - grid-column-start: 1; - grid-column-end: span 3; - - max-height: fit-content; // use value in px to limit the initial size of the tags list, but expandable when hovering over - overflow: hidden; - - &.overflowing { - // Apply mask-image with linear gradient fade-out effect - mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 80%, rgba(0, 0, 0, 0) 100%); - - // Transition for smooth height change and mask removal - transition: height 0.3s ease, mask-image 0.3s ease; - } - &.overflowing:hover { - max-height: fit-content; - mask-image: none; - } - } - select { - grid-row: 1; - } - button { - grid-row: 1; - line-height: 1; - } -} - -l5r5e-multi-select:has( > button.gm) { - .input-element-tags { - grid-column-end: span 4; - } -} - form#settings-config { div.form-group:has(l5r5e-multi-select) { @@ -607,31 +696,361 @@ form#settings-config { } } +l5r5e-combo-box { + // Reset li rules + li { + flex: none !important; + margin: 0 !important; + padding: 0 !important; + } -.autocomplete-wrapper { + input { + margin: 0 !important; + flex: none !important; + height: auto !important; + } + + display: block; + flex: 1; + min-width: 0; // prevents flex overflow + width: 100%; + + .wrapper { + display: block; position: relative; - .autocomplete-list { - position: absolute; - border: 1px solid #6e7e6b; - border-bottom: none; - border-top: none; - z-index: 99; - top: 100%; - left: 0; - right: 0; + width: 100%; + } + + .input { + width: 100%; + background: transparent; + border: none; + border-bottom: 1px solid #6e7e6b; + font-family: inherit; + font-size: inherit; + color: inherit; + padding: 2px 4px; + + &:focus { + outline: none; + border-bottom-color: #8b0000; } - .autocomplete-list div { - padding: 10px; - cursor: pointer; - background-color: #fff; - border-bottom: 1px solid #6e7e6b; - text-align: left; + + &:disabled { + opacity: 0.45; + cursor: not-allowed; } - .autocomplete-list div:hover { - background-color: #e9e9e9; + } + + .dropdown { + // Reset any inherited text styles from parent label + text-shadow: none; + color: #333; + + position: absolute; + top: 100%; + left: 0; + right: 0; + z-index: 100; /* floats above everything */ + max-height: 200px; /* scrollable */ + overflow-y: auto; + background: #f4efe6; /* matches parchment */ + border: 1px solid #6e7e6b; + box-shadow: 2px 4px 8px rgba(0, 0, 0, 0.3); + margin: 0; + padding: 0; + list-style: none; + + text-align: center; + font-size: var(--font-size-16); + font-family: $font-primary; + } + + .option { + display: block; // override list-item + margin: 0; // reset any inherited li margins + flex: none; // reset any inherited li flex + padding: 4px 8px; + cursor: pointer; + font-size: 0.85em; + color: #333; + text-transform: uppercase; /* matches the label style in your sheet */ + letter-spacing: 0.05em; + border-bottom: 1px solid rgba(110, 126, 107, 0.3); + + &:hover, + &.active { + background: #8b0000; + color: #f4efe6; } - .autocomplete-active { - background-color: DodgerBlue !important; - color: #ffffff; + } + .option:last-child, + .group:last-child { + border-bottom: none; + } + + .group { + padding: 4px 8px 2px; + font-size: 0.7em; + font-weight: bold; + color: #6e7e6b; + text-transform: uppercase; + letter-spacing: 0.08em; + background: rgba(110, 126, 107, 0.15); + cursor: default; + } + + .no-results { + padding: 6px 8px; + color: #999; + font-style: italic; + font-size: 0.85em; + } +} + +l5r5e-multi-select, +l5r5e-combo-box { + display: block; + position: relative; +} + +l5r5e-combo-box { + .wrapper { + position: relative; + display: block; + padding: 0.375rem 0.625rem; + border-width: 1px; + border-style: solid; + border-color: var(--color-border, #6e7e6b); + border-radius: 4px; + transition: border-color 0.15s ease, box-shadow 0.15s ease; + + &:focus-within { + border-color: var(--color-warm-3, #5d142b); + box-shadow: 0 0 0 2px rgba(93, 20, 43, 0.2); + } + + &.disabled { + opacity: 0.45; + pointer-events: none; + } + } + + input.input { + display: block; + width: 100%; + padding: 0; + border: none; + background: transparent; + outline: none; + font-size: inherit; + line-height: 1.4; + min-width: 4ch; + } +} + +l5r5e-multi-select { + .multi-select-container { + position: relative; + } + + .selection-box { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 0.25rem; + padding: 0.3125rem 0.5rem; + min-height: 2.25rem; + + border: 1px solid var(--color-border, #6e7e6b); + border-radius: 4px; + cursor: text; + transition: border-color 0.15s ease, box-shadow 0.15s ease; + + &:focus-within { + border-color: var(--color-warm-3, #5d142b); + box-shadow: 0 0 0 2px rgba(93, 20, 43, 0.2); + } + + &.disabled { + opacity: 0.45; + pointer-events: none; + cursor: default; + + .input-sizer { + display: none; + } + } + } + + .chip-list { + display: contents; + } + + .chip { + display: inline-flex; + align-items: center; + gap: 0.1875rem; + padding: 0.0625rem 0.3125rem; + + border: 1px solid var(--l5r5e-chip-border-color); + border-radius: 3px; + background: var(--l5r5e-chip-bg); + color: var(--l5r5e-chip-color); + + font-size: 0.8em; + line-height: 1.4; + white-space: nowrap; + user-select: none; + } + + .chip-remove { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0 0.0625rem; + cursor: pointer; + color: var(--color-light-5, #9f8475); + + &:hover { + color: var(--color-warm-2, #c9593f); + } + } + + /* Auto-sizing input */ + .input-sizer { + display: inline-grid; + flex: 1 1 auto; + min-width: 4ch; // never collapse + max-width: 100%; + + &::after { + content: attr(data-value) " "; + grid-area: 1 / 1; + visibility: hidden; + white-space: pre; + font: inherit; + line-height: 1.4; + pointer-events: none; + } + + input.input { + grid-area: 1 / 1; + width: 100%; + min-width: 0; // allow flexbox to shrink + padding: 0.125rem 0; + border: none; + background: transparent; + outline: none; + font: inherit; + line-height: 1.4; + } + } + + .clear-btn { + display: inline-flex; + align-items: center; + justify-content: center; + margin-left: auto; // pushes it to the end + flex-shrink: 0; + white-space: nowrap; + + padding: 0 0.125rem; + border: none; + background: none; + font-size: 1.1em; + cursor: pointer; + color: var(--color-light-5, #9f8475); + + &:hover { + color: var(--color-warm-2, #c9593f); + } + } +} + +l5r5e-multi-select, +l5r5e-combo-box { + .dropdown { + position: absolute; + top: calc(100% + 0.25rem); + left: 0; + right: 0; + z-index: 100; + max-height: 14rem; + overflow-y: auto; + overflow-x: hidden; + list-style: none; + margin: 0; + padding: 0.25rem 0; + border-width: 1px; + border-style: solid; + border-radius: 4px; + background: var(--l5r5e-dropdown-bg); + border-color: var(--color-border, #6e7e6b); + box-shadow: var(--l5r5e-dropdown-shadow); + color: var(--l5r5e-dropdown-color); + + li.group { + padding: 0.375rem 0.75rem 0.125rem; + font-size: 0.7em; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.06em; + cursor: default; + user-select: none; + color: var(--l5r5e-dropdown-group-color); + background: var(--l5r5e-dropdown-group-bg); + } + + li.option { + display: flex; + align-items: center; + gap: 0.5rem; + padding: 0.375rem 0.75rem; + font-size: 0.875em; + cursor: pointer; + user-select: none; + color: var(--l5r5e-dropdown-option-color); + + &:hover, + &.active { + background: var(--color-warm-3, #5d142b); + color: var(--color-light-1, #f7f3e8); + } + + &.selected { + background: rgba(93, 20, 43, 0.25); + } + + &.disabled { + cursor: default; + pointer-events: none; + opacity: 0.45; + } + + .checkmark { + flex-shrink: 0; + width: 0.875rem; + text-align: center; + font-size: 0.85em; + color: var(--color-warm-1, #ee9b3a); + } + + .label { + flex: 1; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + } + + li.no-results { + padding: 0.5rem 0.75rem; + font-size: 0.875em; + font-style: italic; + user-select: none; + color: var(--l5r5e-dropdown-no-results-color); + } } } diff --git a/system/templates/compendium/filter-bar.html b/system/templates/compendium/filter-bar.html new file mode 100644 index 0000000..4e4f437 --- /dev/null +++ b/system/templates/compendium/filter-bar.html @@ -0,0 +1,52 @@ +
          + + {{#if filtersToShow.rank}} + + {{/if}} + + {{#if filtersToShow.rarity}} +
          + + {{#each rarities}} + {{this}} + {{/each}} + × +
          + {{/if}} + + {{#if filtersToShow.ring}} +
          + + {{#each rings}} + + {{/each}} + × +
          + {{/if}} + + {{#if filtersToShow.source}} +
          + + {{selectOptions sources localize=true}} + +
          + {{#if showPlayerView}} + + {{/if}} + {{/if}} + +
          \ No newline at end of file diff --git a/system/templates/compendium/l5r5e-index-partial.html b/system/templates/compendium/l5r5e-index-partial.html new file mode 100644 index 0000000..06e4287 --- /dev/null +++ b/system/templates/compendium/l5r5e-index-partial.html @@ -0,0 +1,30 @@ +{{!-- + L5R5e entry partial — mirrors Foundry's index-partial.hbs structure and adds + ring/rarity/rank badges from entryFilterData injected by _prepareDirectoryContext. + + NOTE: Foundry's index-partial.hbs renders a complete
        • element so it cannot + be composed via {{> partial}} without nesting
        • inside
        • . We therefore + duplicate its simple structure here and own it ourselves. If Foundry changes + their index-partial.hbs, this file should be checked for parity. + + Foundry original: templates/sidebar/apps/compendium/index-partial.hbs +--}} +
        • + {{#if thumb}} + {{ name }} + {{else if img}} + {{ name }} + {{else}} + + {{/if}} + {{ name }} + {{#with (lookup @root.entryFilterData _id)}} + {{#if (or ring rarity rank)}} +
          + {{#if ring}} {{/if}} + {{#if rarity}}{{localize "l5r5e.sheets.rarity"}} {{rarity}}{{/if}} + {{#if rank}}{{localize "l5r5e.sheets.rank"}} {{rank}}{{/if}} +
          + {{/if}} + {{/with}} +
        • diff --git a/system/templates/compendium/rank-filter.html b/system/templates/compendium/rank-filter.html deleted file mode 100644 index 3221ffc..0000000 --- a/system/templates/compendium/rank-filter.html +++ /dev/null @@ -1,6 +0,0 @@ -
          - -{{#each number}} -{{.}} -{{/each}} -
          \ No newline at end of file diff --git a/system/templates/compendium/ring-filter.html b/system/templates/compendium/ring-filter.html deleted file mode 100644 index c56f6a4..0000000 --- a/system/templates/compendium/ring-filter.html +++ /dev/null @@ -1,8 +0,0 @@ -
          - - - - - - -
          \ No newline at end of file diff --git a/system/templates/compendium/ring-rarity-rank.html b/system/templates/compendium/ring-rarity-rank.html deleted file mode 100644 index 8a1b674..0000000 --- a/system/templates/compendium/ring-rarity-rank.html +++ /dev/null @@ -1,6 +0,0 @@ -
          - - {{#if rarity}} {{localize "l5r5e.sheets.rarity"}} {{rarity}} {{/if}} - {{#if rank}} {{localize "l5r5e.sheets.rank"}} {{rank}} {{/if}} - -
          \ No newline at end of file