From a74fd014aaa7901dced468770c1def4a2bdbec8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominic=20K=C3=B6nig?= Date: Thu, 8 Aug 2024 13:46:46 +0200 Subject: [PATCH 01/17] Fix invalid event class in MRCMS prepop --- VERSION | 2 +- modules/templates/MRCMS/Demo/dvr_case_event_type.csv | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index 121e5f65b..2d96b7dbb 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -nursix-dev-5968-gca1e34b4e (2024-08-02 08:47:43) +nursix-dev-5969-g4064f0a7b (2024-08-08 13:46:46) diff --git a/modules/templates/MRCMS/Demo/dvr_case_event_type.csv b/modules/templates/MRCMS/Demo/dvr_case_event_type.csv index da1352a7a..ec1942852 100644 --- a/modules/templates/MRCMS/Demo/dvr_case_event_type.csv +++ b/modules/templates/MRCMS/Demo/dvr_case_event_type.csv @@ -1,3 +1,3 @@ Organisation,Event Class,Code,Name,Inactive,Default,Minimum Interval,Maximum per Day,Multiple,Residents Only,Excluded By,Presence required,Comments Betreuungsverband LUK Rendsburg,C,SEEN,Gesehen,false,true,,,false,false,,true,Person has been seen at a checkpoint -Betreuungsverband LUK Rendsburg,A,MAIL,Post abgeholt,false,false,,,false,false,,true,Person has been to fetch their mail +Betreuungsverband LUK Rendsburg,C,MAIL,Post abgeholt,false,false,,,false,false,,true,Person has been to fetch their mail From f4b53d045fddf5abd76e1eb31fdb84cfc495a9c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominic=20K=C3=B6nig?= Date: Tue, 13 Aug 2024 14:02:07 +0200 Subject: [PATCH 02/17] Fix record merger for nested lists of validators --- VERSION | 2 +- modules/core/methods/merge.py | 26 +++++++++++++++----------- modules/core/tools/validators.py | 1 + 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/VERSION b/VERSION index 2d96b7dbb..021f83283 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -nursix-dev-5969-g4064f0a7b (2024-08-08 13:46:46) +nursix-dev-5970-ga74fd014a (2024-08-13 14:02:07) diff --git a/modules/core/methods/merge.py b/modules/core/methods/merge.py index 229199e83..6d4737212 100644 --- a/modules/core/methods/merge.py +++ b/modules/core/methods/merge.py @@ -695,22 +695,26 @@ def init_requires(field, o, d): d: the duplicate value """ + requires = field.requires + allowed_override = [str(o), str(d)] - requires = field.requires if field.unique and not requires: - field.requires = IS_NOT_IN_DB(current.db, str(field), - allowed_override=allowed_override) + field.requires = IS_NOT_IN_DB(current.db, + str(field), + allowed_override = allowed_override, + ) else: - if not isinstance(requires, (list, tuple)): - requires = [requires] - for r in requires: - if hasattr(r, "allowed_override"): + def set_allowed_override(r): + if isinstance(r, (list, tuple)): + for validator in r: + set_allowed_override(validator) + elif hasattr(r, "other"): + set_allowed_override(r.other) + elif hasattr(r, "allowed_override"): r.allowed_override = allowed_override - if hasattr(r, "other") and \ - hasattr(r.other, "allowed_override"): - r.other.allowed_override = allowed_override - return + + set_allowed_override(requires) # ------------------------------------------------------------------------- @staticmethod diff --git a/modules/core/tools/validators.py b/modules/core/tools/validators.py index 068c3fde8..aee7952e4 100644 --- a/modules/core/tools/validators.py +++ b/modules/core/tools/validators.py @@ -1321,6 +1321,7 @@ def __init__(self, allowed_override = allowed_override, ignore_common_filters = ignore_common_filters, ) + self.skip_imports = skip_imports # ------------------------------------------------------------------------- From 7d4e905d702cd8555d11f4009fd540d51d31d0ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominic=20K=C3=B6nig?= Date: Thu, 15 Aug 2024 12:52:30 +0200 Subject: [PATCH 03/17] Fix extra data lookup in SSI --- VERSION | 2 +- modules/core/methods/ssi.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 021f83283..ca417ced4 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -nursix-dev-5970-ga74fd014a (2024-08-13 14:02:07) +nursix-dev-5971-gf4b53d045 (2024-08-15 12:52:30) diff --git a/modules/core/methods/ssi.py b/modules/core/methods/ssi.py index 5304f13a9..1843ac9e8 100644 --- a/modules/core/methods/ssi.py +++ b/modules/core/methods/ssi.py @@ -584,6 +584,8 @@ def get_extra_data(upload_form, extra_fields): continue field = f.get("field") + if callable(field): + field = field() if field: # Read value from upload form if field.name in form_vars: From 3595f7328e1b91f9b3160e5fd2456a05190d1c40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominic=20K=C3=B6nig?= Date: Thu, 22 Aug 2024 09:56:08 +0200 Subject: [PATCH 04/17] Refactor MergeProcess to accommodate resource specifics, handle user accounts when merging persons; MRCMS: enforce single HR record --- VERSION | 2 +- modules/core/methods/__init__.py | 2 +- modules/core/methods/merge.py | 417 +------------- modules/core/resource/__init__.py | 3 +- modules/core/resource/merge.py | 735 ++++++++++++++++++++++++ modules/core/resource/resource.py | 21 +- modules/s3db/org.py | 2 + modules/s3db/pr.py | 69 +++ modules/templates/MRCMS/customise/pr.py | 7 + 9 files changed, 830 insertions(+), 428 deletions(-) create mode 100644 modules/core/resource/merge.py diff --git a/VERSION b/VERSION index ca417ced4..2a553cbe9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -nursix-dev-5971-gf4b53d045 (2024-08-15 12:52:30) +nursix-dev-5972-g7d4e905d7 (2024-08-22 09:56:08) diff --git a/modules/core/methods/__init__.py b/modules/core/methods/__init__.py index 6f3bc4ce1..3aba067a6 100644 --- a/modules/core/methods/__init__.py +++ b/modules/core/methods/__init__.py @@ -9,7 +9,7 @@ from .grouped import * from .hcrud import * from .mapview import * -from .merge import S3Merge, S3RecordMerger +from .merge import S3Merge from .mobile import * from .organizer import * from .pois import * diff --git a/modules/core/methods/merge.py b/modules/core/methods/merge.py index 6d4737212..9e515121e 100644 --- a/modules/core/methods/merge.py +++ b/modules/core/methods/merge.py @@ -30,11 +30,8 @@ TABLE, TBODY, TD, TFOOT, TH, THEAD, TR from gluon.storage import Storage -from s3dal import Field - from ..resource import FS -from ..tools import IS_ONE_OF, s3_get_foreign_key, s3_represent_value, \ - s3_str +from ..tools import IS_ONE_OF, s3_represent_value, s3_str from ..ui import PersonSelector, DataTable, S3LocationAutocompleteWidget, \ LocationSelector @@ -784,416 +781,4 @@ def widget(field, value, download_url=None, **attr): return inp -# ============================================================================= -class S3RecordMerger: - """ Record Merger """ - - def __init__(self, resource): - """ - Args: - resource: the resource - """ - - self.resource = resource - self.main = True - - # ------------------------------------------------------------------------- - @staticmethod - def raise_error(msg, error=RuntimeError): - """ - Rolls back the current transaction and raise an error - - Args: - message: error message - error: exception class to raise - """ - - current.db.rollback() - raise error(msg) - - # ------------------------------------------------------------------------- - def update_record(self, table, record_id, row, data): - - form = Storage(vars = Storage([(f, row[f]) - for f in table.fields if f in row])) - form.vars.update(data) - try: - current.db(table._id==row[table._id]).update(**data) - except Exception: - self.raise_error("Could not update %s.%s" % - (table._tablename, record_id)) - else: - s3db = current.s3db - s3db.update_super(table, form.vars) - current.auth.s3_set_record_owner(table, row[table._id], force_update=True) - s3db.onaccept(table, form, method="update") - return form.vars - - # ------------------------------------------------------------------------- - def delete_record(self, table, record_id, replaced_by=None): - - s3db = current.s3db - - if replaced_by is not None: - replaced_by = {str(record_id): replaced_by} - resource = s3db.resource(table, id=record_id) - success = resource.delete(replaced_by=replaced_by, - cascade=True) - if not success: - self.raise_error("Could not delete %s.%s (%s)" % - (resource.tablename, record_id, resource.error)) - return success - - # ------------------------------------------------------------------------- - @staticmethod - def merge_realms(table, original, duplicate): - """ - Merge the realms of two person entities (update all - realm_entities in all records from duplicate to original) - - Args: - table: the table original and duplicate belong to - original: the original record - duplicate: the duplicate record - """ - - if "pe_id" not in table.fields: - return - - original_pe_id = original["pe_id"] - duplicate_pe_id = duplicate["pe_id"] - - db = current.db - - for t in db: - if "realm_entity" in t.fields: - - query = (t.realm_entity == duplicate_pe_id) - if "deleted" in t.fields: - query &= (t.deleted == False) - try: - db(query).update(realm_entity = original_pe_id) - except: - db.rollback() - raise - return - - - # ------------------------------------------------------------------------- - def fieldname(self, key): - - fn = None - if "." in key: - alias, fn = key.split(".", 1) - if alias not in ("~", self.resource.alias): - fn = None - elif self.main: - fn = key - return fn - - # ------------------------------------------------------------------------- - def merge(self, - original_id, - duplicate_id, - replace = None, - update = None, - main = True): - """ - Merge a duplicate record into its original and remove the - duplicate, updating all references in the database. - - Args: - original_id: the ID of the original record - duplicate_id: the ID of the duplicate record - replace: list fields names for which to replace the - values in the original record with the values - of the duplicate - update: dict of {field:value} to update the final record - main: internal indicator for recursive calls - - Notes: - - virtual references (i.e. non-SQL, without foreign key - constraints) must be declared in the table configuration - of the referenced table like: - - s3db.configure(tablename, referenced_by=[(tablename, fieldname)]) - - This does not apply for list:references which will be found - automatically. - - this method can only be run from master resources (in order - to find all components). To merge component records, you have - to re-define the component as a master resource. - - NB CLI calls must db.commit() - - TODO de-duplicate components and link table entries - """ - - self.main = main - - db = current.db - resource = self.resource - table = resource.table - tablename = resource.tablename - - # Check for master resource - if resource.parent: - self.raise_error("Must not merge from component", SyntaxError) - - # Check permissions - auth = current.auth - has_permission = auth.s3_has_permission - permitted = has_permission("update", table, - record_id = original_id) and \ - has_permission("delete", table, - record_id = duplicate_id) - if not permitted: - self.raise_error("Operation not permitted", auth.permission.error) - - # Load all models - s3db = current.s3db - if main: - s3db.load_all_models() - if db._lazy_tables: - # Must roll out all lazy tables to detect dependencies - for tn in list(db._LAZY_TABLES.keys()): - db[tn] - - # Get the records - original = None - duplicate = None - query = table._id.belongs([original_id, duplicate_id]) - if "deleted" in table.fields: - query &= (table.deleted == False) - rows = db(query).select(table.ALL, limitby=(0, 2)) - for row in rows: - record_id = row[table._id] - if str(record_id) == str(original_id): - original = row - original_id = row[table._id] - elif str(record_id) == str(duplicate_id): - duplicate = row - duplicate_id = row[table._id] - msg = "Record not found: %s.%s" - if original is None: - self.raise_error(msg % (tablename, original_id), KeyError) - if duplicate is None: - self.raise_error(msg % (tablename, duplicate_id), KeyError) - - # Find all single-components of this resource - # (so that their records can be merged rather than just re-linked) - # NB this is only reliable as far as the relevant component - # declarations have actually happened before calling merge: - # Where that happens in another controller (or customise_*) - # than the one merge is being run from, those components may - # be treated as multiple instead! - single = {} - hooks = s3db.get_hooks(table)[1] - if hooks: - for alias, hook in hooks.items(): - if hook.multiple: - continue - component = resource.components.get(alias) - if not component: - # E.g. module disabled - continue - ctablename = component.tablename - if ctablename in single: - single[ctablename].append(component) - else: - single[ctablename] = [component] - - # Is this a super-entity? - is_super_entity = table._id.name != "id" and \ - "instance_type" in table.fields - - # Find all references - referenced_by = list(table._referenced_by) - - # Append virtual references - virtual_references = s3db.get_config(tablename, "referenced_by") - if virtual_references: - referenced_by.extend(virtual_references) - - # Find and append list:references - for t in db: - for f in t: - ftype = str(f.type) - if ftype[:14] == "list:reference" and \ - ftype[15:15+len(tablename)] == tablename: - referenced_by.append((t._tablename, f.name)) - - update_record = self.update_record - delete_record = self.delete_record - fieldname = self.fieldname - - # Update all references - define_resource = s3db.resource - for referee in referenced_by: - - if isinstance(referee, Field): - tn, fn = referee.tablename, referee.name - else: - tn, fn = referee - - se = s3db.get_config(tn, "super_entity") - if is_super_entity and \ - (isinstance(se, (list, tuple)) and tablename in se or \ - se == tablename): - # Skip instance types of this super-entity - continue - - # Reference field must exist - if tn not in db or fn not in db[tn].fields: - continue - - rtable = db[tn] - if tn in single: - for component in single[tn]: - - if component.link is not None: - component = component.link - - if fn == component.fkey: - - # Single component => must reduce to one record - join = component.get_join() - pkey = component.pkey - lkey = component.lkey or component.fkey - - # Get the component records - query = (table[pkey] == original[pkey]) & join - osub = db(query).select(limitby=(0, 1)).first() - query = (table[pkey] == duplicate[pkey]) & join - dsub = db(query).select(limitby=(0, 1)).first() - - ctable = component.table - ctable_id = ctable._id - - if dsub is None: - # No duplicate => skip this step - continue - - elif not osub: - # No original => re-link the duplicate - dsub_id = dsub[ctable_id] - data = {lkey: original[pkey]} - update_record(ctable, dsub_id, dsub, data) - - elif component.linked is not None: - - # Duplicate link => remove it - dsub_id = dsub[ctable_id] - delete_record(ctable, dsub_id) - - else: - # Two records => merge them - osub_id = osub[ctable_id] - dsub_id = dsub[ctable_id] - cresource = define_resource(component.tablename) - cresource.merge(osub_id, dsub_id, - replace = replace, - update = update, - main = False, - ) - - # Find the foreign key - rfield = rtable[fn] - ktablename, key, multiple = s3_get_foreign_key(rfield) - if not ktablename: - if str(rfield.type) == "integer": - # Virtual reference - key = table._id.name - else: - continue - - # Find the referencing records - if multiple: - query = rtable[fn].contains(duplicate[key]) - else: - query = rtable[fn] == duplicate[key] - rows = db(query).select(rtable._id, rtable[fn]) - - # Update the referencing records - for row in rows: - if not multiple: - data = {fn:original[key]} - else: - keys = [k for k in row[fn] if k != duplicate[key]] - if original[key] not in keys: - keys.append(original[key]) - data = {fn: keys} - update_record(rtable, row[rtable._id], row, data) - - # Merge super-entity records - super_entities = resource.get_config("super_entity") - if super_entities is not None: - - if not isinstance(super_entities, (list, tuple)): - super_entities = [super_entities] - - for super_entity in super_entities: - - super_table = s3db.table(super_entity) - if not super_table: - continue - superkey = super_table._id.name - - skey_o = original[superkey] - if not skey_o: - msg = "No %s found in %s.%s" % (superkey, - tablename, - original_id) - current.log.warning(msg) - s3db.update_super(table, original) - skey_o = original[superkey] - if not skey_o: - continue - skey_d = duplicate[superkey] - if not skey_d: - msg = "No %s found in %s.%s" % (superkey, - tablename, - duplicate_id) - current.log.warning(msg) - continue - - sresource = define_resource(super_entity) - sresource.merge(skey_o, skey_d, - replace=replace, - update=update, - main=False) - - # Merge and update original data - data = Storage() - if replace: - for k in replace: - fn = fieldname(k) - if fn and fn in duplicate: - data[fn] = duplicate[fn] - if update: - for k, v in update.items(): - fn = fieldname(k) - if fn in table.fields: - data[fn] = v - if len(data): - r = None - p = Storage([(fn, "__deduplicate_%s__" % fn) - for fn in data - if table[fn].unique and \ - table[fn].type == "string" and \ - data[fn] == duplicate[fn]]) - if p: - r = Storage([(fn, original[fn]) for fn in p]) - update_record(table, duplicate_id, duplicate, p) - update_record(table, original_id, original, data) - if r: - update_record(table, duplicate_id, duplicate, r) - - # Delete the duplicate - if not is_super_entity: - self.merge_realms(table, original, duplicate) - delete_record(table, duplicate_id, replaced_by=original_id) - - # Success - return True - # END ========================================================================= diff --git a/modules/core/resource/__init__.py b/modules/core/resource/__init__.py index 5bae827d4..de258907d 100644 --- a/modules/core/resource/__init__.py +++ b/modules/core/resource/__init__.py @@ -1,7 +1,8 @@ #from .components import * -from .delete import * +from .delete import DeleteProcess from .exporter import * from .importer import * +from .merge import MergeProcess from .query import * from .resource import * #from .rfilter import * diff --git a/modules/core/resource/merge.py b/modules/core/resource/merge.py new file mode 100644 index 000000000..14c062acd --- /dev/null +++ b/modules/core/resource/merge.py @@ -0,0 +1,735 @@ +""" + Cascading Merge of Records + + Copyright: 2012-2024 (c) Sahana Software Foundation + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. +""" + +from gluon import current +from gluon.storage import Storage + +from s3dal import Field, original_tablename + +from ..tools import s3_get_foreign_key + +# ============================================================================= +class MergeProcess: + """ + Low-level process to merge two records; can be subclassed and extended + with resource-specific actions before and after the actual merge to + handle non-generalizable relationships (configure the class for the + table as "merge_process") + """ + + def __init__(self, resource, main=True): + """ + Args: + resource: the resource + """ + + self.resource = resource + self.main = main + + # ------------------------------------------------------------------------- + @classmethod + def merge(cls, resource, original_id, duplicate_id, replace=None, update=None, main=True): + """ + Instantiates and starts a merge process for the resource, + applying the "merge" table setting for customized merge + processes + + Args: + resource: the target CRUDResource + original_id: the record ID of the original (to keep) + duplicate_id: the record ID of the duplicate (to merge and remove) + replace: list of field names to replace values in the original + with those from the duplicate + update: dict of {fieldname: value} with additional updates to + apply to the original + main: indicator for recursive calls + + Returns: + success True|False + + Raises: + NotImplementedError: if no suitable merge process for the + resource is available (e.g. immutable + resources) + S3PermissionError: if the current user is not permitted to + perform the merge + KeyError: if either of the records cannot be found + RuntimeError: for any other error during the process + + Important: + - Any exceptions during the process will immediately roll back + the current DB transaction, so this should always be called + in an isolated transaction without any other relevant writes; + in particular one should not run multiple merges within a + single translation (e.g. from the CLI) + - MergeProcesses can produce unexpected inconsistencies in + complex models, which then require additional cleaning up. + Therefore it is not recommended to expose this functionality + to users with insufficient knowledge/privileges to perform + such cleanups + - In many cases, it is safer and will maintain better traceability + to archive or otherwise deactivate duplicate records rather than + merging them - this tool should therefore be used with much + consideration and not as a routine means to fix user mistakes + """ + + if resource.get_config("immutable"): + process = None + else: + process = resource.get_config("merge_process", cls) + + if not process: + # Merge not permitted + raise NotImplementedError("No merge process available for this resource") + + merge = process(resource, main=main) + try: + return merge(original_id, duplicate_id, replace=replace, update=update) + except Exception: + current.db.rollback() + raise + + # ------------------------------------------------------------------------- + def __call__(self, + original_id, + duplicate_id, + replace = None, + update = None, + ): + """ + Merges a duplicate record into its original and removes the + duplicate, updating all references in the database. + + Args: + original_id: the ID of the original record + duplicate_id: the ID of the duplicate record + replace: list fields names for which to replace the + values in the original record with the values + of the duplicate + update: dict of {field:value} to update the final record + main: internal indicator for recursive calls + + Returns: + success True|False + + Notes: + - virtual references (i.e. non-SQL, without foreign key + constraints) must be declared in the table configuration + of the referenced table like: + + s3db.configure(tablename, referenced_by=[(tablename, fieldname)]) + + This does not apply for list:references which will be found + automatically. + - this method can only be run from master resources (in order + to find all components). To merge component records, you have + to re-define the component as a master resource. + - CLI calls must db.commit() + """ + + db = current.db + + resource = self.resource + table = resource.table + tablename = resource.tablename + + # Check that merge is permitted for this resource + if resource.get_config("immutable"): + raise RuntimeError("Must not merge %s records" % tablename) + + # Check that merge is run from a master resource + if resource.parent: + raise RuntimeError("Must not merge from component") + + # Check permissions + auth = current.auth + has_permission = auth.s3_has_permission + permitted = has_permission("update", table, record_id=original_id) and \ + has_permission("delete", table, record_id=duplicate_id) + if not permitted: + raise auth.permission.error("Operation not permitted") + + # Load all models, including lazy tables + s3db = current.s3db + if self.main: + s3db.load_all_models() + if db._lazy_tables: + # Must roll out all lazy tables to detect dependencies + for tn in list(db._LAZY_TABLES.keys()): + db[tn] + + # Load the two records + original = None + duplicate = None + query = table._id.belongs([original_id, duplicate_id]) + if "deleted" in table.fields: + query &= (table.deleted == False) + rows = db(query).select(table.ALL, limitby=(0, 2)) + for row in rows: + record_id = row[table._id] + if str(record_id) == str(original_id): + original = row + original_id = row[table._id] + elif str(record_id) == str(duplicate_id): + duplicate = row + duplicate_id = row[table._id] + msg = "Record not found: %s.%s" + if original is None: + raise KeyError(msg % (tablename, original_id)) + if duplicate is None: + raise KeyError(msg % (tablename, duplicate_id)) + + # Prepare the merge process + self.prepare(original, duplicate) + + # Is this a super-entity? + is_super_entity = table._id.name != "id" and "instance_type" in table.fields + + # Update all references + self.update_references(original, + duplicate, + is_super_entity=is_super_entity, + replace=replace, + update=update, + ) + + # Merge super-entity records + self.merge_super(original, duplicate, replace=replace, update=update) + + # Merge and update original data + self.update_data(original, duplicate, replace=replace, update=update) + + # Delete the duplicate + if not is_super_entity: + self.merge_realms(table, original, duplicate) + self.delete_record(table, duplicate_id, replaced_by=original_id) + + # Perform any cleanups as necessary + self.cleanup() + + # Success + return True + + # ------------------------------------------------------------------------- + def prepare(self, original, duplicate): + """ + Prepares the merge process; this can be overridden in subclasses + to add resource-specific actions that need to be run before the + actual merge + + Args: + original: the original record + duplicate: the duplicate record + """ + + # Nothing to do in the default MergeProcess + pass + + # ------------------------------------------------------------------------- + def cleanup(self): + """ + Performs cleanup actions at the end of the merge process; + this can be overridden in subclasses to add resource-specific + actions that can only be done after the actual merge + """ + + # Nothing to do in the default MergeProcess + pass + + # ------------------------------------------------------------------------- + @staticmethod + def get_single_components(resource): + """ + Finds all single-components of the target resource, so that + their records can be merged rather than just re-linked (see + limitations for this logic below) + + Returns: + a dict {tablename: [CRUDResource, ...]}, i.e. component + resources grouped by component table name + + Notes: + - This is only reliable as far as the relevant component + declarations have actually happened before calling merge: + Where that happens in a controller (or customise_*) other + than the one merge is being run from, those components may + be treated as multiple instead! + - Filtered components will never be deduplicated automatically, + even if they are declared single + - For single-components that are linked via link table, this + will return the link resource instead (i.e. the links will + be deduplicated, but not the linked records) + - If a single component is not bound by a direct foreign key + constraint, then it will not be picked up by update_references, + regardless what this function finds + """ + + table = resource.table + + single = {} + hooks = current.s3db.get_hooks(table)[1] + if hooks: + for alias, hook in hooks.items(): + if hook.multiple or hook.filterby: + continue + component = resource.components.get(alias) + if not component: + # E.g. module disabled + continue + + if component.link: + component = component.link + + ctablename = component.tablename + if ctablename in single: + single[ctablename].append(component) + else: + single[ctablename] = [component] + + return single + + # ------------------------------------------------------------------------- + def update_references(self, + original, + duplicate, + is_super_entity=False, + replace=None, + update=None, + ): + """ + Re-links referencing records from the duplicate to the original + + Args: + original: the original record (Row) + duplicate: the duplicate record (Row) + is_super_entity: resource is a super-entity + replace: list of field names to replace original values + with duplicate ones + update: dict of {field: value} to update the original record + and/or related records + + Note: + Records in tables configured as immutable will not be re-linked. + + """ + + db = current.db + s3db = current.s3db + + resource = self.resource + table = resource.table + tablename = resource.tablename + + single = self.get_single_components(resource) + referenced_by = self.get_referenced_by(table) + + update_record = self.update_record + delete_record = self.delete_record + + define_resource = s3db.resource + for referee in referenced_by: + + if isinstance(referee, Field): + tn, fn = referee.tablename, referee.name + else: + tn, fn = referee + + # Referencing table and field must exist + rtable = db[tn] if tn in db else None + if not rtable or fn not in rtable.fields: + continue + + # Skip immutable tables + otn = original_tablename(rtable) + if s3db.get_config(otn, "immutable"): + continue + + # Skip instance types of super-entities + se = s3db.get_config(otn, "super_entity") + if is_super_entity and \ + (isinstance(se, (list, tuple)) and tablename in se or se == tablename): + continue + + # Handle single-components (one-to-one relationships) + if tn in single: + for component in single[tn]: + + if fn == component.fkey: + + # Single component => must reduce to one record + join = component.get_join() + pkey = component.pkey + lkey = component.lkey or component.fkey + + # Get the component records + query = (table[pkey] == original[pkey]) & join + osub = db(query).select(limitby=(0, 1)).first() + query = (table[pkey] == duplicate[pkey]) & join + dsub = db(query).select(limitby=(0, 1)).first() + + ctable = component.table + ctable_id = ctable._id + + if dsub is None: + # No duplicate => skip this step + continue + + elif not osub: + # No original => re-link the duplicate + dsub_id = dsub[ctable_id] + data = {lkey: original[pkey]} + update_record(ctable, dsub_id, dsub, data) + + elif component.linked is not None: + # Duplicate link => remove it + dsub_id = dsub[ctable_id] + delete_record(ctable, dsub_id) + + else: + # Two records => merge them + osub_id = osub[ctable_id] + dsub_id = dsub[ctable_id] + cresource = define_resource(component.tablename) + cresource.merge(osub_id, dsub_id, + replace = replace, + update = update, + main = False, + ) + + # Find the foreign key + rfield = rtable[fn] + ktablename, key, multiple = s3_get_foreign_key(rfield) + if not ktablename: + if str(rfield.type) == "integer": + # Virtual reference + key = table._id.name + else: + continue + + # Find the referencing records + if multiple: + query = rtable[fn].contains(duplicate[key]) + else: + query = rtable[fn] == duplicate[key] + rows = db(query).select(rtable._id, rtable[fn]) + + # Update the referencing records + for row in rows: + if not multiple: + data = {fn:original[key]} + else: + keys = [k for k in row[fn] if k != duplicate[key]] + if original[key] not in keys: + keys.append(original[key]) + data = {fn: keys} + update_record(rtable, row[rtable._id], row, data) + + # ------------------------------------------------------------------------- + @staticmethod + def get_referenced_by(table): + """ + Looks up referencing fields in other tables + + Args: + table - the Table of the target resource + + Returns: + List of field names (prefixed with their respective table name) + + Note: + - Apart from direct foreign key constraints, this function + will also find list:reference types automatically + - References to the primary key without foreign key constraint + (virtual references) must be declared in the table configuration + as "referenced_by" + - Indirect references via key table (e.g. super-entity) will + not be picked up by this function, and it is invalid to declare + them as virtual references; it may though be possible to + declare them as components of the super-entity itself, and + then they will be picked up by the merge_super sub-process + instead + """ + + tablename = original_tablename(table) + + # Find all referencing fields + referenced_by = list(table._referenced_by) + + # Append virtual references + virtual_references = current.s3db.get_config(tablename, "referenced_by") + if virtual_references: + referenced_by.extend(virtual_references) + + # Find and append list:references + for t in current.db: + for f in t: + ftype = str(f.type) + if ftype[:14] == "list:reference" and \ + ftype[15:15+len(tablename)] == tablename: + referenced_by.append((t._tablename, f.name)) + + return referenced_by + + # ------------------------------------------------------------------------- + def merge_super(self, original, duplicate, replace=None, update=None): + """ + Recursive sub-process to merge all corresponding super-entity + entries belonging to the target records + + Args: + original: the original Row + duplicate: the duplicate Row + replace: list of field names to replace original values + with duplicate ones + update: dict of {field: value} to update the original record + and/or related records + + Notes: + This will not actually remove the duplicate entry (which + would be invalid), but only re-link all records referencing + it + """ + + resource = self.resource + table = resource.table + tablename = resource.tablename + + s3db = current.s3db + + pkey = table._id.name + original_id = original[pkey] + duplicate_id = duplicate[pkey] + + super_entities = resource.get_config("super_entity") + if not super_entities: + return + + if not isinstance(super_entities, (list, tuple)): + super_entities = [super_entities] + + for super_entity in super_entities: + + super_table = s3db.table(super_entity) + if not super_table: + continue + superkey = super_table._id.name + + skey_o = original[superkey] + if not skey_o: + msg = "No %s found in %s.%s" % (superkey, tablename, original_id) + current.log.warning(msg) + s3db.update_super(table, original) + skey_o = original[superkey] + if not skey_o: + continue + skey_d = duplicate[superkey] + if not skey_d: + msg = "No %s found in %s.%s" % (superkey, tablename, duplicate_id) + current.log.warning(msg) + continue + + sresource = s3db.resource(super_entity) + sresource.merge(skey_o, skey_d, replace=replace, update=update, main=False) + + # ------------------------------------------------------------------------- + def update_data(self, original, duplicate, replace=None, update=None): + """ + Performs the update of the original + + Args: + original: the original Row + duplicate: the duplicate Row + replace: list of field names to replace original values + with duplicate ones + update: dict of {field: value} to update the original record + and/or related records + + """ + + table = self.resource.table + + pkey = table._id.name + original_id = original[pkey] + duplicate_id = duplicate[pkey] + + update_record = self.update_record + + data = Storage() + + fieldname = self.fieldname + if replace: + for k in replace: + fn = fieldname(k) + if fn and fn in duplicate: + data[fn] = duplicate[fn] + if update: + for k, v in update.items(): + fn = fieldname(k) + if fn in table.fields: + data[fn] = v + if len(data): + r = None + p = Storage([(fn, "__deduplicate_%s__" % fn) + for fn in data + if table[fn].unique and \ + table[fn].type == "string" and \ + data[fn] == duplicate[fn]]) + if p: + r = Storage([(fn, original[fn]) for fn in p]) + update_record(table, duplicate_id, duplicate, p) + update_record(table, original_id, original, data) + if r: + update_record(table, duplicate_id, duplicate, r) + + # ------------------------------------------------------------------------- + @staticmethod + def update_record(table, record_id, row, data): + """ + Updates a record, including post-processing the update + + Args: + table: the target Table + record_id: the target record ID + row: the target Row + data: a dict {fieldname: value} with the update + + Returns: + form.vars of the update (why?) + + Raises: + RuntimeError: if the update failed + """ + + form = Storage(vars = Storage([(f, row[f]) + for f in table.fields if f in row])) + form.vars.update(data) + try: + current.db(table._id==row[table._id]).update(**data) + except Exception: + raise RuntimeError("Could not update %s.%s" % (table._tablename, record_id)) + + s3db = current.s3db + s3db.update_super(table, form.vars) + current.auth.s3_set_record_owner(table, row[table._id], force_update=True) + s3db.onaccept(table, form, method="update") + + # TODO Why return the form vars? + return form.vars + + # ------------------------------------------------------------------------- + @staticmethod + def delete_record(table, record_id, replaced_by=None): + """ + Deletes a duplicate record + + Args: + table: the target Table + record_id: the ID of the record to delete + replaced_by: the ID of the record that replaces the deleted + record, for tracing + + Raises: + RuntimeError: if the deletion failed + + Returns: + success True|False (why?) + """ + + if replaced_by is not None: + replaced_by = {str(record_id): replaced_by} + + resource = current.s3db.resource(table, id=record_id) + success = resource.delete(replaced_by=replaced_by, cascade=True) + + if not success: + raise RuntimeError("Could not delete %s.%s (%s)" % \ + (resource.tablename, record_id, resource.error)) + + # TODO why return anything? + return bool(success) + + # ------------------------------------------------------------------------- + @staticmethod + def merge_realms(table, original, duplicate): + """ + Merge the realms of two person entities (update all + realm_entities in all records from duplicate to original) + + Args: + table: the table original and duplicate belong to + original: the original record + duplicate: the duplicate record + """ + + if "pe_id" not in table.fields: + return + + original_pe_id = original["pe_id"] + duplicate_pe_id = duplicate["pe_id"] + + db = current.db + + for t in db: + if "realm_entity" in t.fields: + + query = (t.realm_entity == duplicate_pe_id) + if "deleted" in t.fields: + query &= (t.deleted == False) + db(query).update(realm_entity = original_pe_id) + + # ------------------------------------------------------------------------- + def fieldname(self, key): + """ + Resolves the given key from replace/update parameters into + a field name + + Args: + key: the key (see Notes) + Returns: + the field name, or None if the key does not apply to the + current target resource + + Notes: + - a field name without prefix applies only to the master + resource, i.e. the resource the merge process is run from + - a field name with a component alias as prefix (e.g. + "person_details.nationality") applies only to a component + with that alias + - a field name with ~ as prefix applies to all components, + but not to the master resource + """ + + fn = None + if "." in key: + alias, fn = key.split(".", 1) + if alias not in ("~", self.resource.alias): + fn = None + elif self.main: + fn = key + return fn + +# END ========================================================================= diff --git a/modules/core/resource/resource.py b/modules/core/resource/resource.py index 67be7e56a..ebcf875d4 100644 --- a/modules/core/resource/resource.py +++ b/modules/core/resource/resource.py @@ -845,15 +845,18 @@ def merge(self, update = None, main = True, ): - """ Merge two records, see also S3RecordMerger.merge """ - - from ..methods import S3RecordMerger - return S3RecordMerger(self).merge(original_id, - duplicate_id, - replace = replace, - update = update, - main = main, - ) + """ + Merge two records; see MergeProcess.merge + """ + + from .merge import MergeProcess + return MergeProcess.merge(self, + original_id, + duplicate_id, + replace = replace, + update = update, + main = main, + ) # ------------------------------------------------------------------------- # Exports diff --git a/modules/s3db/org.py b/modules/s3db/org.py index 5534296f7..6e33443f6 100644 --- a/modules/s3db/org.py +++ b/modules/s3db/org.py @@ -3827,6 +3827,7 @@ def model(self): insertable = False, editable = False, deletable = False, + immutable = True, ) # CRUD strings @@ -3866,6 +3867,7 @@ def model(self): insertable = False, editable = False, deletable = False, + immutable = True, ) # --------------------------------------------------------------------- diff --git a/modules/s3db/pr.py b/modules/s3db/pr.py index 10990046b..b6115f19e 100644 --- a/modules/s3db/pr.py +++ b/modules/s3db/pr.py @@ -101,6 +101,7 @@ # Other functions "pr_availability_filter", "pr_import_prep", + "pr_PersonMergeProcess", # Data List Default Layouts #"pr_address_list_layout", @@ -948,6 +949,7 @@ def model(self): "presence", ), super_entity = ("pr_pentity", "sit_trackable"), + merge_process = pr_PersonMergeProcess, ) person_id_comment = pr_person_comment( @@ -5957,6 +5959,73 @@ def pr_get_entities(pe_ids=None, else: return repr_all +# ============================================================================= +class pr_PersonMergeProcess(MergeProcess): + # TODO docstring + + # ------------------------------------------------------------------------- + def prepare(self, original, duplicate): + # TODO docstring + + super().prepare(original, duplicate) + + db = current.db + s3db = current.s3db + auth = current.auth + + # Remove all account links of the duplicate + ltable = s3db.pr_person_user + query = (ltable.pe_id == duplicate.pe_id) & \ + (ltable.deleted == False) + links = db(query).select(ltable.id, ltable.user_id) + user_ids = {l.user_id for l in links} + for link in links: + self.delete_record(ltable, link) + + # Remove any orphaned accounts + utable = auth.settings.table_user + left = ltable.on((ltable.user_id == utable.id) & (ltable.deleted == False)) + query = (utable.id.belongs(user_ids)) & \ + (ltable.id == None) & \ + (utable.deleted == False) + accounts = db(query).select(utable.id, left=left) + auth = current.auth + for account in accounts: + user_id = account.id + auth.s3_anonymise_password(user_id, utable.id, user_id) + auth.s3_anonymise_roles(user_id, utable.id, user_id) + account.update_record(registration_key="disabled", deleted=True) + + # ------------------------------------------------------------------------- + def cleanup(self): + # TODO docstring + + super().cleanup() + + db = current.db + s3db = current.s3db + + # Remove any duplicate links from pr_person_user + # TODO generalize link-deduplication in s3db + ltable = s3db.pr_person_user + query = (ltable.deleted == False) + total = ltable.id.count() + original = ltable.id.min() + rows = db(query).select(total, + original, + ltable.pe_id, + ltable.user_id, + groupby = (ltable.pe_id, ltable.user_id), + having = total > 1, + ) + for row in rows: + link = row.pr_person_user + query = (ltable.pe_id == link.pe_id) & \ + (ltable.user_id == link.user_id) & \ + (ltable.id > row[original]) & \ + (ltable.deleted == False) + db(query).delete() + # ============================================================================= class pr_RoleRepresent(S3Represent): """ Representations of pr_role IDs """ diff --git a/modules/templates/MRCMS/customise/pr.py b/modules/templates/MRCMS/customise/pr.py index 0ea2e57c3..8183070f0 100644 --- a/modules/templates/MRCMS/customise/pr.py +++ b/modules/templates/MRCMS/customise/pr.py @@ -1480,6 +1480,13 @@ def pr_person_controller(**attr): if current.request.controller in ("dvr", "counsel"): configure_person_tags() + # Only one staff record per person + current.s3db.add_components("pr_person", + hrm_human_resource = {"joinby": "person_id", + "multiple": False, + }, + ) + # Custom prep standard_prep = s3.prep def prep(r): From d8bc7d9b916597fd509dc451a375e2192a1a304d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominic=20K=C3=B6nig?= Date: Thu, 22 Aug 2024 13:54:58 +0200 Subject: [PATCH 05/17] Complete MergeProcess and PersonMergeProcess --- VERSION | 2 +- modules/core/methods/merge.py | 8 +- modules/core/resource/merge.py | 173 +++++++++++++++------------------ modules/core/tools/utils.py | 44 +++++++++ modules/s3db/pr.py | 47 +++++---- 5 files changed, 150 insertions(+), 124 deletions(-) diff --git a/VERSION b/VERSION index 2a553cbe9..b41db0af2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -nursix-dev-5972-g7d4e905d7 (2024-08-22 09:56:08) +nursix-dev-5973-g3595f7328 (2024-08-22 13:54:58) diff --git a/modules/core/methods/merge.py b/modules/core/methods/merge.py index 9e515121e..9bd2319b6 100644 --- a/modules/core/methods/merge.py +++ b/modules/core/methods/merge.py @@ -1,7 +1,7 @@ """ Interactive Record Merger - Copyright: 2012-2022 (c) Sahana Software Foundation + Copyright: 2012-2024 (c) Sahana Software Foundation Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation @@ -614,9 +614,9 @@ def merge(self, r, **attr): except Exception: import sys r.error(424, - T("Could not merge records. (Internal Error: %s)") % - sys.exc_info()[1], - next=r.url()) + T("Could not merge records. (Internal Error: %s)") % sys.exc_info()[1], + next=r.url(), + ) else: # Cleanup bookmark list if mode == "Inclusive": diff --git a/modules/core/resource/merge.py b/modules/core/resource/merge.py index 14c062acd..a0adfbb28 100644 --- a/modules/core/resource/merge.py +++ b/modules/core/resource/merge.py @@ -37,14 +37,31 @@ class MergeProcess: """ Low-level process to merge two records; can be subclassed and extended with resource-specific actions before and after the actual merge to - handle non-generalizable relationships (configure the class for the - table as "merge_process") + handle non-generalizable relationships (to do so, configure the class + for the table as "merge_process") + + Notes: + - Any exceptions during the process will immediately roll back + the current DB transaction, so this should always be called + in an isolated transaction without any other relevant writes; + in particular one should not run multiple merges within a + single translation (e.g. from the CLI) + - MergeProcesses can produce unexpected inconsistencies in + complex models, which then require additional cleaning up. + Therefore it is not recommended to expose this functionality + to users with insufficient knowledge/privileges to perform + such cleanups + - In many cases, it is safer and will maintain better traceability + to archive or otherwise deactivate duplicate records rather than + merging them - this tool should therefore be used with much + consideration and not as a routine means to fix user mistakes """ def __init__(self, resource, main=True): """ Args: resource: the resource + main: indicator for recursive calls """ self.resource = resource @@ -80,21 +97,9 @@ def merge(cls, resource, original_id, duplicate_id, replace=None, update=None, m KeyError: if either of the records cannot be found RuntimeError: for any other error during the process - Important: - - Any exceptions during the process will immediately roll back - the current DB transaction, so this should always be called - in an isolated transaction without any other relevant writes; - in particular one should not run multiple merges within a - single translation (e.g. from the CLI) - - MergeProcesses can produce unexpected inconsistencies in - complex models, which then require additional cleaning up. - Therefore it is not recommended to expose this functionality - to users with insufficient knowledge/privileges to perform - such cleanups - - In many cases, it is safer and will maintain better traceability - to archive or otherwise deactivate duplicate records rather than - merging them - this tool should therefore be used with much - consideration and not as a routine means to fix user mistakes + Note: + This method can only be run for master resources, not for + components. """ if resource.get_config("immutable"): @@ -136,19 +141,11 @@ def __call__(self, Returns: success True|False - Notes: - - virtual references (i.e. non-SQL, without foreign key - constraints) must be declared in the table configuration - of the referenced table like: - - s3db.configure(tablename, referenced_by=[(tablename, fieldname)]) - - This does not apply for list:references which will be found - automatically. - - this method can only be run from master resources (in order - to find all components). To merge component records, you have - to re-define the component as a master resource. - - CLI calls must db.commit() + Note: + The merge process should normally be instantiated and run + via MergeProcess.merge; otherwise the caller must take care + to choose the correct process class for the target resource + and to roll back the DB transaction if any Exception occurs. """ db = current.db @@ -260,58 +257,6 @@ def cleanup(self): # Nothing to do in the default MergeProcess pass - # ------------------------------------------------------------------------- - @staticmethod - def get_single_components(resource): - """ - Finds all single-components of the target resource, so that - their records can be merged rather than just re-linked (see - limitations for this logic below) - - Returns: - a dict {tablename: [CRUDResource, ...]}, i.e. component - resources grouped by component table name - - Notes: - - This is only reliable as far as the relevant component - declarations have actually happened before calling merge: - Where that happens in a controller (or customise_*) other - than the one merge is being run from, those components may - be treated as multiple instead! - - Filtered components will never be deduplicated automatically, - even if they are declared single - - For single-components that are linked via link table, this - will return the link resource instead (i.e. the links will - be deduplicated, but not the linked records) - - If a single component is not bound by a direct foreign key - constraint, then it will not be picked up by update_references, - regardless what this function finds - """ - - table = resource.table - - single = {} - hooks = current.s3db.get_hooks(table)[1] - if hooks: - for alias, hook in hooks.items(): - if hook.multiple or hook.filterby: - continue - component = resource.components.get(alias) - if not component: - # E.g. module disabled - continue - - if component.link: - component = component.link - - ctablename = component.tablename - if ctablename in single: - single[ctablename].append(component) - else: - single[ctablename] = [component] - - return single - # ------------------------------------------------------------------------- def update_references(self, original, @@ -448,6 +393,58 @@ def update_references(self, data = {fn: keys} update_record(rtable, row[rtable._id], row, data) + # ------------------------------------------------------------------------- + @staticmethod + def get_single_components(resource): + """ + Finds all single-components of the target resource, so that + their records can be merged rather than just re-linked (see + limitations for this logic below) + + Returns: + a dict {tablename: [CRUDResource, ...]}, i.e. component + resources grouped by component table name + + Notes: + - This is only reliable as far as the relevant component + declarations have actually happened before calling merge: + Where that happens in a controller (or customise_*) other + than the one merge is being run from, those components may + be treated as multiple instead! + - Filtered components will never be deduplicated automatically, + even if they are declared single + - For single-components that are linked via link table, this + will return the link resource instead (i.e. the links will + be deduplicated, but not the linked records) + - If a single component is not bound by a direct foreign key + constraint, then it will not be picked up by update_references, + regardless what this function finds + """ + + table = resource.table + + single = {} + hooks = current.s3db.get_hooks(table)[1] + if hooks: + for alias, hook in hooks.items(): + if hook.multiple or hook.filterby: + continue + component = resource.components.get(alias) + if not component: + # E.g. module disabled + continue + + if component.link: + component = component.link + + ctablename = component.tablename + if ctablename in single: + single[ctablename].append(component) + else: + single[ctablename] = [component] + + return single + # ------------------------------------------------------------------------- @staticmethod def get_referenced_by(table): @@ -617,9 +614,6 @@ def update_record(table, record_id, row, data): row: the target Row data: a dict {fieldname: value} with the update - Returns: - form.vars of the update (why?) - Raises: RuntimeError: if the update failed """ @@ -637,9 +631,6 @@ def update_record(table, record_id, row, data): current.auth.s3_set_record_owner(table, row[table._id], force_update=True) s3db.onaccept(table, form, method="update") - # TODO Why return the form vars? - return form.vars - # ------------------------------------------------------------------------- @staticmethod def delete_record(table, record_id, replaced_by=None): @@ -654,9 +645,6 @@ def delete_record(table, record_id, replaced_by=None): Raises: RuntimeError: if the deletion failed - - Returns: - success True|False (why?) """ if replaced_by is not None: @@ -669,9 +657,6 @@ def delete_record(table, record_id, replaced_by=None): raise RuntimeError("Could not delete %s.%s (%s)" % \ (resource.tablename, record_id, resource.error)) - # TODO why return anything? - return bool(success) - # ------------------------------------------------------------------------- @staticmethod def merge_realms(table, original, duplicate): diff --git a/modules/core/tools/utils.py b/modules/core/tools/utils.py index 457a21741..3fd2a8462 100644 --- a/modules/core/tools/utils.py +++ b/modules/core/tools/utils.py @@ -39,6 +39,7 @@ "set_last_record_id", "get_last_record_id", "remove_last_record_id", + "deduplicate_links", "s3_addrow", "s3_dev_toolbar", "s3_flatlist", @@ -274,6 +275,49 @@ def remove_last_record_id(tablename=None): else: del session_s3[LAST_ID] +# ============================================================================= +def deduplicate_links(table, *fieldnames): + """ + Removes any duplicates (by combination of specified fields) in a + link table; useful to clean up after imports or merge + + Args: + table: the target Table + fieldnames: names of fields to de-duplicate by + + Returns: + total number of deleted duplicates + """ + + db = current.db + + base_query = (table.deleted == False) if "deleted" in table else (table.id>0) + + total = table._id.count() + original = table._id.min() + + fields = [] + query = base_query + for fn in fieldnames: + field = table[fn] + fields.append(field) + query = (field != None) & query + rows = db(query).select(total, + original, + *fields, + groupby = fields, + having = total > 1, + ) + result = 0 + for row in rows: + link = row[table] + query = base_query & (table._id > row[original]) + for field in fields: + query = (field == link[field]) & query + result += db(query).delete() + + return result + # ============================================================================= def s3_validate(table, field, value, record=None): """ diff --git a/modules/s3db/pr.py b/modules/s3db/pr.py index b6115f19e..fd6cd2af4 100644 --- a/modules/s3db/pr.py +++ b/modules/s3db/pr.py @@ -5961,11 +5961,24 @@ def pr_get_entities(pe_ids=None, # ============================================================================= class pr_PersonMergeProcess(MergeProcess): - # TODO docstring + """ + Low-level merge process for person records + + - extends the default process to handle user accounts linked + to the person records + """ # ------------------------------------------------------------------------- def prepare(self, original, duplicate): - # TODO docstring + """ + Prepares the merge process + - removes all account links for the duplicate record + - deactivates and removes all corresponding user accounts + + Args: + original: the original record + duplicate: the duplicate record + """ super().prepare(original, duplicate) @@ -5998,33 +6011,17 @@ def prepare(self, original, duplicate): # ------------------------------------------------------------------------- def cleanup(self): - # TODO docstring + """ + Performs cleanup actions at the end of the merge process + - Cleans up any duplicate account links (pr_person_user) + that may be left behind by the default merge process + """ super().cleanup() - db = current.db - s3db = current.s3db - # Remove any duplicate links from pr_person_user - # TODO generalize link-deduplication in s3db - ltable = s3db.pr_person_user - query = (ltable.deleted == False) - total = ltable.id.count() - original = ltable.id.min() - rows = db(query).select(total, - original, - ltable.pe_id, - ltable.user_id, - groupby = (ltable.pe_id, ltable.user_id), - having = total > 1, - ) - for row in rows: - link = row.pr_person_user - query = (ltable.pe_id == link.pe_id) & \ - (ltable.user_id == link.user_id) & \ - (ltable.id > row[original]) & \ - (ltable.deleted == False) - db(query).delete() + ltable = current.s3db.pr_person_user + deduplicate_links(ltable, "pe_id", "user_id") # ============================================================================= class pr_RoleRepresent(S3Represent): From ce22dbc7bdcb55773bd20911d5fb2c90581246ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominic=20K=C3=B6nig?= Date: Mon, 26 Aug 2024 22:18:45 +0200 Subject: [PATCH 06/17] Improvements for IS_ISO639_2_LANGUAGE_CODE, MRCMS: reduced set of case languages for MRCMS to ease selection --- VERSION | 2 +- modules/core/tools/validators.py | 73 ++++++++++++++++++++++++------- modules/s3cfg.py | 13 ++++++ modules/s3db/dvr.py | 25 +---------- modules/templates/MRCMS/config.py | 18 ++++++++ 5 files changed, 90 insertions(+), 41 deletions(-) diff --git a/VERSION b/VERSION index b41db0af2..a3ce81cf2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -nursix-dev-5973-g3595f7328 (2024-08-22 13:54:58) +nursix-dev-5974-gd8bc7d9b9 (2024-08-26 22:18:45) diff --git a/modules/core/tools/validators.py b/modules/core/tools/validators.py index aee7952e4..935b49ce3 100644 --- a/modules/core/tools/validators.py +++ b/modules/core/tools/validators.py @@ -2433,8 +2433,8 @@ def __init__(self, Args: error_message: alternative error message multiple: allow selection of multiple options - select: dict of options for the selector, - defaults to settings.L10n.languages, + select: dict or code/tuple-list of options for the + selector, defaults to settings.L10n.languages, set explicitly to None to allow all languages sort: sort options in selector translate: translate the language options into @@ -2453,6 +2453,7 @@ def __init__(self, self._select = current.deployment_settings.get_L10n_languages() else: self._select = select + self.translate = translate # ------------------------------------------------------------------------- @@ -2463,26 +2464,28 @@ def options(self, zero=True): superclass function here. Args: - zero: include an empty-option (overrides self.zero) + zero: include an empty-option (with self.zero as label) Returns: list of tuples (code, representation) """ - language_codes = self.language_codes() + language_codes = self.language_codes(mis=False) + + translate = self.translate + T = current.T - if self._select: + selection = self._select + if selection: language_codes_dict = dict(language_codes) - if self.translate: - T = current.T - items = ((k, T(v)) for k, v in self._select.items() - if k in language_codes_dict) - else: - items = ((k, v) for k, v in self._select.items() - if k in language_codes_dict) + if isinstance(selection, (list, tuple)): + selection = self.subset(language_codes_dict, selection) + items = ((k, (T(v) if translate else v)) + for k, v in selection.items() + if k != "mis" and k in language_codes_dict + ) else: - if self.translate: - T = current.T + if translate: items = ((k, T(v)) for k, v in language_codes) else: items = language_codes @@ -2492,11 +2495,43 @@ def options(self, zero=True): else: items = list(items) - if zero and not self.zero is None and not self.multiple: + if zero and self.zero is not None and not self.multiple: items.insert(0, ("", self.zero)) + # Miscellaneous always as last option + items.append(("mis", (T("Miscellaneous") if translate else "Miscellaneous"))) + return items + # ------------------------------------------------------------------------- + @staticmethod + def subset(languages, selection): + """ + Converts a list|tuple of languages into a dict {code: name}, + permitting both languages codes or tuples (code, name) as + list elements + + Args: + languages: the complete language dict (from .language_codes) + selection: the selection to determine the subset + + Returns: + a dict {code: language} + """ + + subset = [] + append = subset.append + + for l in selection: + if isinstance(l, str): + name = languages.get(l) + if name: + append((l, name)) + else: + append(l) + + return dict(subset) + # ------------------------------------------------------------------------- def represent(self, code): """ @@ -2557,11 +2592,14 @@ def represent_local(cls, code): # ------------------------------------------------------------------------- @staticmethod - def language_codes(): + def language_codes(mis=True): """ Returns a list of tuples of ISO639-1 alpha-2 language codes, can also be used to look up the language name + Args: + mis: include the "Miscellaneous" option + Just the subset which are useful for Translations - 2 letter code preferred, 3-letter code where none exists, no 'families' or Old @@ -3238,7 +3276,6 @@ def language_codes(): ("zun", "Zuni"), #("zxx", "No linguistic content; Not applicable"), ("zza", "Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki"), - ("mis", "Miscellaneous"), ] settings = current.deployment_settings @@ -3249,6 +3286,8 @@ def language_codes(): extra_codes = settings.get_L10n_extra_codes() if extra_codes: lang += extra_codes + if mis: + lang.append(("mis", "Miscellaneous")) return list(set(lang)) # Remove duplicates diff --git a/modules/s3cfg.py b/modules/s3cfg.py index 3d5d1f2b4..66f964db5 100644 --- a/modules/s3cfg.py +++ b/modules/s3cfg.py @@ -3317,6 +3317,18 @@ def get_dvr_household_size(self): """ return self.dvr.get("household_size", False) + def get_dvr_case_languages(self): + """ + The most commonly documented case languages as a list|tuple + of ISO 639/2 language codes; this will vary greatly between + deployments, so the default is to use all languages available + from the IS_ISO639_2_LANGUAGE_CODE validator, which may be + difficult to use (selector with over 360 languages!) + + - e.g. settings.dvr.case_languages = ("ar", "en", "zh") + """ + return self.dvr.get("case_languages") + def get_dvr_track_transfer_sites(self): """ Enable features to track transfer origin/destination sites @@ -3368,6 +3380,7 @@ def get_dvr_case_flags_org_specific(self): return self.dvr.get("case_flags_org_specific", False) # Needs ----------------------------------------------- + def get_dvr_need_types_org_specific(self): """ Use org-specific need types diff --git a/modules/s3db/dvr.py b/modules/s3db/dvr.py index 8f64e01ba..5b11d3fc0 100644 --- a/modules/s3db/dvr.py +++ b/modules/s3db/dvr.py @@ -477,28 +477,6 @@ def model(self): }, ) - # Report options FIXME - #axes = ["organisation_id", - # "case_need.need_id", - # ] - #levels = current.gis.get_relevant_hierarchy_levels() - #for level in levels: - # axes.append("current_address.location_id$%s" % level) - #highest_lx = "current_address.location_id$%s" % levels[0] - # - #facts = [(T("Number of Cases"), "count(id)"), - # ] - # - #report_options = {"rows": axes, - # "cols": axes, - # "fact": facts, - # "defaults": {"rows": "case_need.need_id", - # "cols": highest_lx, - # "fact": facts[0], - # "totals": True, - # }, - # } - # Table configuration configure(tablename, deduplicate = S3Duplicate(primary=("person_id",), @@ -527,6 +505,7 @@ def model(self): # Case Language: languages that can be used to communicate with # a case beneficiary # + languages = settings.get_dvr_case_languages() # Quality/Mode of communication: lang_quality_opts = (("N", T("native")), @@ -541,7 +520,7 @@ def model(self): person_id(empty = False, ondelete = "CASCADE", ), - LanguageField(select=None), + LanguageField(select=languages), Field("quality", default = "N", label = T("Quality/Mode"), diff --git a/modules/templates/MRCMS/config.py b/modules/templates/MRCMS/config.py index 72cd5c5b2..4a7073335 100644 --- a/modules/templates/MRCMS/config.py +++ b/modules/templates/MRCMS/config.py @@ -259,6 +259,24 @@ def counsel_home(): # Uncomment this to enable household size in cases, set to "auto" for automatic counting settings.dvr.household_size = "auto" + # Most commonly documented case languages + settings.dvr.case_languages = ('aa', 'am', 'anp', 'as', 'az', 'bal', 'bg', 'bho', 'bn', + 'bs', 'cs', 'da', 'de', 'el', 'en', 'es', 'et', 'fa', + 'fi', 'fil', 'fr', 'ga', 'gu', 'ha', 'hi', 'hmn', 'hr', + 'hu', 'hy', 'id', 'ig', 'it', 'ja', 'jv', 'ka', 'km', + 'kn', 'ko', 'ku', 'lo', 'lt', 'lv', 'mai', 'mk', 'ml', + 'mlt', 'mn', 'mr', 'my', 'nl', 'om', 'pa', 'pl', 'prs', + 'ps', 'pt', 'ro', 'rom', 'ru', 'rup', 'sd', 'si', 'sk', + 'sl', 'so', 'sq', 'sr', 'sv', 'sw', 'ta', 'te', 'th', + 'ti', 'tk', 'tl', 'tr', 'uk', 'ur', 'uz', 'vi', 'yo', + 'zh', 'ab', 'af', 'ak', 'an', 'ar', 'bem', 'cop', 'cr', + 'dak', 'del', 'din', 'gaa', 'kaw', 'kg', 'kho', 'kpe', + 'kru', 'kum', 'kv', 'kw', 'ky', 'lez', 'mdr', 'mis', + 'new', 'nso', 'nzi', 'pau', 'pi', 'raj', 'rm', 'rn', + 'rw', 'sm', 'sn', 'snk', 'srn', 'su', 'syr', 'tig', + 'tog', 'tsi', 'tw', 'umb', 'zza', + ) + settings.dvr.case_include_activity_docs = True settings.dvr.case_include_group_docs = True From ff390ad6088ef0c1a3e7e49d93d3ed4d33b00bea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominic=20K=C3=B6nig?= Date: Wed, 28 Aug 2024 20:27:39 +0200 Subject: [PATCH 07/17] MRCMS: start Arrivals/Departures report --- VERSION | 2 +- modules/templates/MRCMS/reports.py | 300 +++++++++++++++++++++++++++++ 2 files changed, 301 insertions(+), 1 deletion(-) diff --git a/VERSION b/VERSION index a3ce81cf2..bc443b154 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -nursix-dev-5974-gd8bc7d9b9 (2024-08-26 22:18:45) +nursix-dev-5975-gce22dbc7b (2024-08-28 20:27:39) diff --git a/modules/templates/MRCMS/reports.py b/modules/templates/MRCMS/reports.py index a3bfd08a7..4a5aa84db 100644 --- a/modules/templates/MRCMS/reports.py +++ b/modules/templates/MRCMS/reports.py @@ -1191,4 +1191,304 @@ def registrations(shelter_id, start_date, end_date): return registrations +# ============================================================================= +class ArrivalsDeparturesReport(BaseReport): + # TODO docstring + + report_type = "aandd" + + # ------------------------------------------------------------------------- + @property + def report_title(self): + """ A title for this report """ + + # TODO translation + return current.T("Arrivals and Departures##people") + + # ------------------------------------------------------------------------- + def json(self, r, **attr): + """ + Returns the report as JSON object + + Args: + r - the CRUDRequest + attr - controller parameters + + Returns: + a JSON object to construct a table like: + {"labels": [label, label, ...], + "rows": [[value, value, ...], ...] + "results": number + } + """ + + # TODO implement this + raise NotImplementedError() + + # ------------------------------------------------------------------------- + def xlsx(self, r, **attr): + """ + Returns the report as XLSX file + + Args: + r - the CRUDRequest + attr - controller parameters + + Returns: + a XLSX file + """ + + # TODO implement this + raise NotImplementedError() + + # ------------------------------------------------------------------------- + @staticmethod + def permitted(organisation_id=None): + """ + Checks if the user is permitted to access relevant case + and event data of the organisation + + Args: + organisation_id: the organisation record ID + + Returns: + boolean + """ + + # Determine the target realm + pe_id = current.s3db.pr_get_pe_id("org_organisation", organisation_id) \ + if organisation_id else None + + permitted = True + permitted_realms = current.auth.permission.permitted_realms + + # Check permissions for this realm + realms = permitted_realms("cr_shelter_registration_history") + if realms is not None: + permitted = permitted and (pe_id is None or pe_id in realms) + + return permitted + + # ------------------------------------------------------------------------- + @classmethod + def extract(cls, organisation_id, shelter_id, start_date, end_date): + """ + Extracts the data for the report + + Args: + organisation_id: limit to cases of this organisation + shelter_id: limit ins/outs at this shelter + start_date: the start of the interval (datetime.datetime) + end_date: the end of the interval (datetime.datetime) + + Returns: + tbd + """ + # TODO complete this + + # Generate a sub-query for relevant clients + clients = cls.clients(start_date, + end_date, + organisation_id = organisation_id, + ) + + # Determine which of the relevant clients were already checked-in + # at the start of the interval + rows = cls.prior_check_ins(clients, start_date, shelter_id) + checked_in_before = {row.person_id for row in rows} + + # Determine which of the relevant clients were checked-in at any + # time during the interval + # TODO exclude prior_ins from clients-subquery + rows = cls.check_ins(clients, start_date, end_date, shelter_id) + checked_in_later = {row.person_id for row in rows} + + # Anyone who was not checked-in at the start of the interval, + # but only later => ARRIVALS + arrivals = checked_in_later - checked_in_before + + # For those checked-in at the start of or during the interval, + # determine who was no longer checked-in at the end of the + # interval => DEPARTURES + rows = cls.final_events(checked_in_before | arrivals, + start_date, + end_date, + shelter_id, + ) + departures = {row.person_id for row in rows} + + data = arrivals, departures # TESTING + + # TODO for arrivals, determine the first check-in date during the interval + # TODO for departures, determine the last check-out date during the interval + + # TODO for both groups, extract the relevant person and case details + # for the report + + return data + + # ------------------------------------------------------------------------- + @staticmethod + def clients(start_date, end_date, organisation_id=None): + """ + Returns a subquery for all relevant client person IDs, i.e. those + who have a registration history entry (=status change) within the + given time interval + + Args: + start_date: the start of the interval (datetime.datetime) + end_date: the end of the interval (datetime.datetime) + organisation_id: limit to cases of this organisation + + Returns: + The subquery as SQL string + """ + + db = current.db + s3db = current.s3db + + ctable = s3db.dvr_case + rtable = s3db.cr_shelter_registration_history + + if organisation_id: + accessible_cases = (ctable.organisation_id == organisation_id) + else: + accessible_cases = current.auth.s3_accessible_query("read", ctable) + + join = ctable.on(accessible_cases & \ + (ctable.person_id == rtable.person_id) & \ + (ctable.deleted == False) & \ + (ctable.archived == False)) + + query = (rtable.date >= start_date) & \ + (rtable.date <= end_date) & \ + (rtable.deleted == False) + + return db(query)._select(rtable.person_id, + distinct = True, + join = join, + ) + + # ------------------------------------------------------------------------- + @classmethod + def prior_check_ins(cls, person_ids, start_date, shelter_id): + """ + Returns the check-in events for all persons who were + checked in to the shelter at the start of the period + """ + # TODO complete docstring + # TODO make shelter_id optional + + db = current.db + s3db = current.s3db + + rtable = s3db.cr_shelter_registration_history + + latest = cls.last_status_change(person_ids, + end_date = start_date, + ) + join = latest.on((latest.person_id == rtable.person_id) & \ + (latest.date == rtable.date)) + + query = (rtable.person_id.belongs(person_ids)) & \ + (rtable.shelter_id == shelter_id) & \ + (rtable.status == 2) & \ + (rtable.deleted == False) + + rows = db(query).select(rtable.id, + rtable.person_id, + rtable.shelter_id, + rtable.date, + rtable.status, + join = join, + ) + return rows + + # ------------------------------------------------------------------------- + @classmethod + def check_ins(cls, person_ids, start_date, end_date, shelter_id): + """ + Returns all check-in events at the site during the period + """ + # TODO complete docstring + # TODO make shelter_id optional + + db = current.db + s3db = current.s3db + + rtable = s3db.cr_shelter_registration_history + + query = (rtable.shelter_id == shelter_id) & \ + (rtable.status == 2) & \ + (rtable.date >= start_date) & \ + (rtable.date <= end_date) & \ + (rtable.person_id.belongs(person_ids)) & \ + (rtable.deleted == False) + + rows = db(query).select(rtable.id, + rtable.person_id, + rtable.shelter_id, + rtable.date, + rtable.status, + ) + return rows + + # ------------------------------------------------------------------------- + @classmethod + def final_events(cls, person_ids, start_date, end_date, shelter_id): + """ + Returns the final status events of the period for all persons + who were no longer checked-in at the end of the period + """ + # TODO complete docstring + # TODO make shelter_id optional + + db = current.db + s3db = current.s3db + + rtable = s3db.cr_shelter_registration_history + + latest = cls.last_status_change(person_ids, + start_date = start_date, + end_date = end_date, + ) + join = latest.on((latest.person_id == rtable.person_id) & \ + (latest.date == rtable.date)) + + query = (rtable.person_id.belongs(person_ids)) & \ + ((rtable.status != 2) | (rtable.shelter_id != shelter_id)) & \ + (rtable.deleted == False) + + rows = db(query).select(rtable.id, + rtable.person_id, + rtable.shelter_id, + rtable.date, + rtable.status, + join = join, + ) + return rows + + # ------------------------------------------------------------------------- + @staticmethod + def last_status_change(person_ids, start_date=None, end_date=None): + # TODO docstring + + db = current.db + s3db = current.s3db + + rtable = s3db.cr_shelter_registration_history + + query = (rtable.person_id.belongs(person_ids)) + if start_date: + query &= (rtable.date >= start_date) + if end_date: + query &= (rtable.date <= end_date) + query &= (rtable.deleted == False) + + latest = db(query).nested_select(rtable.person_id, + rtable.date.max().with_alias("date"), + groupby = rtable.person_id, + ).with_alias("last_status") + return latest + # END ========================================================================= From 7b1bacc6603cd6bff109afe9cf6abbafcb5f1862 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominic=20K=C3=B6nig?= Date: Thu, 29 Aug 2024 10:30:25 +0200 Subject: [PATCH 08/17] MRCMS: progress with A&D report --- VERSION | 2 +- modules/templates/MRCMS/reports.py | 222 ++++++++++++++++++++++------- 2 files changed, 171 insertions(+), 53 deletions(-) diff --git a/VERSION b/VERSION index bc443b154..aa034e2a5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -nursix-dev-5975-gce22dbc7b (2024-08-28 20:27:39) +nursix-dev-5976-gff390ad60 (2024-08-29 10:30:25) diff --git a/modules/templates/MRCMS/reports.py b/modules/templates/MRCMS/reports.py index 4a5aa84db..73a2b1c1c 100644 --- a/modules/templates/MRCMS/reports.py +++ b/modules/templates/MRCMS/reports.py @@ -1193,7 +1193,7 @@ def registrations(shelter_id, start_date, end_date): # ============================================================================= class ArrivalsDeparturesReport(BaseReport): - # TODO docstring + """ Report over newly arrived/departed shelter residents """ report_type = "aandd" @@ -1277,7 +1277,7 @@ def extract(cls, organisation_id, shelter_id, start_date, end_date): Args: organisation_id: limit to cases of this organisation - shelter_id: limit ins/outs at this shelter + shelter_id: limit to arrivals at/departures fromthis shelter start_date: the start of the interval (datetime.datetime) end_date: the end of the interval (datetime.datetime) @@ -1286,59 +1286,70 @@ def extract(cls, organisation_id, shelter_id, start_date, end_date): """ # TODO complete this - # Generate a sub-query for relevant clients + # Determine which residents were already checked-in at the start + # of the interval clients = cls.clients(start_date, - end_date, - organisation_id = organisation_id, - ) - - # Determine which of the relevant clients were already checked-in - # at the start of the interval + end_date, + organisation_id = organisation_id, + ) rows = cls.prior_check_ins(clients, start_date, shelter_id) checked_in_before = {row.person_id for row in rows} - # Determine which of the relevant clients were checked-in at any - # time during the interval - # TODO exclude prior_ins from clients-subquery + # Determine which residents were checked-in during the interval + # and when (date of first check-in) + clients = cls.clients(start_date, + end_date, + organisation_id = organisation_id, + exclude = checked_in_before, + ) rows = cls.check_ins(clients, start_date, end_date, shelter_id) - checked_in_later = {row.person_id for row in rows} - - # Anyone who was not checked-in at the start of the interval, - # but only later => ARRIVALS - arrivals = checked_in_later - checked_in_before - - # For those checked-in at the start of or during the interval, - # determine who was no longer checked-in at the end of the - # interval => DEPARTURES - rows = cls.final_events(checked_in_before | arrivals, + arrivals = {} + for row in rows: + person_id = row.person_id + if person_id not in arrivals: + arrivals[person_id] = row.date + + # Determine which of these residents were no longer checked-in by + # the end of the interval, and when they departed (date of last check-out + # after the first check-in) + rows = cls.final_events(checked_in_before | set(arrivals.keys()), start_date, end_date, shelter_id, ) - departures = {row.person_id for row in rows} + departures = cls.check_out_dates({row.person_id for row in rows}, + start_date, + end_date, + shelter_id = shelter_id, + check_in_dates = arrivals, + ) data = arrivals, departures # TESTING - # TODO for arrivals, determine the first check-in date during the interval - # TODO for departures, determine the last check-out date during the interval - # TODO for both groups, extract the relevant person and case details # for the report + # Fields required: + # ID, Principal RefNo, Name, DoB, Gender, Nationality, BAMF Az, + # case status, last-seen on, check-in-date|check-out-date + # Possibly: + # Shelter, in multi-shelter requests return data # ------------------------------------------------------------------------- @staticmethod - def clients(start_date, end_date, organisation_id=None): + def clients(start_date, end_date, organisation_id=None, exclude=None): """ Returns a subquery for all relevant client person IDs, i.e. those who have a registration history entry (=status change) within the - given time interval + given time interval (without status change, they can neither have + moved in nor moved out, and therefore are irrelevant for this report) Args: start_date: the start of the interval (datetime.datetime) end_date: the end of the interval (datetime.datetime) organisation_id: limit to cases of this organisation + exclude: exclude these person IDs (set|list|tuple) Returns: The subquery as SQL string @@ -1361,8 +1372,10 @@ def clients(start_date, end_date, organisation_id=None): (ctable.archived == False)) query = (rtable.date >= start_date) & \ - (rtable.date <= end_date) & \ - (rtable.deleted == False) + (rtable.date < end_date) + if exclude: + query &= (~(rtable.person_id.belongs(exclude))) + query &= (rtable.deleted == False) return db(query)._select(rtable.person_id, distinct = True, @@ -1371,13 +1384,19 @@ def clients(start_date, end_date, organisation_id=None): # ------------------------------------------------------------------------- @classmethod - def prior_check_ins(cls, person_ids, start_date, shelter_id): + def prior_check_ins(cls, person_ids, start_date, shelter_id=None): """ - Returns the check-in events for all persons who were - checked in to the shelter at the start of the period + Returns the last check-in events before start_date for all + persons who were checked in (at a shelter) at that date + + Args: + person_ids: the person IDs + start_date: the start of the interval (datetime.datetime) + shelter_id: only consider checked-in at this shelter + + Returns: + Rows (cr_shelter_registration_history) """ - # TODO complete docstring - # TODO make shelter_id optional db = current.db s3db = current.s3db @@ -1390,10 +1409,14 @@ def prior_check_ins(cls, person_ids, start_date, shelter_id): join = latest.on((latest.person_id == rtable.person_id) & \ (latest.date == rtable.date)) + # If the last event before start_date is a check-in status + # (at the shelter), then the person was already there and + # therefore cannot be a new arrival query = (rtable.person_id.belongs(person_ids)) & \ - (rtable.shelter_id == shelter_id) & \ (rtable.status == 2) & \ (rtable.deleted == False) + if shelter_id: + query = (rtable.shelter_id == shelter_id) & query rows = db(query).select(rtable.id, rtable.person_id, @@ -1406,42 +1429,59 @@ def prior_check_ins(cls, person_ids, start_date, shelter_id): # ------------------------------------------------------------------------- @classmethod - def check_ins(cls, person_ids, start_date, end_date, shelter_id): + def check_ins(cls, person_ids, start_date, end_date, shelter_id=None): """ - Returns all check-in events at the site during the period + Returns all check-in events (at a shelter) during the period + + Args: + person_ids: the person IDs + start_date: the start of the interval (datetime.datetime) + end_date: the end of the interval (datetime.datetime) + shelter_id: only consider check-ins at this shelter + + Returns: + Rows (cr_shelter_registration_history) """ - # TODO complete docstring - # TODO make shelter_id optional db = current.db s3db = current.s3db rtable = s3db.cr_shelter_registration_history - query = (rtable.shelter_id == shelter_id) & \ - (rtable.status == 2) & \ + query = (rtable.status == 2) & \ (rtable.date >= start_date) & \ - (rtable.date <= end_date) & \ + (rtable.date < end_date) & \ (rtable.person_id.belongs(person_ids)) & \ (rtable.deleted == False) + if shelter_id: + query = (rtable.shelter_id == shelter_id) & query rows = db(query).select(rtable.id, rtable.person_id, rtable.shelter_id, rtable.date, rtable.status, + orderby = rtable.date, ) return rows # ------------------------------------------------------------------------- @classmethod - def final_events(cls, person_ids, start_date, end_date, shelter_id): + def final_events(cls, person_ids, start_date, end_date, shelter_id=None): """ Returns the final status events of the period for all persons - who were no longer checked-in at the end of the period + who were no longer checked-in (at a shelter) by the end of the + period + + Args: + person_ids: the person IDs + start_date: the start of the interval (datetime.datetime) + end_date: the end of the interval (datetime.datetime) + shelter_id: only consider checked-in at this shelter + + Returns: + Rows (cr_shelter_registration_history) """ - # TODO complete docstring - # TODO make shelter_id optional db = current.db s3db = current.s3db @@ -1455,8 +1495,13 @@ def final_events(cls, person_ids, start_date, end_date, shelter_id): join = latest.on((latest.person_id == rtable.person_id) & \ (latest.date == rtable.date)) - query = (rtable.person_id.belongs(person_ids)) & \ - ((rtable.status != 2) | (rtable.shelter_id != shelter_id)) & \ + # Any final event during the period that is either not checked-in + # status or not at the shelter in question indicates that the person + # was no longer checked-in at the end of the interval + query = (rtable.status != 2) + if shelter_id: + query |= (rtable.shelter_id != shelter_id) + query = (rtable.person_id.belongs(person_ids)) & query & \ (rtable.deleted == False) rows = db(query).select(rtable.id, @@ -1468,10 +1513,83 @@ def final_events(cls, person_ids, start_date, end_date, shelter_id): ) return rows + # ------------------------------------------------------------------------- + @staticmethod + def check_out_dates(person_ids, start_date=None, end_date=None, shelter_id=None, + check_in_dates=None): + """ + Finds the last check-out date of persons during the interval + + Args: + person_id: the person IDs + start_date: the start of the interval (datetime.datetime) + end_date: the end of the interval (datetime.datetime) + shelter_id: limit to check-outs from this shelter + check_in_dates: a dict {person_id: check_in_dates} with known + check-in dates + + Returns: + a dict {person_id: check_out_date}, where check_out_date + can be None if no explicit checkout (from this shelter) was + registered + """ + + db = current.db + s3db = current.s3db + + rtable = s3db.cr_shelter_registration_history + + query = (rtable.person_id.belongs(person_ids)) & \ + (rtable.status == 3) + if shelter_id: + query &= (rtable.shelter_id == shelter_id) + if start_date: + query &= (rtable.date >= start_date) + if end_date: + query &= (rtable.date < end_date) + query &= (rtable.deleted == False) + + rows = db(query).select(rtable.person_id.with_alias("person_id"), + rtable.date.max().with_alias("date"), + groupby = rtable.person_id, + ) + + dates = {person_id: None for person_id in person_ids} + if not check_in_dates: + check_in_dates = {} + + for row in rows: + person_id = row.person_id + # Disregard any check-out events that predate the check-in date + check_in_date = check_in_dates.get(person_id) + if check_in_date and row.date < check_in_date: + continue + dates[person_id] = row.date + + return dates + # ------------------------------------------------------------------------- @staticmethod def last_status_change(person_ids, start_date=None, end_date=None): - # TODO docstring + """ + Returns a joinable sub-select with the dates of the last + registration status change of persons during an interval + + Args: + person_ids: the person IDs + start_date: the start of the interval (datetime.datetime) + end_date: the end of the interval (datetime.datetime) + + Returns: + A joinable subquery with alias "last_status" and fields + "person_id" and "date" + + Notes: + - either end of the interval can be ommitted, thereby + including all registered status changes before/after + the other end date (if given) + - all dates in UTC (tz-naive) + """ db = current.db s3db = current.s3db @@ -1482,10 +1600,10 @@ def last_status_change(person_ids, start_date=None, end_date=None): if start_date: query &= (rtable.date >= start_date) if end_date: - query &= (rtable.date <= end_date) + query &= (rtable.date < end_date) query &= (rtable.deleted == False) - latest = db(query).nested_select(rtable.person_id, + latest = db(query).nested_select(rtable.person_id.with_alias("person_id"), rtable.date.max().with_alias("date"), groupby = rtable.person_id, ).with_alias("last_status") From 919e3e3833001f90a504a65a13b1201d798b217d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominic=20K=C3=B6nig?= Date: Thu, 29 Aug 2024 15:10:00 +0200 Subject: [PATCH 09/17] MRCMS: complete ArrivalsDeparturesReport.extract() --- VERSION | 2 +- modules/templates/MRCMS/reports.py | 76 +++++++++++++++++++++++++----- 2 files changed, 65 insertions(+), 13 deletions(-) diff --git a/VERSION b/VERSION index aa034e2a5..d44bcb7be 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -nursix-dev-5976-gff390ad60 (2024-08-29 10:30:25) +nursix-dev-5977-g7b1bacc66 (2024-08-29 15:10:00) diff --git a/modules/templates/MRCMS/reports.py b/modules/templates/MRCMS/reports.py index 73a2b1c1c..79f80d625 100644 --- a/modules/templates/MRCMS/reports.py +++ b/modules/templates/MRCMS/reports.py @@ -1282,9 +1282,16 @@ def extract(cls, organisation_id, shelter_id, start_date, end_date): end_date: the end of the interval (datetime.datetime) Returns: - tbd + a list of two dicts [arrivals, departures], like: + {"columns": [colname, ...], + "headers": {colname: label, ...}, + "types": {colname: datatype, ...}, + "rows": [{colname: value, ...}, ...] + } """ - # TODO complete this + + T = current.T + s3db = current.s3db # Determine which residents were already checked-in at the start # of the interval @@ -1324,17 +1331,62 @@ def extract(cls, organisation_id, shelter_id, start_date, end_date): check_in_dates = arrivals, ) - data = arrivals, departures # TESTING - - # TODO for both groups, extract the relevant person and case details - # for the report - # Fields required: - # ID, Principal RefNo, Name, DoB, Gender, Nationality, BAMF Az, - # case status, last-seen on, check-in-date|check-out-date - # Possibly: - # Shelter, in multi-shelter requests + # Extract the person data for the clients + resource = s3db.resource("pr_person", + id = list(arrivals.keys()) + list(departures.keys()), + ) + list_fields = ["id", + (T("Principal Ref.No."), "dvr_case.reference"), + "last_name", + "first_name", + "date_of_birth", + "gender", + "person_details.nationality", + "bamf.value", + "dvr_case.status_id", + "dvr_case.last_seen_on", + ] + person_data = resource.select(list_fields, + represent = True, + raw_data = True, + ) + persons = {row._row["pr_person.id"]: row for row in person_data.rows} + + # Columns for the tables + date_col = "cr_shelter_registration_history.date" + columns, labels, types = [date_col], {}, {date_col: "datetime"} + for rfield in person_data.rfields: + if rfield.ftype == "id": + continue + columns.append(rfield.colname) + labels[rfield.colname] = rfield.label + types[rfield.colname] = str(rfield.ftype) + + # Build result + rtable = current.s3db.cr_shelter_registration_history + date_represent = rtable.date.represent + group_title = [T("Arrivals"), T("Departures")] + date_col_label = [T("Check-in Date"), T("Check-out Date")] + + output = [] + for i, group in enumerate((arrivals, departures)): + rows = [] + for person_id, date in sorted(group.items(), key=lambda i: i[1]): + row = persons.get(person_id) + if not row: + continue + row._row[date_col], row[date_col] = date, date_represent(date) + rows.append(row) + result = {"title": group_title[i], + "columns": columns, + "labels": dict(labels), + "types": types, + "rows": rows, + } + result["labels"][date_col] = date_col_label[i] + output.append(result) - return data + return output # ------------------------------------------------------------------------- @staticmethod From 28e8460714d0efe1ceaf01987c1058908239f860 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominic=20K=C3=B6nig?= Date: Fri, 30 Aug 2024 09:43:46 +0200 Subject: [PATCH 10/17] MRCMS: A&D report functional for interactive use --- VERSION | 2 +- languages/de.py | 3 + modules/templates/MRCMS/customise/cr.py | 6 ++ modules/templates/MRCMS/menus.py | 8 +++ modules/templates/MRCMS/reports.py | 79 +++++++++++++++++++------ static/themes/JUH/js/tblreport.js | 38 ++++++++++-- 6 files changed, 110 insertions(+), 26 deletions(-) diff --git a/VERSION b/VERSION index d44bcb7be..7704b15cb 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -nursix-dev-5977-g7b1bacc66 (2024-08-29 15:10:00) +nursix-dev-5978-g919e3e383 (2024-08-30 09:43:46) diff --git a/languages/de.py b/languages/de.py index ccb332d24..03aeb66e6 100644 --- a/languages/de.py +++ b/languages/de.py @@ -586,6 +586,8 @@ 'Armenian': 'Armenisch', 'Aromanian; Arumanian; Macedo-Romanian': 'Aromunisch, Makedoromanisch', 'Arrival': 'Ankunft', +'Arrivals and Departures##shelter': 'Zugänge und Abgänge', +'Arrivals##shelter': 'Zugänge', 'Arrivals##shelter': 'Zugänge', 'Arrived': 'Angekommen', 'Assamese': 'Assamesisch', @@ -1860,6 +1862,7 @@ 'Department / Unit': 'Abteilung / Einheit', 'Department Catalog': 'Abteilungskatalog', 'Departure': 'Abreise', +'Departures##shelter': 'Abgänge', 'Departures': 'Abgänge', 'Dependency': 'Abhängigkeit', 'Dependent Person': 'Abhängige Person', diff --git a/modules/templates/MRCMS/customise/cr.py b/modules/templates/MRCMS/customise/cr.py index a71dd92a9..1c8437460 100644 --- a/modules/templates/MRCMS/customise/cr.py +++ b/modules/templates/MRCMS/customise/cr.py @@ -353,6 +353,12 @@ def cr_shelter_resource(r, tablename): action = PresenceList, ) + from ..reports import ArrivalsDeparturesReport + s3db.set_method("cr_shelter", + method = "aandd", + action = ArrivalsDeparturesReport, + ) + # ------------------------------------------------------------------------- def cr_shelter_controller(**attr): diff --git a/modules/templates/MRCMS/menus.py b/modules/templates/MRCMS/menus.py index 5d39e9000..c9ae5fa8d 100644 --- a/modules/templates/MRCMS/menus.py +++ b/modules/templates/MRCMS/menus.py @@ -272,6 +272,14 @@ def cr(): # ), ) + menu = menu(M("Reports", link=False)( + M("Arrivals and Departures##shelter", f="shelter", m="aandd", + t = "cr_shelter_registration_event", p="read", + restrict = ("ADMIN", "ORG_ADMIN", "CASE_ADMIN"), + ), + ), + ) + return menu # ------------------------------------------------------------------------- diff --git a/modules/templates/MRCMS/reports.py b/modules/templates/MRCMS/reports.py index 79f80d625..9f229f1d5 100644 --- a/modules/templates/MRCMS/reports.py +++ b/modules/templates/MRCMS/reports.py @@ -11,6 +11,7 @@ from gluon import current, SQLFORM, BUTTON, DIV from gluon.contenttype import contenttype from gluon.serializers import json as jsons +from gluon.storage import Storage from gluon.streamer import DEFAULT_CHUNK_SIZE from s3dal import Field @@ -335,7 +336,7 @@ def inject_script(widget_id, options): scripts.append(script) # Widget options - opts = {} + opts = {"labelNoData": s3_str(current.T("No records found"))} if options: opts.update(options) @@ -1202,8 +1203,7 @@ class ArrivalsDeparturesReport(BaseReport): def report_title(self): """ A title for this report """ - # TODO translation - return current.T("Arrivals and Departures##people") + return current.T("Arrivals and Departures##shelter") # ------------------------------------------------------------------------- def json(self, r, **attr): @@ -1215,15 +1215,50 @@ def json(self, r, **attr): attr - controller parameters Returns: - a JSON object to construct a table like: - {"labels": [label, label, ...], - "rows": [[value, value, ...], ...] - "results": number - } + an array of JSON objects to construct a table like: + [{"labels": [label, label, ...], + "rows": [[value, value, ...], ...] + "results": number + }, ...] """ - # TODO implement this - raise NotImplementedError() + report_name = "%s_report" % self.report_type + + # Read request parameters + organisation_id, shelter_id, start_date, end_date = self.parameters(r, report_name) + + # Check permissions + if not self.permitted(organisation_id=organisation_id): + r.unauthorised() + + # Extract the data + data = self.extract(organisation_id, shelter_id, start_date, end_date) + + output = [] + for item in data: + + columns = item["columns"] + headers = item["headers"] + labels = [headers[colname] for colname in columns] + + records, rows = [], item["rows"] + for row in rows: + records.append([s3_str(row[colname]) + if row[colname] is not None else "" + for colname in columns + ]) + + table = {"labels": labels, + "records": records, + "results": max(0, len(records) - 1), + "title": item.get("title"), + } + output.append(table) + + # Set Content Type + current.response.headers["Content-Type"] = "application/json" + + return jsons(output) # ------------------------------------------------------------------------- def xlsx(self, r, **attr): @@ -1336,6 +1371,7 @@ def extract(cls, organisation_id, shelter_id, start_date, end_date): id = list(arrivals.keys()) + list(departures.keys()), ) list_fields = ["id", + (T("ID"), "pe_label"), (T("Principal Ref.No."), "dvr_case.reference"), "last_name", "first_name", @@ -1354,36 +1390,41 @@ def extract(cls, organisation_id, shelter_id, start_date, end_date): # Columns for the tables date_col = "cr_shelter_registration_history.date" - columns, labels, types = [date_col], {}, {date_col: "datetime"} + columns, headers, types = [date_col], {date_col: T("Date")}, {date_col: "datetime"} for rfield in person_data.rfields: if rfield.ftype == "id": continue columns.append(rfield.colname) - labels[rfield.colname] = rfield.label + headers[rfield.colname] = rfield.label types[rfield.colname] = str(rfield.ftype) # Build result rtable = current.s3db.cr_shelter_registration_history date_represent = rtable.date.represent - group_title = [T("Arrivals"), T("Departures")] - date_col_label = [T("Check-in Date"), T("Check-out Date")] + group_title = [T("Arrivals##shelter"), T("Departures##shelter")] output = [] for i, group in enumerate((arrivals, departures)): rows = [] - for person_id, date in sorted(group.items(), key=lambda i: i[1]): - row = persons.get(person_id) - if not row: + for person_id, date in sorted(group.items(), key=lambda item: item[1]): + + # Get the original person Row + person = persons.get(person_id) + if not person: continue + + # Make a shallow copy and add the date column + row = Storage(person) + row._row = Storage(person._row) row._row[date_col], row[date_col] = date, date_represent(date) rows.append(row) + result = {"title": group_title[i], "columns": columns, - "labels": dict(labels), + "headers": headers, "types": types, "rows": rows, } - result["labels"][date_col] = date_col_label[i] output.append(result) return output diff --git a/static/themes/JUH/js/tblreport.js b/static/themes/JUH/js/tblreport.js index 30a1dc7b3..c88f3c28b 100644 --- a/static/themes/JUH/js/tblreport.js +++ b/static/themes/JUH/js/tblreport.js @@ -73,17 +73,43 @@ }, /** - * Renders the report data as table + * Renders the report * + * @param {object} data: the data returned from the server, one or more + * objects like {labels: [], records: [[]], results: 0} + */ + _renderReport: function(report) { + + const container = this.tableContainer.empty(), + self = this; + + if (Array.isArray(report)) { + report.forEach(function(data) { + self._renderTable(container, data); + }); + } else { + this._renderTable(container, report); + } + }, + + /** + * Renders report data as table + * + * @param {jQuery} container: the container to append the table to * @param {object} data: the data returned from the server, an object - * {labels: [], records: [[]], results: 0} + * like {labels: [], records: [[]], results: 0} */ - _renderTable: function(data) { + _renderTable: function(container, data) { const results = data.results, labels = data.labels, records = data.records, - container = this.tableContainer.empty(); + title = data.title; + + // Optional subtitle for the table + if (title) { + $('

').text(title).appendTo(container); + } if (!data.results || !labels || !records) { $('

').text(this.options.labelNoData).appendTo(container); @@ -195,7 +221,7 @@ 'data': JSON.stringify(params), 'success': function(data) { throbber.remove(); - self._renderTable(data); + self._renderReport(data); self._enableForm(); }, 'error': function () { @@ -272,7 +298,7 @@ $('.download-report-btn', $el).on('click' + ns, function() { self._downloadReport(); }); - $('input,select', $el).on('change' + ns, function() { + $($el).on('change' + ns, 'input,select', function() { self.tableContainer.empty(); }); From 690c3ef5455e032c55977f33656545c8d99c94bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominic=20K=C3=B6nig?= Date: Fri, 30 Aug 2024 09:49:01 +0200 Subject: [PATCH 11/17] MRCMS: possible fix for missing dates --- VERSION | 2 +- modules/templates/MRCMS/reports.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index 7704b15cb..7500ac83d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -nursix-dev-5978-g919e3e383 (2024-08-30 09:43:46) +nursix-dev-5979-g28e846071 (2024-08-30 09:49:01) diff --git a/modules/templates/MRCMS/reports.py b/modules/templates/MRCMS/reports.py index 9f229f1d5..9646d6de6 100644 --- a/modules/templates/MRCMS/reports.py +++ b/modules/templates/MRCMS/reports.py @@ -1401,12 +1401,13 @@ def extract(cls, organisation_id, shelter_id, start_date, end_date): # Build result rtable = current.s3db.cr_shelter_registration_history date_represent = rtable.date.represent + sort_by_date = lambda item: item[1] if item[1] else datetime.datetime.max group_title = [T("Arrivals##shelter"), T("Departures##shelter")] output = [] for i, group in enumerate((arrivals, departures)): rows = [] - for person_id, date in sorted(group.items(), key=lambda item: item[1]): + for person_id, date in sorted(group.items(), key=sort_by_date): # Get the original person Row person = persons.get(person_id) From 90e8fdeb18a5db1e3f9acffa6eeca080b450abf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominic=20K=C3=B6nig?= Date: Fri, 30 Aug 2024 09:50:27 +0200 Subject: [PATCH 12/17] MRCMS: fix the fix --- VERSION | 2 +- modules/templates/MRCMS/reports.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 7500ac83d..455f06977 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -nursix-dev-5979-g28e846071 (2024-08-30 09:49:01) +nursix-dev-5980-g690c3ef54 (2024-08-30 09:50:27) diff --git a/modules/templates/MRCMS/reports.py b/modules/templates/MRCMS/reports.py index 9646d6de6..31168ff44 100644 --- a/modules/templates/MRCMS/reports.py +++ b/modules/templates/MRCMS/reports.py @@ -5,6 +5,7 @@ """ import json +import datetime from dateutil.relativedelta import relativedelta From 2842e7cbc7a9d02d2e303199bb4c36c66094325e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominic=20K=C3=B6nig?= Date: Fri, 30 Aug 2024 15:10:17 +0200 Subject: [PATCH 13/17] MRCMS: change A&D report to show last (not first) check-in; fix registration history for missing check-outs --- VERSION | 2 +- modules/s3db/cr.py | 4 ++-- modules/templates/MRCMS/reports.py | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/VERSION b/VERSION index 455f06977..2c5e08643 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -nursix-dev-5980-g690c3ef54 (2024-08-30 09:50:27) +nursix-dev-5981-g90e8fdeb1 (2024-08-30 15:10:17) diff --git a/modules/s3db/cr.py b/modules/s3db/cr.py index 626e511d4..e8c2bbfcf 100644 --- a/modules/s3db/cr.py +++ b/modules/s3db/cr.py @@ -2007,7 +2007,6 @@ def shelter_registration_onaccept(cls, form): if unit: shelter_id = update["shelter_id"] = unit.shelter_id - # Get the last registration history entry htable = s3db.cr_shelter_registration_history query = (htable.person_id == person_id) & \ @@ -2037,7 +2036,8 @@ def shelter_registration_onaccept(cls, form): # Get effective date if effective_date_field: effective_date = registration[effective_date_field] - if not effective_date or previous_date and effective_date < previous_date: + if not effective_date or shelter_id != last_shelter_id or \ + previous_date and effective_date < previous_date: effective_date = update[effective_date_field] = registration.modified_on else: effective_date = registration.modified_on diff --git a/modules/templates/MRCMS/reports.py b/modules/templates/MRCMS/reports.py index 31168ff44..a576de58f 100644 --- a/modules/templates/MRCMS/reports.py +++ b/modules/templates/MRCMS/reports.py @@ -1339,7 +1339,7 @@ def extract(cls, organisation_id, shelter_id, start_date, end_date): checked_in_before = {row.person_id for row in rows} # Determine which residents were checked-in during the interval - # and when (date of first check-in) + # and when (date of last check-in) clients = cls.clients(start_date, end_date, organisation_id = organisation_id, @@ -1354,7 +1354,7 @@ def extract(cls, organisation_id, shelter_id, start_date, end_date): # Determine which of these residents were no longer checked-in by # the end of the interval, and when they departed (date of last check-out - # after the first check-in) + # after the last check-in) rows = cls.final_events(checked_in_before | set(arrivals.keys()), start_date, end_date, @@ -1556,7 +1556,7 @@ def check_ins(cls, person_ids, start_date, end_date, shelter_id=None): rtable.shelter_id, rtable.date, rtable.status, - orderby = rtable.date, + orderby = ~rtable.date, ) return rows From e59186029e597a25e207a3ce5170fec24dd5cd8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominic=20K=C3=B6nig?= Date: Fri, 30 Aug 2024 16:40:22 +0200 Subject: [PATCH 14/17] XLSXWriter: allow appending to existing workbook; MRCMS: implement XLSX export of A&D report, move A&D report to case menu --- VERSION | 2 +- modules/core/formats/xlsx.py | 164 ++++++++++++++---------- modules/templates/MRCMS/customise/cr.py | 6 - modules/templates/MRCMS/customise/pr.py | 3 +- modules/templates/MRCMS/menus.py | 12 +- modules/templates/MRCMS/reports.py | 61 ++++++++- 6 files changed, 159 insertions(+), 89 deletions(-) diff --git a/VERSION b/VERSION index 2c5e08643..e62ea24df 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -nursix-dev-5981-g90e8fdeb1 (2024-08-30 15:10:17) +nursix-dev-5982-g2842e7cbc (2024-08-30 16:40:22) diff --git a/modules/core/formats/xlsx.py b/modules/core/formats/xlsx.py index 1b2fd431d..0efde6b4f 100644 --- a/modules/core/formats/xlsx.py +++ b/modules/core/formats/xlsx.py @@ -64,11 +64,19 @@ def encode(cls, resource, **attr): Keyword Args: title: the main title of the report + sheet_title: the sheet title list_fields: fields to include in list views use_color: use background colors in cells (boolean, default False) even_odd: when using colors, render different background colors for even/odd rows (boolean, default True) as_stream: return BytesIO rather than bytes + append_to: append to this workbook rather than creating a new one, + either a filename, or a byte stream + + Note: + Appending to a workbook will re-use named styles already in the + workbook, so the workbook should be created with the same encoder + to prevent conflicting/incorrect styling """ T = current.T @@ -112,8 +120,17 @@ def encode(cls, resource, **attr): msg = "XLSXWriter: field(s) missing from data rows (%s)" % ", ".join(missing) current.log.error(msg) - # Create the workbook - wb = Workbook(iso_dates=True) + append_to = attr_get("append_to") + if append_to: + # Use existing workbook + from openpyxl import load_workbook + wb = load_workbook(append_to) + sheet_number = len(wb.sheetnames) + 2 + else: + # Create the workbook + wb = Workbook(iso_dates=True) + wb.remove(wb['Sheet']) # Remove default worksheet + sheet_number = 0 # Add named styles use_color = attr_get("use_color", False) @@ -139,20 +156,17 @@ def encode(cls, resource, **attr): # Add the work sheets # Characters /\?*[] not allowed in sheet names - sheet_name = " ".join(re.sub(r"[\\\/\?\*\[\]:]", " ", s3_str(title)).split()) + sheet_name = attr_get("sheet_title") + if not sheet_name: + sheet_name = " ".join(re.sub(r"[\\\/\?\*\[\]:]", " ", s3_str(title)).split()) batch, remaining = rows[:batch_size], rows[batch_size:] - sheet_number = 0 while batch: # Create work sheet sheet_number += 1 - ws_title = "%s-%s" % (sheet_name[:28], sheet_number) - if sheet_number == 1: - ws = wb.active - ws.title = sheet_name[:31] if not remaining else ws_title - else: - ws = wb.create_sheet(title=ws_title) + ws_title = "%s-%s" % (sheet_name[:28], sheet_number) if remaining else sheet_name[:31] + ws = wb.create_sheet(ws_title) # Count columns and initialize column width num_columns = len(labels) @@ -449,65 +463,77 @@ def add_styles(wb, use_color=False, even_odd=True): font_bold = Font(name="Arial", size=10, bold=True) font_large = Font(name="Arial", size=14, bold=True) - style = NamedStyle(name="normal") - style.font = font_normal - wb.add_named_style(style) - - style = NamedStyle(name="even") - style.font = font_normal - if use_color and even_odd: - style.fill = PatternFill(start_color="FFFFFF", fill_type="solid") - style.border = border - wb.add_named_style(style) - - style = NamedStyle(name="odd") - style.font = font_normal - if use_color and even_odd: - style.fill = PatternFill(start_color="E7E7E7", fill_type="solid") - style.border = border - wb.add_named_style(style) - - style = NamedStyle(name="label") - style.font = font_bold - if use_color: - style.fill = PatternFill(start_color="BBDCED", fill_type="solid") - style.border = border - wb.add_named_style(style) - - style = NamedStyle(name="large_header") - style.font = font_large - if use_color: - style.fill = PatternFill(start_color="BDBDEC", fill_type="solid") - style.border = border - wb.add_named_style(style) - - style = NamedStyle(name="header") - style.font = font_bold - if use_color: - style.fill = PatternFill(start_color="BDBDEC", fill_type="solid") - style.border = border - wb.add_named_style(style) - - style = NamedStyle(name="subheader") - style.font = font_bold - if use_color: - style.fill = PatternFill(start_color="CCCCFF", fill_type="solid") - style.border = border - wb.add_named_style(style) - - style = NamedStyle(name="subtotals") - style.font = font_bold - if use_color: - style.fill = PatternFill(start_color="E6E6E6", fill_type="solid") - style.border = border - wb.add_named_style(style) - - style = NamedStyle(name="totals") - style.font = font_bold - if use_color: - style.fill = PatternFill(start_color="C6C6C6", fill_type="solid") - style.border = border - wb.add_named_style(style) + existing = wb.style_names + missing = lambda n: n not in existing + + if missing("normal"): + style = NamedStyle(name="normal") + style.font = font_normal + wb.add_named_style(style) + + if missing("even"): + style = NamedStyle(name="even") + style.font = font_normal + if use_color and even_odd: + style.fill = PatternFill(start_color="FFFFFF", fill_type="solid") + style.border = border + wb.add_named_style(style) + + if missing("odd"): + style = NamedStyle(name="odd") + style.font = font_normal + if use_color and even_odd: + style.fill = PatternFill(start_color="E7E7E7", fill_type="solid") + style.border = border + wb.add_named_style(style) + + if missing("label"): + style = NamedStyle(name="label") + style.font = font_bold + if use_color: + style.fill = PatternFill(start_color="BBDCED", fill_type="solid") + style.border = border + wb.add_named_style(style) + + if missing("large_header"): + style = NamedStyle(name="large_header") + style.font = font_large + if use_color: + style.fill = PatternFill(start_color="BDBDEC", fill_type="solid") + style.border = border + wb.add_named_style(style) + + if missing("header"): + style = NamedStyle(name="header") + style.font = font_bold + if use_color: + style.fill = PatternFill(start_color="BDBDEC", fill_type="solid") + style.border = border + wb.add_named_style(style) + + if missing("subheader"): + style = NamedStyle(name="subheader") + style.font = font_bold + if use_color: + style.fill = PatternFill(start_color="CCCCFF", fill_type="solid") + style.border = border + wb.add_named_style(style) + + if missing("subtotals"): + style = NamedStyle(name="subtotals") + style.font = font_bold + if use_color: + style.fill = PatternFill(start_color="E6E6E6", fill_type="solid") + style.border = border + wb.add_named_style(style) + + if missing("totals"): + style = NamedStyle(name="totals") + style.font = font_bold + if use_color: + style.fill = PatternFill(start_color="C6C6C6", fill_type="solid") + style.border = border + wb.add_named_style(style) # ============================================================================= class XLSXPivotTableWriter: diff --git a/modules/templates/MRCMS/customise/cr.py b/modules/templates/MRCMS/customise/cr.py index 1c8437460..a71dd92a9 100644 --- a/modules/templates/MRCMS/customise/cr.py +++ b/modules/templates/MRCMS/customise/cr.py @@ -353,12 +353,6 @@ def cr_shelter_resource(r, tablename): action = PresenceList, ) - from ..reports import ArrivalsDeparturesReport - s3db.set_method("cr_shelter", - method = "aandd", - action = ArrivalsDeparturesReport, - ) - # ------------------------------------------------------------------------- def cr_shelter_controller(**attr): diff --git a/modules/templates/MRCMS/customise/pr.py b/modules/templates/MRCMS/customise/pr.py index 8183070f0..fe26ce63d 100644 --- a/modules/templates/MRCMS/customise/pr.py +++ b/modules/templates/MRCMS/customise/pr.py @@ -197,8 +197,9 @@ def pr_person_resource(r, tablename): if controller == "dvr": - from ..reports import PresenceReport + from ..reports import PresenceReport, ArrivalsDeparturesReport s3db.set_method("pr_person", method="presence_report", action=PresenceReport) + s3db.set_method("pr_person", method = "aandd", action=ArrivalsDeparturesReport) bulk_actions = [] diff --git a/modules/templates/MRCMS/menus.py b/modules/templates/MRCMS/menus.py index c9ae5fa8d..cc60bae3f 100644 --- a/modules/templates/MRCMS/menus.py +++ b/modules/templates/MRCMS/menus.py @@ -272,14 +272,6 @@ def cr(): # ), ) - menu = menu(M("Reports", link=False)( - M("Arrivals and Departures##shelter", f="shelter", m="aandd", - t = "cr_shelter_registration_event", p="read", - restrict = ("ADMIN", "ORG_ADMIN", "CASE_ADMIN"), - ), - ), - ) - return menu # ------------------------------------------------------------------------- @@ -332,6 +324,10 @@ def dvr(): ), ), M("Reports", link=False)( + M("Arrivals and Departures##shelter", c="dvr", f="person", m="aandd", + t = "cr_shelter_registration_history", p="read", + restrict = ("ADMIN", "ORG_ADMIN", "CASE_ADMIN"), + ), M("Presence", c="dvr", f="person", m="presence_report", t = "org_site_presence_event", p="read", restrict = (ADMIN, ORG_ADMIN, "CASE_ADMIN"), diff --git a/modules/templates/MRCMS/reports.py b/modules/templates/MRCMS/reports.py index a576de58f..55bbe07e5 100644 --- a/modules/templates/MRCMS/reports.py +++ b/modules/templates/MRCMS/reports.py @@ -479,7 +479,11 @@ def xlsx(self, r, **attr): ) # Generate XLSX byte stream - output = XLSXWriter.encode(table_data, title=title, as_stream=True) + output = XLSXWriter.encode(table_data, + title = title, + sheet_title = self.report_title, + as_stream = True, + ) # Set response headers filename = "presence_report_%s_%s" % (start_date.strftime("%Y%m%d"), @@ -937,7 +941,11 @@ def xlsx(self, r, **attr): ) # Generate XLSX byte stream - output = XLSXWriter.encode(data, title=title, as_stream=True) + output = XLSXWriter.encode(data, + title = title, + sheet_title = self.report_title, + as_stream = True, + ) # Set response headers filename = "meals_report_%s_%s" % (start_date.strftime("%Y%m%d"), @@ -1274,8 +1282,53 @@ def xlsx(self, r, **attr): a XLSX file """ - # TODO implement this - raise NotImplementedError() + report_name = "%s_report" % self.report_type + + # Read request parameters + organisation_id, shelter_id, start_date, end_date = self.parameters(r, report_name) + + # Check permissions + if not self.permitted(organisation_id=organisation_id): + r.unauthorised() + + # Extract the data + datasets = self.extract(organisation_id, shelter_id, start_date, end_date) + + output = None + for dataset in datasets: + # Use a title row (also includes exported-date) + current.deployment_settings.base.xls_title_row = True + + subtitle = dataset.get("title") + if not subtitle: + subtitle = self.report_title + title = "%s %s -- %s" % (subtitle, + S3DateTime.date_represent(start_date, utc=True), + S3DateTime.date_represent(end_date, utc=True), + ) + + # Generate XLSX byte stream + output = XLSXWriter.encode(dataset, + title = title, + sheet_title = subtitle, + as_stream = True, + append_to = output, + ) + + # Set response headers + filename = "aandd_report_%s_%s" % (start_date.strftime("%Y%m%d"), + end_date.strftime("%Y%m%d"), + ) + disposition = "attachment; filename=\"%s\"" % filename + response = current.response + response.headers["Content-Type"] = contenttype(".xlsx") + response.headers["Content-disposition"] = disposition + + # Return stream response + return response.stream(output, + chunk_size = DEFAULT_CHUNK_SIZE, + request = current.request + ) # ------------------------------------------------------------------------- @staticmethod From e5a28fc233d11dcde2d41fb6d50daed955c62cf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominic=20K=C3=B6nig?= Date: Fri, 30 Aug 2024 17:05:31 +0200 Subject: [PATCH 15/17] XLSXWriter: bug fixes --- VERSION | 2 +- modules/core/formats/xlsx.py | 9 +++++++-- modules/templates/MRCMS/reports.py | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/VERSION b/VERSION index e62ea24df..0532b0dbb 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -nursix-dev-5982-g2842e7cbc (2024-08-30 16:40:22) +nursix-dev-5983-ge59186029 (2024-08-30 17:05:31) diff --git a/modules/core/formats/xlsx.py b/modules/core/formats/xlsx.py index 0efde6b4f..f0263487b 100644 --- a/modules/core/formats/xlsx.py +++ b/modules/core/formats/xlsx.py @@ -129,7 +129,8 @@ def encode(cls, resource, **attr): else: # Create the workbook wb = Workbook(iso_dates=True) - wb.remove(wb['Sheet']) # Remove default worksheet + if len(wb.sheetnames) > 0: + wb.remove(wb[wb.sheetnames[0]]) # Remove default worksheet sheet_number = 0 # Add named styles @@ -161,6 +162,9 @@ def encode(cls, resource, **attr): sheet_name = " ".join(re.sub(r"[\\\/\?\*\[\]:]", " ", s3_str(title)).split()) batch, remaining = rows[:batch_size], rows[batch_size:] + if not batch: + # Create at least one sheet even if there are no data + batch = True while batch: # Create work sheet @@ -205,7 +209,8 @@ def encode(cls, resource, **attr): ws.append(label_row) # Add the data - cls.write_rows(ws, batch, lfields, types, column_widths) + if batch is not True: + cls.write_rows(ws, batch, lfields, types, column_widths) # Adjust column widths for i in range(1, num_columns + 1): diff --git a/modules/templates/MRCMS/reports.py b/modules/templates/MRCMS/reports.py index 55bbe07e5..e22f19d7e 100644 --- a/modules/templates/MRCMS/reports.py +++ b/modules/templates/MRCMS/reports.py @@ -412,7 +412,7 @@ def json(self, r, **attr): output = {"labels": labels, "records": records, - "results": len(records), + "results": max(0, len(records)), } # Set Content Type @@ -1259,7 +1259,7 @@ def json(self, r, **attr): table = {"labels": labels, "records": records, - "results": max(0, len(records) - 1), + "results": max(0, len(records)), "title": item.get("title"), } output.append(table) From fc83e6d97d011efd1907350261adcb32079efd50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominic=20K=C3=B6nig?= Date: Fri, 30 Aug 2024 23:13:59 +0200 Subject: [PATCH 16/17] MRCMS: add missing label --- VERSION | 2 +- modules/templates/MRCMS/reports.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index 0532b0dbb..c3a1e3473 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -nursix-dev-5983-ge59186029 (2024-08-30 17:05:31) +nursix-dev-5984-ge5a28fc23 (2024-08-30 23:13:59) diff --git a/modules/templates/MRCMS/reports.py b/modules/templates/MRCMS/reports.py index e22f19d7e..9bd05b0f3 100644 --- a/modules/templates/MRCMS/reports.py +++ b/modules/templates/MRCMS/reports.py @@ -1432,7 +1432,7 @@ def extract(cls, organisation_id, shelter_id, start_date, end_date): "date_of_birth", "gender", "person_details.nationality", - "bamf.value", + (T("BAMF Ref.No."), "bamf.value"), "dvr_case.status_id", "dvr_case.last_seen_on", ] From 9aa3c74a9c8dc0023f4fdb50735b2504acde4fb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominic=20K=C3=B6nig?= Date: Fri, 30 Aug 2024 23:19:26 +0200 Subject: [PATCH 17/17] MRCMS: use more convenient font-size for table reports --- VERSION | 2 +- static/themes/JUH/eden.min.css | 2 +- static/themes/JUH/scss/theme/_misc.scss | 1 + static/themes/JUH/theme.css | 7 ++++--- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/VERSION b/VERSION index c3a1e3473..94a8e72aa 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -nursix-dev-5984-ge5a28fc23 (2024-08-30 23:13:59) +nursix-dev-5985-gfc83e6d97 (2024-08-30 23:19:26) diff --git a/static/themes/JUH/eden.min.css b/static/themes/JUH/eden.min.css index 4a75a1d6b..e08ca1c2a 100644 --- a/static/themes/JUH/eden.min.css +++ b/static/themes/JUH/eden.min.css @@ -1 +1 @@ -@font-face{font-family:'FontAwesome';src:url('../../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:0.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul > li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:0.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eeeeee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)} 100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)} 100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1)";-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1)";-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#ffffff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}div.ui-cluetip{font-size:1em}.ui-cluetip-header,.ui-cluetip-content{padding:12px}.ui-cluetip-header{font-size:1em;margin:0;overflow:hidden}.cluetip-title .cluetip-close{float:right;position:relative}.cluetip-close img{border:0}#cluetip-waitimage{width:43px;height:11px;position:absolute;background-image:url(../../img/jquery.cluetip/wait.gif)}.cluetip-arrows{display:none;position:absolute;top:0;left:-11px;width:11px;height:22px;background-repeat:no-repeat;background-position:0 0;border-width:0}.cluetip-extra{display:none}.cluetip-default,.cluetip-default .cluetip-outer{background-color:#d9d9c2}.cluetip-default .ui-cluetip-header{background-color:#87876a}div.cluetip-default .cluetip-arrows{border-width:0;background:transparent none}div.clue-right-default .cluetip-arrows{background-image:url(../../img/jquery.cluetip/darrowleft.gif)}div.clue-left-default .cluetip-arrows{background-image:url(../../img/jquery.cluetip/darrowright.gif);left:100%;margin-right:-11px}div.clue-top-default .cluetip-arrows{background-image:url(../../img/jquery.cluetip/darrowdown.gif);top:100%;left:50%;margin-left:-11px;width:22px;height:11px}div.clue-bottom-default .cluetip-arrows{background-image:url(../../img/jquery.cluetip/darrowup.gif);top:-11px;left:50%;margin-left:-11px;width:22px;height:11px}.cluetip-jtip{background-color:#fff}.cluetip-jtip .cluetip-outer{border:2px solid #ccc;position:relative;background-color:#fff}.cluetip-jtip .cluetip-inner{padding:5px;display:inline-block}.cluetip-jtip div.cluetip-close{text-align:right;margin:0 5px 0;color:#900}.cluetip-jtip .ui-cluetip-header{background-color:#ccc;padding:6px}div.cluetip-jtip .cluetip-arrows{border-width:0;background:transparent none}div.clue-right-jtip .cluetip-arrows{background-image:url(../../img/jquery.cluetip/arrowleft.gif)}div.clue-left-jtip .cluetip-arrows{background-image:url(../../img/jquery.cluetip/arrowright.gif);left:100%;margin-right:-11px}div.clue-top-jtip .cluetip-arrows{background-image:url(../../img/jquery.cluetip/arrowdown.gif);top:100%;left:50%;width:22px;height:11px;margin-left:-11px}div.clue-bottom-jtip .cluetip-arrows{background-image:url(../../img/jquery.cluetip/arrowup.gif);top:-11px;left:50%;width:22px;height:11px;margin-left:-11px}.cluetip-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;background-color:#fff;border:1px solid #ccc}.cluetip-rounded .cluetip-outer{background-color:#fff}.cluetip-rounded .cluetip-arrows{border-color:#ccc}div.cluetip-rounded .cluetip-arrows{font-size:0;line-height:0%;width:0;height:0;border-style:solid;background:transparent none}div.clue-right-rounded .cluetip-arrows{border-width:11px 11px 11px 0;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent}div.clue-left-rounded .cluetip-arrows{left:100%;margin-right:-11px;border-width:11px 0 11px 11px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent}div.clue-top-rounded .cluetip-arrows{top:100%;left:50%;border-width:11px 11px 0 11px;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.clue-bottom-rounded .cluetip-arrows{top:-11px;left:50%;border-width:0 11px 11px 11px;border-top-color:transparent;border-right-color:transparent;border-left-color:transparent}.cluetip-rounded .cluetip-title,.cluetip-rounded .cluetip-inner{zoom:1}@charset "UTF-8";table.dataTable td.dt-control{text-align:center;cursor:pointer}table.dataTable td.dt-control:before{height:1em;width:1em;margin-top:-9px;display:inline-block;color:white;border:0.15em solid white;border-radius:1em;box-shadow:0 0 0.2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#31b131}table.dataTable tr.dt-hasChild td.dt-control:before{content:"-";background-color:#d33333}table.dataTable thead > tr > th.sorting,table.dataTable thead > tr > th.sorting_asc,table.dataTable thead > tr > th.sorting_desc,table.dataTable thead > tr > th.sorting_asc_disabled,table.dataTable thead > tr > th.sorting_desc_disabled,table.dataTable thead > tr > td.sorting,table.dataTable thead > tr > td.sorting_asc,table.dataTable thead > tr > td.sorting_desc,table.dataTable thead > tr > td.sorting_asc_disabled,table.dataTable thead > tr > td.sorting_desc_disabled{cursor:pointer;position:relative;padding-right:26px}table.dataTable thead > tr > th.sorting:before,table.dataTable thead > tr > th.sorting:after,table.dataTable thead > tr > th.sorting_asc:before,table.dataTable thead > tr > th.sorting_asc:after,table.dataTable thead > tr > th.sorting_desc:before,table.dataTable thead > tr > th.sorting_desc:after,table.dataTable thead > tr > th.sorting_asc_disabled:before,table.dataTable thead > tr > th.sorting_asc_disabled:after,table.dataTable thead > tr > th.sorting_desc_disabled:before,table.dataTable thead > tr > th.sorting_desc_disabled:after,table.dataTable thead > tr > td.sorting:before,table.dataTable thead > tr > td.sorting:after,table.dataTable thead > tr > td.sorting_asc:before,table.dataTable thead > tr > td.sorting_asc:after,table.dataTable thead > tr > td.sorting_desc:before,table.dataTable thead > tr > td.sorting_desc:after,table.dataTable thead > tr > td.sorting_asc_disabled:before,table.dataTable thead > tr > td.sorting_asc_disabled:after,table.dataTable thead > tr > td.sorting_desc_disabled:before,table.dataTable thead > tr > td.sorting_desc_disabled:after{position:absolute;display:block;opacity:0.125;right:10px;line-height:9px;font-size:0.9em}table.dataTable thead > tr > th.sorting:before,table.dataTable thead > tr > th.sorting_asc:before,table.dataTable thead > tr > th.sorting_desc:before,table.dataTable thead > tr > th.sorting_asc_disabled:before,table.dataTable thead > tr > th.sorting_desc_disabled:before,table.dataTable thead > tr > td.sorting:before,table.dataTable thead > tr > td.sorting_asc:before,table.dataTable thead > tr > td.sorting_desc:before,table.dataTable thead > tr > td.sorting_asc_disabled:before,table.dataTable thead > tr > td.sorting_desc_disabled:before{bottom:50%;content:"â–´"}table.dataTable thead > tr > th.sorting:after,table.dataTable thead > tr > th.sorting_asc:after,table.dataTable thead > tr > th.sorting_desc:after,table.dataTable thead > tr > th.sorting_asc_disabled:after,table.dataTable thead > tr > th.sorting_desc_disabled:after,table.dataTable thead > tr > td.sorting:after,table.dataTable thead > tr > td.sorting_asc:after,table.dataTable thead > tr > td.sorting_desc:after,table.dataTable thead > tr > td.sorting_asc_disabled:after,table.dataTable thead > tr > td.sorting_desc_disabled:after{top:50%;content:"â–¾"}table.dataTable thead > tr > th.sorting_asc:before,table.dataTable thead > tr > th.sorting_desc:after,table.dataTable thead > tr > td.sorting_asc:before,table.dataTable thead > tr > td.sorting_desc:after{opacity:0.6}table.dataTable thead > tr > th.sorting_desc_disabled:after,table.dataTable thead > tr > th.sorting_asc_disabled:before,table.dataTable thead > tr > td.sorting_desc_disabled:after,table.dataTable thead > tr > td.sorting_asc_disabled:before{display:none}table.dataTable thead > tr > th:active,table.dataTable thead > tr > td:active{outline:none}div.dataTables_scrollBody table.dataTable thead > tr > th:before,div.dataTables_scrollBody table.dataTable thead > tr > th:after,div.dataTables_scrollBody table.dataTable thead > tr > td:before,div.dataTables_scrollBody table.dataTable thead > tr > td:after{display:none}div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:2px}div.dataTables_processing > div:last-child{position:relative;width:80px;height:15px;margin:1em auto}div.dataTables_processing > div:last-child > div{position:absolute;top:0;width:13px;height:13px;border-radius:50%;background:rgba(13,110,253,0.9);animation-timing-function:cubic-bezier(0,1,1,0)}div.dataTables_processing > div:last-child > div:nth-child(1){left:8px;animation:datatables-loader-1 0.6s infinite}div.dataTables_processing > div:last-child > div:nth-child(2){left:8px;animation:datatables-loader-2 0.6s infinite}div.dataTables_processing > div:last-child > div:nth-child(3){left:32px;animation:datatables-loader-2 0.6s infinite}div.dataTables_processing > div:last-child > div:nth-child(4){left:56px;animation:datatables-loader-3 0.6s infinite}@keyframes datatables-loader-1{0%{transform:scale(0)} 100%{transform:scale(1)}}@keyframes datatables-loader-3{0%{transform:scale(1)} 100%{transform:scale(0)}}@keyframes datatables-loader-2{0%{transform:translate(0,0)} 100%{transform:translate(24px,0)}}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th,table.dataTable thead td,table.dataTable tfoot th,table.dataTable tfoot td{text-align:left}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0; }table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px;border-bottom:1px solid rgba(0,0,0,0.3)}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 10px 6px 10px;border-top:1px solid rgba(0,0,0,0.3)}table.dataTable tbody tr{background-color:transparent}table.dataTable tbody tr.selected > *{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.9);color:white}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid rgba(0,0,0,0.15)}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid rgba(0,0,0,0.15);border-right:1px solid rgba(0,0,0,0.15)}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid rgba(0,0,0,0.15)}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe > tbody > tr.odd > *,table.dataTable.display > tbody > tr.odd > *{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.023)}table.dataTable.stripe > tbody > tr.odd.selected > *,table.dataTable.display > tbody > tr.odd.selected > *{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.923)}table.dataTable.hover > tbody > tr:hover > *,table.dataTable.display > tbody > tr:hover > *{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.035)}table.dataTable.hover > tbody > tr.selected:hover > *,table.dataTable.display > tbody > tr.selected:hover > *{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.935)}table.dataTable.order-column > tbody tr > .sorting_1,table.dataTable.order-column > tbody tr > .sorting_2,table.dataTable.order-column > tbody tr > .sorting_3,table.dataTable.display > tbody tr > .sorting_1,table.dataTable.display > tbody tr > .sorting_2,table.dataTable.display > tbody tr > .sorting_3{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.019)}table.dataTable.order-column > tbody tr.selected > .sorting_1,table.dataTable.order-column > tbody tr.selected > .sorting_2,table.dataTable.order-column > tbody tr.selected > .sorting_3,table.dataTable.display > tbody tr.selected > .sorting_1,table.dataTable.display > tbody tr.selected > .sorting_2,table.dataTable.display > tbody tr.selected > .sorting_3{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.919)}table.dataTable.display > tbody > tr.odd > .sorting_1,table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_1{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.054)}table.dataTable.display > tbody > tr.odd > .sorting_2,table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_2{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.047)}table.dataTable.display > tbody > tr.odd > .sorting_3,table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_3{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.039)}table.dataTable.display > tbody > tr.odd.selected > .sorting_1,table.dataTable.order-column.stripe > tbody > tr.odd.selected > .sorting_1{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.954)}table.dataTable.display > tbody > tr.odd.selected > .sorting_2,table.dataTable.order-column.stripe > tbody > tr.odd.selected > .sorting_2{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.947)}table.dataTable.display > tbody > tr.odd.selected > .sorting_3,table.dataTable.order-column.stripe > tbody > tr.odd.selected > .sorting_3{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.939)}table.dataTable.display > tbody > tr.even > .sorting_1,table.dataTable.order-column.stripe > tbody > tr.even > .sorting_1{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.019)}table.dataTable.display > tbody > tr.even > .sorting_2,table.dataTable.order-column.stripe > tbody > tr.even > .sorting_2{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.011)}table.dataTable.display > tbody > tr.even > .sorting_3,table.dataTable.order-column.stripe > tbody > tr.even > .sorting_3{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.003)}table.dataTable.display > tbody > tr.even.selected > .sorting_1,table.dataTable.order-column.stripe > tbody > tr.even.selected > .sorting_1{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.919)}table.dataTable.display > tbody > tr.even.selected > .sorting_2,table.dataTable.order-column.stripe > tbody > tr.even.selected > .sorting_2{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.911)}table.dataTable.display > tbody > tr.even.selected > .sorting_3,table.dataTable.order-column.stripe > tbody > tr.even.selected > .sorting_3{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.903)}table.dataTable.display tbody tr:hover > .sorting_1,table.dataTable.order-column.hover tbody tr:hover > .sorting_1{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.082)}table.dataTable.display tbody tr:hover > .sorting_2,table.dataTable.order-column.hover tbody tr:hover > .sorting_2{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.074)}table.dataTable.display tbody tr:hover > .sorting_3,table.dataTable.order-column.hover tbody tr:hover > .sorting_3{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.062)}table.dataTable.display tbody tr:hover.selected > .sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.982)}table.dataTable.display tbody tr:hover.selected > .sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.974)}table.dataTable.display tbody tr:hover.selected > .sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.962)}table.dataTable.no-footer{border-bottom:1px solid rgba(0,0,0,0.3)}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 17px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th,table.dataTable td{box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_length select{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;padding:4px}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;margin-left:3px}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:0.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:0.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;color:#333 !important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid rgba(0,0,0,0.3);background-color:rgba(230,230,230,0.1);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(230,230,230,0.1)),color-stop(100%,rgba(0,0,0,0.1)));background:-webkit-linear-gradient(top,rgba(230,230,230,0.1) 0%,rgba(0,0,0,0.1) 100%);background:-moz-linear-gradient(top,rgba(230,230,230,0.1) 0%,rgba(0,0,0,0.1) 100%);background:-ms-linear-gradient(top,rgba(230,230,230,0.1) 0%,rgba(0,0,0,0.1) 100%);background:-o-linear-gradient(top,rgba(230,230,230,0.1) 0%,rgba(0,0,0,0.1) 100%);background:linear-gradient(to bottom,rgba(230,230,230,0.1) 0%,rgba(0,0,0,0.1) 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#585858),color-stop(100%,#111));background:-webkit-linear-gradient(top,#585858 0%,#111 100%);background:-moz-linear-gradient(top,#585858 0%,#111 100%);background:-ms-linear-gradient(top,#585858 0%,#111 100%);background:-o-linear-gradient(top,#585858 0%,#111 100%);background:linear-gradient(to bottom,#585858 0%,#111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#2b2b2b),color-stop(100%,#0c0c0c));background:-webkit-linear-gradient(top,#2b2b2b 0%,#0c0c0c 100%);background:-moz-linear-gradient(top,#2b2b2b 0%,#0c0c0c 100%);background:-ms-linear-gradient(top,#2b2b2b 0%,#0c0c0c 100%);background:-o-linear-gradient(top,#2b2b2b 0%,#0c0c0c 100%);background:linear-gradient(to bottom,#2b2b2b 0%,#0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th > div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td > div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th > div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td > div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid rgba(0,0,0,0.3)}.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,.dataTables_wrapper.no-footer div.dataTables_scrollBody > table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width:767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center} .dataTables_wrapper .dataTables_paginate{margin-top:0.5em}}@media screen and (max-width:640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center} .dataTables_wrapper .dataTables_filter{margin-top:0.5em}}table.dataTable.dtr-inline.collapsed tbody td:first-child,table.dataTable.dtr-inline.collapsed tbody th:first-child{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed tbody td:first-child:before,table.dataTable.dtr-inline.collapsed tbody th:first-child:before{top:8px;left:4px;height:16px;width:16px;display:block;position:absolute;color:white;border:2px solid white;border-radius:16px;text-align:center;line-height:14px;box-shadow:0 0 3px #444;box-sizing:content-box;content:'+';background-color:#31b131}table.dataTable.dtr-inline.collapsed tbody td:first-child.dataTables_empty:before,table.dataTable.dtr-inline.collapsed tbody th:first-child.dataTables_empty:before{display:none}table.dataTable.dtr-inline.collapsed tbody tr.parent td:first-child:before,table.dataTable.dtr-inline.collapsed tbody tr.parent th:first-child:before{content:'-';background-color:#d33333}table.dataTable.dtr-inline.collapsed tbody tr.child td:before{display:none}table.dataTable.dtr-column tbody td.control,table.dataTable.dtr-column tbody th.control{position:relative;cursor:pointer}table.dataTable.dtr-column tbody td.control:before,table.dataTable.dtr-column tbody th.control:before{top:50%;left:50%;height:16px;width:16px;margin-top:-10px;margin-left:-10px;display:block;position:absolute;color:white;border:2px solid white;border-radius:16px;text-align:center;line-height:14px;box-shadow:0 0 3px #444;box-sizing:content-box;content:'+';background-color:#31b131}table.dataTable.dtr-column tbody tr.parent td.control:before,table.dataTable.dtr-column tbody tr.parent th.control:before{content:'-';background-color:#d33333}table.dataTable tr.child{padding:0.5em 1em}table.dataTable tr.child:hover{background:transparent !important}table.dataTable tr.child ul{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable tr.child ul li{border-bottom:1px solid #efefef;padding:0.5em 0}table.dataTable tr.child ul li:first-child{padding-top:0}table.dataTable tr.child ul li:last-child{border-bottom:none}table.dataTable tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;-ms-filter:"alpha(opacity=0)"}.ui-front{z-index:100}.ui-state-disabled{cursor:default !important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:pointer;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-timepicker-inline{display:inline}#ui-timepicker-div{padding:0.2em}.ui-timepicker-table{display:inline-table;width:0}.ui-timepicker-table table{margin:0.15em 0 0 0;border-collapse:collapse}.ui-timepicker-hours,.ui-timepicker-minutes{padding:0.2em}.ui-timepicker-table .ui-timepicker-title{line-height:1.8em;text-align:center}.ui-timepicker-table td{padding:0.1em;width:2.2em}.ui-timepicker-table th.periods{padding:0.1em;width:2.2em}.ui-timepicker-table td span{display:block;padding:0.2em 1.5em 0.2em 0.5em;width:1.2em;text-align:right;text-decoration:none}.ui-timepicker-table td a{display:block;padding:0.2em 0.3em 0.2em 0.5em;cursor:pointer;text-align:right;text-decoration:none}.ui-timepicker .ui-timepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-timepicker .ui-timepicker-buttonpane button{margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-timepicker .ui-timepicker-close{float:right }.ui-timepicker .ui-timepicker-now{float:left}.ui-timepicker .ui-timepicker-deselect{float:left}.ui-multiselect{box-sizing:border-box;padding:2px 0 2px 4px;text-align:left;width:auto}.ui-multiselect .ui-multiselect-open{float:right }.ui-multiselect-menu{display:none;box-sizing:border-box;position:absolute;text-align:left;z-index:101;width:auto;height:auto;padding:3px}.ui-multiselect-menu.ui-multiselect-listbox{position:relative;z-index:0}.ui-multiselect-header{display:block;box-sizing:border-box;position:relative;width:auto;padding:3px 0 3px 4px;margin-bottom:2px}.ui-multiselect-header > ul{font-size:0.9em }.ui-multiselect-header li{float:left;margin:0 10px 0 0}.ui-multiselect-header a{text-decoration:none}.ui-multiselect-header a:hover{text-decoration:underline;cursor:pointer}.ui-multiselect-header .ui-icon{float:left}.ui-multiselect-header .ui-multiselect-close{float:right;margin-right:0;text-align:right}.ui-multiselect-checkboxes{display:block;box-sizing:border-box;position:relative;overflow:auto;width:auto;border:0;padding:4px 0 8px}.ui-multiselect-checkboxes li:not(.ui-multiselect-optgroup){clear:both;font-size:0.9em;list-style:none;padding-right:3px}.ui-multiselect-checkboxes label{border:1px solid transparent;cursor:default;display:block;padding:3px 1px 3px 21px;text-indent:-20px}.ui-multiselect-checkboxes input{position:relative;top:1px;cursor:pointer}.ui-multiselect-checkboxes img{height:30px;vertical-align:middle;margin-right:3px}.ui-multiselect-grouplabel{border-bottom:1px solid;display:block;font-weight:bold;margin:1px 0;padding:3px;text-align:center;text-decoration:none}.ui-multiselect-selectable{cursor:pointer}.ui-multiselect-optgroup > ul{padding:3px}.ui-multiselect-columns{display:inline-block;vertical-align:top}.ui-multiselect-collapser{float:left;padding:0 1px;margin:0}.ui-multiselect-collapsed > ul{display:none }.ui-multiselect-single .ui-multiselect-checkboxes input{left:-9999px;position:absolute !important;top:auto !important}.ui-multiselect-single .ui-multiselect-checkboxes label{padding:5px !important;text-indent:0 !important}.ui-multiselect.ui-multiselect-nowrap{white-space:nowrap }.ui-multiselect.ui-multiselect-nowrap > span{display:inline-block }.ui-multiselect-checkboxes.ui-multiselect-nowrap li,.ui-multiselect-checkboxes.ui-multiselect-nowrap a{white-space:nowrap }.ui-multiselect-measure > .ui-multiselect-header,.ui-multiselect-measure > .ui-multiselect-checkboxes{float:left}.ui-multiselect-measure > .ui-multiselect-checkboxes{margin:4px;overflow-y:scroll}.ui-multiselect-resize{border:2px dotted #00F }@media print{.ui-multiselect-menu{display:none}}.ui-multiselect-hasfilter ul{position:relative;top:2px }.ui-multiselect-filter{float:left;margin-right:10px;font-size:1em;width:100%}.ui-multiselect-header .ui-multiselect-filter input{width:100px;font-size:.9em;margin-left:5px;height:15px;padding:2px;border:1px solid #292929;-webkit-appearance:textfield;-webkit-box-sizing:content-box}.ui-multiselect-excluded{display:none}body.rtl .ui-multiselect{direction:rtl;padding:2px 4px 2px 0;text-align:right}body.rtl .ui-multiselect-menu{text-align:right}body.rtl .ui-multiselect-header{direction:rtl;padding:3px 4px 3px 0}body.rtl .ui-multiselect-checkboxes li:not(.ui-multiselect-optgroup){padding-left:3px}body.rtl .ui-multiselect-checkboxes label{padding:3px 21px 3px 1px}body.rtl .ui-multiselect-checkboxes img{margin-left:3px}.ui-timepicker-div .ui-widget-header{margin-bottom:8px}.ui-timepicker-div dl{text-align:left}.ui-timepicker-div dl dt{float:left;clear:left;padding:0 0 0 5px}.ui-timepicker-div dl dd{margin:0 10px 10px 40%}.ui-timepicker-div td{font-size:90%}.ui-tpicker-grid-label{background:none;border:none;margin:0;padding:0}.ui-timepicker-div .ui_tpicker_unit_hide{display:none}.ui-timepicker-div .ui_tpicker_time .ui_tpicker_time_input{background:none;color:inherit;border:none;outline:none;border-bottom:solid 1px #555;width:95%}.ui-timepicker-div .ui_tpicker_time .ui_tpicker_time_input:focus{border-bottom-color:#aaa}.ui-timepicker-rtl{direction:rtl}.ui-timepicker-rtl dl{text-align:right;padding:0 5px 0 0}.ui-timepicker-rtl dl dt{float:right;clear:right}.ui-timepicker-rtl dl dd{margin:0 40% 10px 10px}.ui-timepicker-div.ui-timepicker-oneLine{padding-right:2px}.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time,.ui-timepicker-div.ui-timepicker-oneLine dt{display:none}.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time_label{display:block;padding-top:2px}.ui-timepicker-div.ui-timepicker-oneLine dl{text-align:right}.ui-timepicker-div.ui-timepicker-oneLine dl dd,.ui-timepicker-div.ui-timepicker-oneLine dl dd > div{display:inline-block;margin:0}.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_minute:before,.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_second:before{content:':';display:inline-block}.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_millisec:before,.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_microsec:before{content:'.';display:inline-block}.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide,.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide:before{display:none}.ui-widget{font-family:Arial,sans-serif;font-size:1rem}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #d3d3d3}.ui-widget-content{border:1px solid #aaaaaa;background:#ffffff;color:#222222}.ui-widget-content a{color:#222222}.ui-widget-header{border:1px solid #aaaaaa;background:#cccccc;color:#222222;font-weight:bold}.ui-widget-header a{color:#222222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #d3d3d3;background:#e6e6e6;font-weight:normal;color:#555555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#555555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #999999;background:#dadada;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#212121;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #aaaaaa;background:#ffffff;font-weight:normal;color:#212121}.ui-icon-background,.ui-state-active .ui-icon-background{border:#aaaaaa;background-color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee;color:#363636}.ui-state-checked{border:1px solid #fcefa1;background:#fbf9ee}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;-ms-filter:"alpha(opacity=70)";font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;-ms-filter:"alpha(opacity=35)";background-image:none}.ui-state-disabled .ui-icon{-ms-filter:"alpha(opacity=35)"}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("../../img/jquery.ui/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("../../img/jquery.ui/ui-icons_222222_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("../../img/jquery.ui/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("../../img/jquery.ui/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("../../img/jquery.ui/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("../../img/jquery.ui/ui-icons_cd0a0a_256x240.png")}.ui-button .ui-icon{background-image:url("../../img/jquery.ui/ui-icons_888888_256x240.png")}.ui-icon-blank.ui-icon-blank.ui-icon-blank{background-image:none}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:0}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:0}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:0}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:0}.ui-widget-overlay{background:#aaaaaa;opacity:.3;-ms-filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:-8px -8px 8px #aaaaaa;box-shadow:-8px -8px 8px #aaaaaa}div.olMap{z-index:0;padding:0 !important;margin:0 !important;cursor:default}div.olMapViewport{text-align:left}div.olLayerDiv{-moz-user-select:none;-khtml-user-select:none}.olLayerGoogleCopyright{left:2px;bottom:2px}.olLayerGoogleV3.olLayerGoogleCopyright{right:auto !important}.olLayerGooglePoweredBy{left:2px;bottom:15px}.olLayerGoogleV3.olLayerGooglePoweredBy{bottom:15px !important}.olForeignContainer{opacity:1 !important}.olControlAttribution{font-size:smaller;right:3px;bottom:4.5em;position:absolute;display:block}.olControlScale{right:3px;bottom:3em;display:block;position:absolute;font-size:smaller}.olControlScaleLine{display:block;position:absolute;left:10px;bottom:15px;font-size:xx-small}.olControlScaleLineBottom{border:solid 2px black;border-bottom:none;margin-top:-2px;text-align:center}.olControlScaleLineTop{border:solid 2px black;border-top:none;text-align:center}.olControlPermalink{right:3px;bottom:1.5em;display:block;position:absolute;font-size:smaller}div.olControlMousePosition{bottom:0;right:3px;display:block;position:absolute;font-family:Arial;font-size:smaller}.olControlOverviewMapContainer{position:absolute;bottom:0;right:0}.olControlOverviewMapElement{padding:10px 18px 10px 10px;background-color:#00008B;-moz-border-radius:1em 0 0 0}.olControlOverviewMapMinimizeButton,.olControlOverviewMapMaximizeButton{height:18px;width:18px;right:0;bottom:80px;cursor:pointer}.olControlOverviewMapExtentRectangle{overflow:hidden;background-image:url(../../img/gis/openlayers/theme_default/blank.gif);cursor:move;border:2px dotted red}.olControlOverviewMapRectReplacement{overflow:hidden;cursor:move;background-image:url(../../img/gis/openlayers/theme_default/overview_replacement.gif);background-repeat:no-repeat;background-position:center}.olLayerGeoRSSDescription{float:left;width:100%;overflow:auto;font-size:1.0em}.olLayerGeoRSSClose{float:right;color:gray;font-size:1.2em;margin-right:6px;font-family:sans-serif}.olLayerGeoRSSTitle{float:left;font-size:1.2em}.olPopupContent{padding:5px;overflow:auto}.olControlNavigationHistory{background-image:url(../../img/gis/openlayers/theme_default/navigation_history.png);background-repeat:no-repeat;width:24px;height:24px}.olControlNavigationHistoryPreviousItemActive{background-position:0 0}.olControlNavigationHistoryPreviousItemInactive{background-position:0 -24px}.olControlNavigationHistoryNextItemActive{background-position:-24px 0}.olControlNavigationHistoryNextItemInactive{background-position:-24px -24px}div.olControlSaveFeaturesItemActive{background-image:url(../../img/gis/openlayers/theme_default/save_features_on.png);background-repeat:no-repeat;background-position:0 1px}div.olControlSaveFeaturesItemInactive{background-image:url(../../img/gis/openlayers/theme_default/save_features_off.png);background-repeat:no-repeat;background-position:0 1px}.olHandlerBoxZoomBox{border:2px solid red;position:absolute;background-color:white;opacity:0.50;font-size:1px;filter:alpha(opacity=50)}.olHandlerBoxSelectFeature{border:2px solid blue;position:absolute;background-color:white;opacity:0.50;font-size:1px;filter:alpha(opacity=50)}.olControlPanPanel{top:10px;left:5px}.olControlPanPanel div{background-image:url(../../img/gis/openlayers/theme_default/pan-panel.png);height:18px;width:18px;cursor:pointer;position:absolute}.olControlPanPanel .olControlPanNorthItemInactive{top:0;left:9px;background-position:0 0}.olControlPanPanel .olControlPanSouthItemInactive{top:36px;left:9px;background-position:18px 0}.olControlPanPanel .olControlPanWestItemInactive{position:absolute;top:18px;left:0;background-position:0 18px}.olControlPanPanel .olControlPanEastItemInactive{top:18px;left:18px;background-position:18px 18px}.olControlZoomPanel{top:71px;left:14px}.olControlZoomPanel div{background-image:url(../../img/gis/openlayers/theme_default/zoom-panel.png);position:absolute;height:18px;width:18px;cursor:pointer}.olControlZoomPanel .olControlZoomInItemInactive{top:0;left:0;background-position:0 0}.olControlZoomPanel .olControlZoomToMaxExtentItemInactive{top:18px;left:0;background-position:0 -18px}.olControlZoomPanel .olControlZoomOutItemInactive{top:36px;left:0;background-position:0 18px}.olControlPanZoomBar div{font-size:1px}.olPopupCloseBox{background:url(../../img/gis/openlayers/theme_default/close.gif) no-repeat;cursor:pointer}.olFramedCloudPopupContent{padding:5px;overflow:auto}.olControlNoSelect{-moz-user-select:none;-khtml-user-select:none}.olImageLoadError{background-color:pink;opacity:0.5;filter:alpha(opacity=50)}.olCursorWait{cursor:wait}.olDragDown{cursor:move}.olDrawBox{cursor:crosshair}.olControlDragFeatureOver{cursor:move}.olControlDragFeatureActive.olControlDragFeatureOver.olDragDown{cursor:-moz-grabbing}.olControlLayerSwitcher{position:absolute;top:25px;right:0;width:20em;font-family:sans-serif;font-weight:bold;margin-top:3px;margin-left:3px;margin-bottom:3px;font-size:smaller;color:white;background-color:transparent}.olControlLayerSwitcher .layersDiv{padding-top:5px;padding-left:10px;padding-bottom:5px;padding-right:10px;background-color:darkblue}.olControlLayerSwitcher .layersDiv .baseLbl,.olControlLayerSwitcher .layersDiv .dataLbl{margin-top:3px;margin-left:3px;margin-bottom:3px}.olControlLayerSwitcher .layersDiv .baseLayersDiv,.olControlLayerSwitcher .layersDiv .dataLayersDiv{padding-left:10px}.olControlLayerSwitcher .maximizeDiv,.olControlLayerSwitcher .minimizeDiv{width:18px;height:18px;top:5px;right:0;cursor:pointer}.olBingAttribution{color:#DDD}.olBingAttribution.road{color:#333}.olGoogleAttribution.hybrid,.olGoogleAttribution.satellite{color:#EEE}.olGoogleAttribution{color:#333}span.olGoogleAttribution a{color:#77C}span.olGoogleAttribution.hybrid a,span.olGoogleAttribution.satellite a{color:#EEE}.olControlNavToolbar ,.olControlEditingToolbar{margin:5px 5px 0 0}.olControlNavToolbar div,.olControlEditingToolbar div{background-image:url(../../img/gis/openlayers/theme_default/editing_tool_bar.png);background-repeat:no-repeat;margin:0 0 5px 5px;width:24px;height:22px;cursor:pointer}.olControlEditingToolbar{right:0;top:0}.olControlNavToolbar{top:295px;left:9px}.olControlEditingToolbar div{float:right}.olControlNavToolbar .olControlNavigationItemInactive,.olControlEditingToolbar .olControlNavigationItemInactive{background-position:-103px -1px}.olControlNavToolbar .olControlNavigationItemActive ,.olControlEditingToolbar .olControlNavigationItemActive{background-position:-103px -24px}.olControlNavToolbar .olControlZoomBoxItemInactive{background-position:-128px -1px}.olControlNavToolbar .olControlZoomBoxItemActive{background-position:-128px -24px}.olControlEditingToolbar .olControlDrawFeaturePointItemInactive{background-position:-77px -1px}.olControlEditingToolbar .olControlDrawFeaturePointItemActive{background-position:-77px -24px}.olControlEditingToolbar .olControlDrawFeaturePathItemInactive{background-position:-51px -1px}.olControlEditingToolbar .olControlDrawFeaturePathItemActive{background-position:-51px -24px}.olControlEditingToolbar .olControlDrawFeaturePolygonItemInactive{background-position:-26px -1px}.olControlEditingToolbar .olControlDrawFeaturePolygonItemActive{background-position:-26px -24px}div.olControlZoom{position:absolute;top:8px;left:8px;background:rgba(255,255,255,0.4);border-radius:4px;padding:2px}div.olControlZoom a{display:block;margin:1px;padding:0;color:white;font-size:18px;font-family:'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;font-weight:bold;text-decoration:none;text-align:center;height:22px;width:22px;line-height:19px;background:#130085;background:rgba(0,60,136,0.5);filter:alpha(opacity=80)}div.olControlZoom a:hover{background:#130085;background:rgba(0,60,136,0.7);filter:alpha(opacity=100)}@media only screen and (max-width:600px){div.olControlZoom a:hover{background:rgba(0,60,136,0.5)}}a.olControlZoomIn{border-radius:4px 4px 0 0}a.olControlZoomOut{border-radius:0 0 4px 4px}.olLayerGrid .olTileImage{-webkit-transition:opacity 0.2s linear;-moz-transition:opacity 0.2s linear;-o-transition:opacity 0.2s linear;transition:opacity 0.2s linear}.olTileImage{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-o-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;-moz-perspective:1000;-ms-perspective:1000;perspective:1000}.olTileReplacing{display:none}img.olTileImage{max-width:none}@font-face{font-family:'zocial';font-style:normal;font-weight:normal;src:url('../../fonts/zocial-regular-webfont.eot');src:url('../../fonts/zocial-regular-webfont.eot?#iefix') format('embedded-opentype'),url('../../fonts/zocial-regular-webfont.woff') format('woff'),url('../../fonts/zocial-regular-webfont.ttf') format('truetype'),url('../../fonts/zocial-regular-webfont.svg#ZocialRegular') format('svg')}.zocial{border-bottom-color:rgba(0,0,0,0.4);border:1px solid rgba(0,0,0,0.2);color:#fff !important;-moz-box-shadow:inset 0 0.08em 0 rgba(255,255,255,0.5),inset 0 0 0.1em rgba(255,255,255,0.9);-webkit-box-shadow:inset 0 0.08em 0 rgba(255,255,255,0.5),inset 0 0 0.1em rgba(255,255,255,0.9);box-shadow:inset 0 0.08em 0 rgba(255,255,255,0.5),inset 0 0 0.1em rgba(255,255,255,0.9);cursor:pointer;display:inline-block;font-family:"Lucida Grande",Tahoma,sans-serif;font-style:normal !important;font-weight:bold !important;letter-spacing:0;padding:0;position:relative;text-align:center;text-decoration:none !important;text-shadow:0 1px 0 rgba(0,0,0,0.5);-moz-user-select:none !important;-webkit-user-select:none !important;user-select:none !important}.zocial > span:before{border-right:0.075em solid rgba(0,0,0,0.1);-moz-box-shadow:0.075em 0 0 rgba(255,255,255,0.25);-webkit-box-shadow:0.075em 0 0 rgba(255,255,255,0.25);box-shadow:0.075em 0 0 rgba(255,255,255,0.25);content:"";display:block;float:left;font-family:"zocial" !important;font-size:125% !important;line-height:1.65;font-style:normal !important;font-weight:normal !important;margin:0.1em 0.5em 0 0;padding:0 0.5em;text-align:center !important;text-decoration:none !important;text-transform:none !important}.zocial > span{display:block;font-size:80% !important;line-height:2.1;font-weight:bold;padding:0em 1em 0 0;white-space:nowrap}.zocial,.zocial > span{-moz-border-radius:0.2em;-webkit-border-radius:0.2em;border-radius:0.2em;position:relative;z-index:100}.zocial:active{outline:none}.zocial.icon{overflow:hidden;width:1.85em;height:1.85em}.zocial.icon > span:before{padding:0;width:1.85em;height:1.85em}.zocial > span{background:-moz-linear-gradient(top,rgba(255,255,255,0.1),rgba(255,255,255,0.05) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.1));background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0.1)),color-stop(49%,rgba(255,255,255,0.05)),color-stop(51%,rgba(0,0,0,0.05)),to(rgba(0,0,0,0.1)));background:-webkit-linear-gradient(top,rgba(255,255,255,0.1),rgba(255,255,255,0.05) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.1));background:-o-linear-gradient(top,rgba(255,255,255,0.1),rgba(255,255,255,0.05) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.1));background:-ms-linear-gradient(top,rgba(255,255,255,0.1),rgba(255,255,255,0.05) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.1));background:linear-gradient(top,rgba(255,255,255,0.1),rgba(255,255,255,0.05) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.1))}.zocial:hover > span,.zocial:focus > span{background:-moz-linear-gradient(top,rgba(255,255,255,0.15),rgba(255,255,255,0.15) 49%,rgba(0,0,0,0.1) 51%,rgba(0,0,0,0.15));background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0.15)),color-stop(49%,rgba(255,255,255,0.15)),color-stop(51%,rgba(0,0,0,0.1)),to(rgba(0,0,0,0.15)));background:-webkit-linear-gradient(top,rgba(255,255,255,0.15),rgba(255,255,255,0.15) 49%,rgba(0,0,0,0.1) 51%,rgba(0,0,0,0.15));background:-o-linear-gradient(top,rgba(255,255,255,0.15),rgba(255,255,255,0.15) 49%,rgba(0,0,0,0.1) 51%,rgba(0,0,0,0.15));background:-ms-linear-gradient(top,rgba(255,255,255,0.15),rgba(255,255,255,0.15) 49%,rgba(0,0,0,0.1) 51%,rgba(0,0,0,0.15));background:linear-gradient(top,rgba(255,255,255,0.15),rgba(255,255,255,0.15) 49%,rgba(0,0,0,0.1) 51%,rgba(0,0,0,0.15))}.zocial:active > span{background:-moz-linear-gradient(bottom,rgba(255,255,255,0.1),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0.1)),color-stop(30%,rgba(255,255,255,0)),color-stop(50%,rgba(0,0,0,0)),to(rgba(0,0,0,0.1)));background:-webkit-linear-gradient(bottom,rgba(255,255,255,0.1),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:-o-linear-gradient(bottom,rgba(255,255,255,0.1),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:-ms-linear-gradient(bottom,rgba(255,255,255,0.1),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:linear-gradient(bottom,rgba(255,255,255,0.1),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1))}.zocial.bitcoin,.zocial.cloudapp,.zocial.dropbox,.zocial.email,.zocial.github,.zocial.gmail,.zocial.instapaper,.zocial.itunes,.zocial.ninetyninedesigns,.zocial.openid,.zocial.plancast,.zocial.posterous,.zocial.secondary,.zocial.viadeo,.zocial.weibo,.zocial.wikipedia{border:1px solid rgba(0,0,0,0.3);border-bottom-color:rgba(0,0,0,0.5);-moz-box-shadow:inset 0 0.08em 0 rgba(255,255,255,0.7),inset 0 0 0.08em rgba(255,255,255,0.5);-webkit-box-shadow:inset 0 0.08em 0 rgba(255,255,255,0.7),inset 0 0 0.08em rgba(255,255,255,0.5);box-shadow:inset 0 0.08em 0 rgba(255,255,255,0.7),inset 0 0 0.08em rgba(255,255,255,0.5);text-shadow:0 1px 0 rgba(255,255,255,0.8)}.zocial.bitcoin:focus > span,.zocial.bitcoin:hover > span,.zocial.dropbox:focus > span,.zocial.dropbox:hover > span,.zocial.email:focus > span,.zocial.email:hover > span,.zocial.github:focus > span,.zocial.github:hover > span,.zocial.gmail:focus > span,.zocial.gmail:hover > span,.zocial.instapaper:focus > span,.zocial.instapaper:hover > span,.zocial.itunes:focus > span,.zocial.itunes:hover > span,.zocial.ninetyninedesigns:focus > span,.zocial.ninetyninedesigns:hover > span,.zocial.openid:focus > span,.zocial.openid:hover > span,.zocial.plancast:focus > span,.zocial.plancast:hover > span,.zocial.posterous:focus > span,.zocial.posterous:hover > span,.zocial.secondary:focus > span,.zocial.secondary:hover > span,.zocial.twitter:focus > span,.zocial.viadeo:focus > span,.zocial.viadeo:hover > span,.zocial.weibo:focus > span,.zocial.weibo:hover > span,.zocial.wikipedia:focus > span,.zocial.wikipedia:hover > span{background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0.5)),color-stop(49%,rgba(255,255,255,0.2)),color-stop(51%,rgba(0,0,0,0.05)),to(rgba(0,0,0,0.15)));background:-moz-linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15));background:-webkit-linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15));background:-o-linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15));background:-ms-linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15));background:linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15))}.zocial.bitcoin:active > span,.zocial.dropbox:active > span,.zocial.email:active > span,.zocial.github:active > span,.zocial.gmail:active > span,.zocial.instapaper:active > span,.zocial.itunes:active > span,.zocial.ninetyninedesigns:active > span,.zocial.openid:active > span,.zocial.plancast:active > span,.zocial.posterous:active > span,.zocial.secondary:active > span,.zocial.viadeo:active > span,.zocial.weibo:active > span,.zocial.wikipedia:active > span{background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0)),color-stop(30%,rgba(255,255,255,0)),color-stop(50%,rgba(0,0,0,0)),to(rgba(0,0,0,0.1)));background:-moz-linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:-webkit-linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:-o-linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:-ms-linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1))}.zocial.amazon > span:before{content:"a"}.zocial.android > span:before{content:"&"}.zocial.aol > span:before{content:"\""}.zocial.appstore > span:before{content:"A"}.zocial.bitcoin > span:before{content:"2";color:#f7931a !important}.zocial.blogger > span:before{content:"B"}.zocial.call > span:before{content:"7"}.zocial.chrome > span:before{content:"["}.zocial.cloudapp > span:before{content:"c"}.zocial.creativecommons > span:before{content:"C"}.zocial.disqus > span:before{content:"Q"}.zocial.dribbble > span:before{content:"D"}.zocial.dropbox > span:before{content:"d";color:#1f75cc !important}.zocial.email > span:before{content:"]";color:#312c2a !important}.zocial.eventasaurus > span:before{content:"v"}.zocial.eventbrite > span:before{content:"|"}.zocial.evernote > span:before{content:"E"}.zocial.facebook > span:before{content:"f"}.zocial.fivehundredpx > span:before{content:"0";color:#29b6ff !important}.zocial.flattr > span:before{content:"%"}.zocial.forrst > span:before{content:":";color:#50894f !important}.zocial.foursquare > span:before{content:"4"}.zocial.github > span:before{content:"g"}.zocial.gmail > span:before{content:"m";color:#f00 !important}.zocial.google > span:before{content:"G"}.zocial.googleplus > span:before{content:"+"}.zocial.gowalla > span:before{content:"@"}.zocial.grooveshark > span:before{content:"K"}.zocial.guest > span:before{content:"?"}.zocial.html5 > span:before{content:"5"}.zocial.ie > span:before{content:"6"}.zocial.instapaper > span:before{content:"I"}.zocial.intensedebate > span:before{content:"{"}.zocial.itunes > span:before{content:"i";color:#1a6dd2 !important}.zocial.lastfm > span:before{content:"l"}.zocial.linkedin > span:before{content:"L"}.zocial.macstore > span:before{content:"^"}.zocial.meetup > span:before{content:"M"}.zocial.myspace > span:before{content:"_"}.zocial.ninetyninedesigns > span:before{content:"9";color:#f50 !important}.zocial.openid > span:before{content:"o";color:#ff921d !important}.zocial.paypal > span:before{content:"$"}.zocial.pinboard > span:before{content:"n"}.zocial.pinterest > span:before{content:"1"}.zocial.plancast > span:before{content:"P"}.zocial.plurk > span:before{content:"j"}.zocial.podcast > span:before{content:"`"}.zocial.posterous > span:before{content:"~"}.zocial.quora > span:before{content:"q"}.zocial.rss > span:before{content:"R"}.zocial.scribd > span:before{content:"}";color:#00d5ea !important}.zocial.skype > span:before{content:"S"}.zocial.smashing > span:before{content:"*"}.zocial.songkick > span:before{content:"k"}.zocial.soundcloud > span:before{content:"s"}.zocial.spotify > span:before{content:"="}.zocial.stumbleupon > span:before{content:"/"}.zocial.tumblr > span:before{content:"t"}.zocial.twitter > span:before{content:"T"}.zocial.viadeo > span:before{content:"H";color:#f59b20 !important}.zocial.vimeo > span:before{content:"V"}.zocial.weibo > span:before{content:"J";color:#e6162d !important}.zocial.wikipedia > span:before{content:","}.zocial.windows > span:before{content:"W"}.zocial.wordpress > span:before{content:"w"}.zocial.yahoo > span:before{content:"Y"}.zocial.yelp > span:before{content:"y"}.zocial.youtube > span:before{content:"U"}.zocial.amazon{background:#ffad1d;color:#030037 !important;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.zocial.android{background:#a4c639}.zocial.aol{background:#f00}.zocial.appstore{background:#000}.zocial.bitcoin{background:#efefef;color:#4d4d4d !important}.zocial.blogger{background:#ee5a22}.zocial.call{background:#008000}.zocial.chrome{background:#006cd4}.zocial.cloudapp{background:#fff;color:#312c2a !important}.zocial.creativecommons{background:#000}.zocial.disqus{background:#5d8aad}.zocial.dribbble{background:#ea4c89}.zocial.dropbox{background:#fff;color:#312c2a !important}.zocial.email{background:#f0f0eb;color:#312c2a !important}.zocial.eventasaurus{background:#8ccc33}.zocial.eventbrite{background:#ff5616}.zocial.evernote{background:#6bb130;color:#fff !important}.zocial.facebook{background:#4863ae}.zocial.fivehundredpx{background:#333}.zocial.flattr{background:#8aba42}.zocial.forrst{background:#1e360d}.zocial.foursquare{background:#44a8e0}.zocial.github{background:#fbfbfb;color:#050505 !important}.zocial.gmail{background:#efefef;color:#222 !important}.zocial.google{background:#4e6cf7}.zocial.googleplus{background:#dd4b39}.zocial.gowalla{background:#ff720a}.zocial.grooveshark{background:#111;color:#eee !important}.zocial.guest{background:#1b4d6d}.zocial.html5{background:#ff3617}.zocial.ie{background:#00a1d9}.zocial.instapaper{background:#eee;color:#222 !important}.zocial.intensedebate{background:#0099e1}.zocial.itunes{background:#efefeb;color:#312c2a !important}.zocial.lastfm{background:#dc1a23}.zocial.linkedin{background:#0083a8}.zocial.macstore{background:#007dcb}.zocial.meetup{background:#ff0026}.zocial.myspace{background:#000}.zocial.ninetyninedesigns{background:#fff;color:#072243 !important}.zocial.openid{background:#f5f5f5;color:#333 !important}.zocial.paypal{background:#ff921d;color:#032751 !important;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.zocial.pinboard{background:blue}.zocial.pinterest{background:#c91618}.zocial.plancast{background:#e7ebed;color:#333 !important}.zocial.plurk{background:#cf682f}.zocial.podcast{background:#9365ce}.zocial.posterous{background:#ffd959;color:#bc7134 !important}.zocial.quora{background:#a82400}.zocial.rss{background:#ff7f25}.zocial.scribd{background:#231c1a}.zocial.skype{background:#00a2ed}.zocial.smashing{background:#ff4f27}.zocial.songkick{background:#ff0050}.zocial.soundcloud{background:#ff4500}.zocial.spotify{background:#60af00}.zocial.stumbleupon{background:#eb4924}.zocial.tumblr{background:#374a61}.zocial.twitter{background:#46c0fb}.zocial.viadeo{background:#fff;color:#000 !important}.zocial.vimeo{background:#00a2cd}.zocial.weibo{background:#faf6f1;color:#000 !important}.zocial.wikipedia{background:#fff;color:#000 !important}.zocial.windows{background:#0052a4;color:#FFF !important}.zocial.wordpress{background:#464646}.zocial.yahoo{background:#a200c2}.zocial.yelp{background:#e60010}.zocial.youtube{background:#f00}.zocial.primary > span,.zocial.secondary > span{margin:0.1em 0;padding:0 1em}.zocial.primary > span:before,.zocial.secondary > span:before{display:none}.zocial.primary{background:#333}.zocial.secondary{background:#f0f0eb;color:#222 !important;text-shadow:0 1px 0 rgba(255,255,255,0.8)}.zocial.humanitarianid > span:before{content:url(../../img/humanitarianid.png);height:24px;padding-top:3px}.zocial.humanitarianid{background:##e2e2e2;color:#2a5d81 !important}.zocial.humanitarianid{border:1px solid rgba(0,0,0,0.3);border-bottom-color:rgba(0,0,0,0.5);-moz-box-shadow:inset 0 0.08em 0 rgba(255,255,255,0.7),inset 0 0 0.08em rgba(255,255,255,0.5);-webkit-box-shadow:inset 0 0.08em 0 rgba(255,255,255,0.7),inset 0 0 0.08em rgba(255,255,255,0.5);box-shadow:inset 0 0.08em 0 rgba(255,255,255,0.7),inset 0 0 0.08em rgba(255,255,255,0.5);text-shadow:0 1px 0 rgba(255,255,255,0.8)}.zocial.humanitarianid:hover > span,.zocial.humanitarianid:focus > span{background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0.5)),color-stop(49%,rgba(255,255,255,0.2)),color-stop(51%,rgba(0,0,0,0.05)),to(rgba(0,0,0,0.15)));background:-moz-linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15));background:-webkit-linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15));background:-o-linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15));background:-ms-linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15));background:linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15))}.zocial.humanitarianid:active > span{background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0)),color-stop(30%,rgba(255,255,255,0)),color-stop(50%,rgba(0,0,0,0)),to(rgba(0,0,0,0.1)));background:-moz-linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:-webkit-linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:-o-linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:-ms-linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1))}button::-moz-focus-inner{border:0;padding:0}.embeddedComponent .map_wrapper{min-width:350px}.map_wrapper{position:relative;overflow:hidden;clear:right}.map_wrapper.fullscreen{overflow:visible}.gis_west .x-panel-body{overflow-y:auto}.map_loader{margin-top:50px;margin-left:auto;margin-right:auto}form .map_loader{margin-top:0}.x-form-item-label{margin:0 0 0 4px}body.x-window-maximized-ct{width:100%}.form-container form tr.x-toolbar-left-row td{padding:0}.map_home{margin:0 0 0 -12px}.map_home .gis_fullscreen_map-btn{font-weight:bold;padding-left:8px}body.rtl .map_home .gis_fullscreen_map-btn{float:left}.gis_print_map-btn{font-weight:bold;float:right;padding-right:8px}.notitle .ui-dialog-titlebar{background-image:none !important;border:0;padding:0}.notitle .ui-dialog-title{margin:0;padding:0}.notitle .ui-dialog-titlebar-close{margin-top:-10px}.gis-map-window.x-resizable-pinned .x-window-tl{height:0}.form-container form button.gis_loc_select_btn{padding:4px}.form-container form button.gis_loc_select_btn i.icon-map{padding-right:2px}.gis-display-feature i.icon-map-marker{cursor:pointer;cursor:hand;padding-left:5px}.embeddedComponent .map_wrapper{width:100%}.gis_coord_wrap .decimal{width:174px}.gis_coord_wrap .gis_coord_dms input{width:37px}.gis_coord_wrap .gis_coord_dms input.seconds{width:70px}.gis_coord_wrap div{padding-top:8px}.x-tree-elbow,.x-tree-elbow-end,.x-tree-node-icon{display:none}.x-tree-node-anchor{padding-left:5px;padding-right:5px}.x-tree-node{font-size:12px}.x-tree-node-leaf{margin-left:10px}.x-tree-root-ct,.x-tree-node-ct{margin:0}.map_legend_div{position:absolute;bottom:0;right:0}.map_wrapper.fullscreen .map_legend_div{z-index:9100}.map_wrapper.a4 .map_legend_div{margin-bottom:-440px}.map_wrapper.a3 .map_legend_div{margin-bottom:-687px;right:-140px}.map_wrapper.a2 .map_legend_div{margin-bottom:-1036px;right:-530px}.map_wrapper.a1 .map_legend_div{margin-bottom:-1529px;right:-2130px}.map_wrapper.a0 .map_legend_div{margin-bottom:-2229px;right:-3125px}.map_legend_panel{background-color:#fbfbfb;border:solid;border-radius:5px 0 0 5px;padding:1px;margin:0 0 20px;width:auto;max-width:800px;max-height:500px;overflow-y:auto;border-right:none}.map_legend_panel .x-panel-header-noborder{border:none}.map_legend_tab{background-color:#fbfbfb;border:solid;border-width:2px;margin-top:5px;font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;float:left;border-radius:3px 0 3px 3px;border-right:none;border-right-width:0;margin-right:-6px;margin-left:-12px;padding-left:2px;padding-right:3px}.map_legend_tab:before{text-decoration:inherit;display:inline-block;speak:none}.map_legend_tab.left:before{content:"\f100"}.map_legend_tab.right:before{content:"\f101"}.map_wrapper.print .map_legend_tab{height:0}.map_wrapper.print .map_legend_tab.right:before,.map_wrapper.print .map_legend_tab.left:before{content:normal}.gis_legend_title{font-weight:bold;margin-top:10px}.gis_legend_desc{max-width:200px}.layer_throbber.float{position:absolute;top:10px;right:10px}.layer_throbber.save{top:65px}.map_polygon_panel{background-color:#fbfbfb;position:absolute;top:10px;height:125px;width:350px;margin-left:-175px;left:50%;border:solid;border-radius:2px;border-width:1px;font-size:small;text-align:center;padding:12px}.map_polygon_buttons{font-size:0.75rem;margin-top:12px;text-transform:uppercase}.button.map_polygon_finish{margin-right:12px}.map_save_panel{background-color:#fbfbfb;position:absolute;top:0;right:0;margin:10px 0;padding:5px;border:solid;border-radius:5px 0 0 5px;width:auto}.map_wrapper.fullscreen .map_save_panel{z-index:9100;margin-top:-100px}.map_wrapper.print .map_save_button{height:0;width:0;visibility:hidden}.map_save_panel.off{visibility:hidden}.map_save_button{background-color:#fbfbfb;padding:5px;border:solid;border-radius:5px 5px 5px 5px;width:auto;cursor:pointer;visibility:visible;float:right}.map_save_name{font-weight:bold;text-align:center;padding:5px;margin-top:2px}.map_save_panel input{width:150px;margin-top:1px;margin-right:5px}.map_save_panel input.checkbox{width:10px;margin:0 5px 0 0}.map_save_panel .new_map{font-size:small}.map_save_panel .saved{float:left}.map_save_panel p{float:left;padding:5px;color:green;margin:0}#config-gis_config_pe_id-options-filter__row .s3-groupedopts-option{display:none}#config-gis_config_pe_id-options-filter__row .s3-groupedopts-widget td:first-child{border-right:solid 1px;padding-right:10px}.olControlMousePosition{font-size:10px;background-color:white}.crosshair{cursor:crosshair}.olLayerGoogleCopyright{right:3px;bottom:2px;left:auto}.olLayerGooglePoweredBy{left:2px;bottom:2px}.olForeignContainer div.olControlMousePosition{bottom:28px}.gis_tooltip{opacity:0.7 !important}.gis_tooltip_content{overflow:hidden;padding:3px;margin:10px}.olPopup #plain{max-width:450px}.olPopupCloseBox{margin-right:15px;margin-top:-8px}.olFramedCloudPopupContent label{padding-right:5px}.gis-map-window .olFramedCloudPopupContent td{padding:2px}.gis_popup_row{display:table-row}.gis_popup_label{display:table-cell;font-weight:bold;text-align:right;padding-right:2px}.gis_popup_val{display:table-cell}#georsspopup h2,#kmlpopup h2{margin:0}.gx-popup-anc{background:transparent url(../../img/gis/geoext/anchor.png) no-repeat 0 0;position:relative;top:-1px;left:5px;z-index:2;height:16px;width:31px}.gx-ruledrag-insert-below{border-bottom:1px dotted}.gx-ruledrag-insert-above{border-top:1px dotted}.mappnlcntr .zoomfull{background-image:url(../../img/gis/mapfish/icon_zoomfull.png) !important;height:20px !important;width:20px !important}.mappnlcntr .zoomin{background-image:url(../../img/gis/mapfish/icon_zoomin.png) !important;height:20px !important;width:20px !important}.mappnlcntr .zoomout{background-image:url(../../img/gis/mapfish/icon_zoomout.png) !important;height:20px !important;width:20px !important}.mappnlcntr .pan-off{background-image:url(../../img/gis/mapfish/icon_pan.png) !important;height:20px !important;width:20px !important}.mappnlcntr .measure-off{background-image:url(../../img/gis/measuring-stick-off.png) !important;height:20px !important;width:20px !important}.mappnlcntr .measure-area{background-image:url(../../img/gis/measure-area-off.png) !important;height:20px !important;width:20px !important}.mappnlcntr .modifyfeature{background-image:url(../../img/gis/mapfish/move_vertex_off.png) !important;height:20px !important;width:20px !important}.mappnlcntr .drawpoint-off{background-image:url(../../img/gis/add_point_off.png) !important;height:20px !important;width:20px !important}.mappnlcntr .drawline-off{background-image:url(../../img/gis/mapfish/draw_line_off.png) !important;height:20px !important;width:20px !important}.mappnlcntr .drawpolygon-off{background-image:url(../../img/gis/mapfish/draw_polygon_off.png) !important;height:20px !important;width:20px !important}.mappnlcntr .drawpolygonclear-off{background-image:url(../../img/gis/mapfish/draw_polygon_clear_off.png) !important;height:20px !important;width:20px !important}.mappnlcntr .drawcircle-on{background-image:url(../../img/draw_circle_on.png) !important;height:20px !important;width:20px !important}.mappnlcntr .info{background-image:url(../../img/gis/mapfish/info.png) !important;height:20px !important;width:20px !important}.mappnlcntr .searchclick{background-image:url(../../img/ext/information.png) !important;height:20px !important;width:20px !important}.mappnlcntr .searchbox{background-image:url(../../img/ext/information-box.png) !important;height:20px !important;width:20px !important}.mappnlcntr .back{background-image:url(../../img/gis/mapfish/resultset_previous.png) !important;height:20px !important;width:20px !important}.mappnlcntr .next{background-image:url(../../img/gis/mapfish/resultset_next.png) !important;height:20px !important;width:20px !important}.mappnlcntr .print{background-image:url(../../img/silk/printer.png) !important;height:20px !important;width:20px !important}.mappnlcntr .save{background-image:url(../../img/ext/save.gif) !important;height:20px !important;width:20px !important}.x-btn-text.geolocation{background-image:url(../../img/gis/geolocation.png) !important;height:20px !important;width:20px !important}.x-btn-text.potlatch{background-image:url(../../img/gis/openstreetmap.png) !important;height:20px !important;width:20px !important}.x-btn-text.streetview{background-image:url(../../img/gis/streetview.png) !important;height:20px !important;width:20px !important}.gxp-icon-addlayers{background-image:url(../../img/silk/add.png) !important}.gxp-icon-addserver{background-image:url(../../img/silk/server_add.png) !important}.gxp-icon-getfeatureinfo{background-image:url(../../img/silk/information.png) !important}.gxp-icon-removelayers{background-image:url(../../img/silk/delete.png) !important}.gxp-icon-layerproperties{background-image:url(../../img/silk/wrench.png) !important}.icon-clearlayers{background-image:url(../../img/silk/eye.png)}.mappnlcntr .movefeature{background-image:url(../../img/gis/arrow_refresh.png) !important;height:20px !important;width:20px !important}.mappnlcntr .removefeature{background-image:url(../../img/gis/remove_point_off.png) !important;height:20px !important;width:20px !important}.mappnlcntr .resizefeature{background-image:url(../../img/gis/resize.png) !important;height:20px !important;width:20px !important}.mappnlcntr .rotatefeature{background-image:url(../../img/gis/arrow_rotate_clockwise.png) !important;height:20px !important;width:20px !important}.gis-map-window table,.map_wrapper table{background:none;border:none;margin-bottom:0}.gis-map-window table tr:nth-of-type(2n),.map_wrapper table tr:nth-of-type(2n){background-color:inherit}.gis-map-window table tr th,.gis-map-window table tr td,.map_wrapper table tr th,.map_wrapper table tr td{color:inherit;font-size:inherit;padding:0}.gis-map-window input[type="text"],.gis-map-window input[type="checkbox"],.gis-map-window input[type="radio"],.map_wrapper input[type="text"],.map_wrapper input[type="checkbox"],.map_wrapper input[type="radio"]{margin:0;padding:0}.x-form-element input[type="text"]{display:inline;font-size:inherit;margin:0;padding:0}.map_legend_tab.right{float:left !important}#contents .map_wrapper a:not(.action-btn):not(.delete-btn){text-decoration:none}@charset "UTF-8";@media print{body{ background:transparent;color:black;font-family:"Georgia",Times New Roman,Serif;font-size:12pt} #menu_modules,#menu_options,#footer,#rheader_tabs,#searchCombo{display:none} #content{background-color:transparent;width:100%;float:none !important;border:0;border-radius:0;margin:0;padding:0} #content h1,#content h2{background:white;color:black;font-size:16pt;border:0;border-radius:0;margin:0} #content h3{background:white;color:black;font-size:14pt;margin:0} a{color:black;background:transparent;text-decoration:underline} #comments{page-break-before:always} *{background:transparent !important;color:#444 !important;text-shadow:none !important} a,a:visited{color:#444 !important;text-decoration:underline} a:after{content:" (" attr(href) ")"} abbr:after{content:" (" attr(title) ")"} .ir a:after{content:""} pre,blockquote{border:1px solid #999;page-break-inside:avoid} thead{display:table-header-group} tr,img{page-break-inside:avoid} @page{margin:0.5cm} p,h2,h3{orphans:3;widows:3} h2,h3{page-break-after:avoid}}.nvd3 .nv-axis{pointer-events:none;opacity:1}.nvd3 .nv-axis path{fill:none;stroke:#000;stroke-opacity:.75;shape-rendering:crispEdges}.nvd3 .nv-axis path.domain{stroke-opacity:.75}.nvd3 .nv-axis.nv-x path.domain{stroke-opacity:0}.nvd3 .nv-axis line{fill:none;stroke:#e5e5e5;shape-rendering:crispEdges}.nvd3 .nv-axis .zero line,.nvd3 .nv-axis line.zero{stroke-opacity:.75}.nvd3 .nv-axis .nv-axisMaxMin text{font-weight:bold}.nvd3 .x .nv-axis .nv-axisMaxMin text,.nvd3 .x2 .nv-axis .nv-axisMaxMin text,.nvd3 .x3 .nv-axis .nv-axisMaxMin text{text-anchor:middle}.nvd3 .nv-axis.nv-disabled{opacity:0}.nvd3 .nv-bars rect{fill-opacity:.75;transition:fill-opacity 250ms linear}.nvd3 .nv-bars rect.hover{fill-opacity:1}.nvd3 .nv-bars .hover rect{fill:lightblue}.nvd3 .nv-bars text{fill:rgba(0,0,0,0)}.nvd3 .nv-bars .hover text{fill:rgba(0,0,0,1)}.nvd3 .nv-multibar .nv-groups rect,.nvd3 .nv-multibarHorizontal .nv-groups rect,.nvd3 .nv-discretebar .nv-groups rect{stroke-opacity:0;transition:fill-opacity 250ms linear}.nvd3 .nv-multibar .nv-groups rect:hover,.nvd3 .nv-multibarHorizontal .nv-groups rect:hover,.nvd3 .nv-candlestickBar .nv-ticks rect:hover,.nvd3 .nv-discretebar .nv-groups rect:hover{fill-opacity:1}.nvd3 .nv-discretebar .nv-groups text,.nvd3 .nv-multibarHorizontal .nv-groups text{font-weight:bold;fill:rgba(0,0,0,1);stroke:rgba(0,0,0,0)}.nvd3 .nv-boxplot circle{fill-opacity:0.5}.nvd3 .nv-boxplot circle:hover{fill-opacity:1}.nvd3 .nv-boxplot rect:hover{fill-opacity:1}.nvd3 line.nv-boxplot-median{stroke:black}.nv-boxplot-tick:hover{stroke-width:2.5px}.nvd3.nv-bullet{font:10px sans-serif}.nvd3.nv-bullet .nv-measure{fill-opacity:.8}.nvd3.nv-bullet .nv-measure:hover{fill-opacity:1}.nvd3.nv-bullet .nv-marker{stroke:#000;stroke-width:2px}.nvd3.nv-bullet .nv-markerTriangle{stroke:#000;fill:#fff;stroke-width:1.5px}.nvd3.nv-bullet .nv-markerLine{stroke:#000;stroke-width:1.5px}.nvd3.nv-bullet .nv-tick line{stroke:#666;stroke-width:.5px}.nvd3.nv-bullet .nv-range.nv-s0{fill:#eee}.nvd3.nv-bullet .nv-range.nv-s1{fill:#ddd}.nvd3.nv-bullet .nv-range.nv-s2{fill:#ccc}.nvd3.nv-bullet .nv-title{font-size:14px;font-weight:bold}.nvd3.nv-bullet .nv-subtitle{fill:#999}.nvd3.nv-bullet .nv-range{fill:#bababa;fill-opacity:.4}.nvd3.nv-bullet .nv-range:hover{fill-opacity:.7}.nvd3.nv-candlestickBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.positive rect{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.negative rect{stroke:#d62728;fill:#d62728}.with-transitions .nv-candlestickBar .nv-ticks .nv-tick{transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-candlestickBar .nv-ticks line{stroke:#333}.nv-force-node{stroke:#fff;stroke-width:1.5px}.nv-force-link{stroke:#999;stroke-opacity:.6}.nv-force-node text{stroke-width:0px}.nvd3 .nv-legend .nv-disabled rect{}.nvd3 .nv-check-box .nv-box{fill-opacity:0;stroke-width:2}.nvd3 .nv-check-box .nv-check{fill-opacity:0;stroke-width:4}.nvd3 .nv-series.nv-disabled .nv-check-box .nv-check{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-controlsWrap .nv-legend .nv-check-box .nv-check{opacity:0}.nvd3.nv-linePlusBar .nv-bar rect{fill-opacity:.75}.nvd3.nv-linePlusBar .nv-bar rect:hover{fill-opacity:1}.nvd3 .nv-groups path.nv-line{fill:none}.nvd3 .nv-groups path.nv-area{stroke:none}.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point{fill-opacity:0;stroke-opacity:0}.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point{fill-opacity:.5 !important;stroke-opacity:.5 !important}.with-transitions .nvd3 .nv-groups .nv-point{transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-scatter .nv-groups .nv-point.hover,.nvd3 .nv-groups .nv-point.hover{stroke-width:7px;fill-opacity:.95 !important;stroke-opacity:.95 !important}.nvd3 .nv-point-paths path{stroke:#aaa;stroke-opacity:0;fill:#eee;fill-opacity:0}.nvd3 .nv-indexLine{cursor:ew-resize}svg.nvd3-svg{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block;width:100%;height:100%}.nvtooltip.with-3d-shadow,.with-3d-shadow .nvtooltip{box-shadow:0 5px 10px rgba(0,0,0,.2);border-radius:5px}.nvd3 text{font:normal 12px Arial,sans-serif}.nvd3 .title{font:bold 14px Arial,sans-serif}.nvd3 .nv-background{fill:white;fill-opacity:0}.nvd3.nv-noData{font-size:18px;font-weight:bold}.nv-brush .extent{fill-opacity:.125;shape-rendering:crispEdges}.nv-brush .resize path{fill:#eee;stroke:#666}.nvd3 .nv-legend .nv-series{cursor:pointer}.nvd3 .nv-legend .nv-disabled circle{fill-opacity:0}.nvd3 .nv-brush .extent{fill-opacity:0 !important}.nvd3 .nv-brushBackground rect{stroke:#000;stroke-width:.4;fill:#fff;fill-opacity:.7}@media print{.nvd3 text{stroke-width:0;fill-opacity:1}}.nvd3.nv-ohlcBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive{stroke:#2ca02c}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative{stroke:#d62728}.nvd3 .background path{fill:none;stroke:#EEE;stroke-opacity:.4;shape-rendering:crispEdges}.nvd3 .foreground path{fill:none;stroke-opacity:.7}.nvd3 .nv-parallelCoordinates-brush .extent{fill:#fff;fill-opacity:.6;stroke:gray;shape-rendering:crispEdges}.nvd3 .nv-parallelCoordinates .hover{fill-opacity:1;stroke-width:3px}.nvd3 .missingValuesline line{fill:none;stroke:black;stroke-width:1;stroke-opacity:1;stroke-dasharray:5,5}.nvd3.nv-pie path{stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-pie .nv-pie-title{font-size:24px;fill:rgba(19,196,249,0.59)}.nvd3.nv-pie .nv-slice text{stroke:#000;stroke-width:0}.nvd3.nv-pie path{stroke:#fff;stroke-width:1px;stroke-opacity:1}.nvd3.nv-pie path{fill-opacity:.7}.nvd3.nv-pie .hover path{fill-opacity:1}.nvd3.nv-pie .nv-label{pointer-events:none}.nvd3.nv-pie .nv-label rect{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-groups .nv-point.hover{stroke-width:20px;stroke-opacity:.5}.nvd3 .nv-scatter .nv-point.hover{fill-opacity:1}.nv-noninteractive{pointer-events:none}.nv-distx,.nv-disty{pointer-events:none}.nvd3.nv-sparkline path{fill:none}.nvd3.nv-sparklineplus g.nv-hoverValue{pointer-events:none}.nvd3.nv-sparklineplus .nv-hoverValue line{stroke:#333;stroke-width:1.5px}.nvd3.nv-sparklineplus,.nvd3.nv-sparklineplus g{pointer-events:all}.nvd3 .nv-hoverArea{fill-opacity:0;stroke-opacity:0}.nvd3.nv-sparklineplus .nv-xValue,.nvd3.nv-sparklineplus .nv-yValue{stroke-width:0;font-size:.9em;font-weight:normal}.nvd3.nv-sparklineplus .nv-yValue{stroke:#f66}.nvd3.nv-sparklineplus .nv-maxValue{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-sparklineplus .nv-minValue{stroke:#d62728;fill:#d62728}.nvd3.nv-sparklineplus .nv-currentValue{font-weight:bold;font-size:1.1em}.nvd3.nv-stackedarea path.nv-area{fill-opacity:.7;stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-stackedarea path.nv-area.hover{fill-opacity:.9}.nvd3.nv-stackedarea .nv-groups .nv-point{stroke-opacity:0;fill-opacity:0}.nvtooltip{position:absolute;background-color:rgba(255,255,255,1.0);color:rgba(0,0,0,1.0);padding:1px;border:1px solid rgba(0,0,0,.2);z-index:10000;display:block;font-family:Arial,sans-serif;font-size:13px;text-align:left;pointer-events:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.nvtooltip{background:rgba(255,255,255,0.8);border:1px solid rgba(0,0,0,0.5);border-radius:4px}.nvtooltip.with-transitions,.with-transitions .nvtooltip{transition:opacity 50ms linear;transition-delay:200ms}.nvtooltip.x-nvtooltip,.nvtooltip.y-nvtooltip{padding:8px}.nvtooltip h3{margin:0;padding:4px 14px;line-height:18px;font-weight:normal;background-color:rgba(247,247,247,0.75);color:rgba(0,0,0,1.0);text-align:center;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.nvtooltip p{margin:0;padding:5px 14px;text-align:center}.nvtooltip span{display:inline-block;margin:2px 0}.nvtooltip table{margin:6px;border-spacing:0}.nvtooltip table td{padding:2px 9px 2px 0;vertical-align:middle}.nvtooltip table td.key{font-weight:normal}.nvtooltip table td.key.total{font-weight:bold}.nvtooltip table td.value{text-align:right;font-weight:bold}.nvtooltip table td.percent{color:darkgray}.nvtooltip table tr.highlight td{padding:1px 9px 1px 0;border-bottom-style:solid;border-bottom-width:1px;border-top-style:solid;border-top-width:1px}.nvtooltip table td.legend-color-guide div{width:8px;height:8px;vertical-align:middle}.nvtooltip table td.legend-color-guide div{width:12px;height:12px;border:1px solid #999}.nvtooltip .footer{padding:3px;text-align:center}.nvtooltip-pending-removal{pointer-events:none;display:none}.nvd3 .nv-interactiveGuideLine{pointer-events:none}.nvd3 line.nv-guideline{stroke:#ccc}@font-face{font-family:'DRMP';src:url('../../fonts/DRMP.eot');src:url('../../fonts/DRMP.eot?#iefix') format('embedded-opentype'),url('../../fonts/DRMP.woff') format('woff'),url('../../fonts/DRMP.ttf') format('truetype'),url('../../fonts/DRMP.svg#DRMP') format('svg');font-weight:normal;font-style:normal}.icon-activity,.icon-alert,.icon-assessment,.icon-event,.icon-incident,.icon-map,.icon-news,.icon-plan,.icon-project,.icon-report,.icon-training_material{font-family:'DRMP';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased}.icon-activity5:before,.icon-activity:before{content:"\5b"}.icon-alert:before{content:"\70"}.icon-assessment:before{content:"\6f"}.icon-event:before{content:"\69"}.icon-incident:before{content:"\75"}.icon-map:before{content:"\79"}.icon-news:before{content:"\71"}.icon-plan:before{content:"\74"}.icon-project:before{content:"\72"}.icon-report:before{content:"\65"}.icon-training_material:before{content:"\77"}.latest-updates,.list_formats{margin-top:0.5rem}.latest-updates .action-btn.s3_modal{float:right;font-weight:normal}body.rtl .latest-updates .action-btn.s3_modal{float:left}.side-filter{margin-top:10px}.side-filter .form-row{margin-left:0.375rem;margin-right:0.375rem;padding:0}.side-filter input[type="text"]{width:100% !important}.dl-header{font-size:0.825rem}.dl-exports{margin:0}.card-holder-home .dl-1-cols{width:100%}.card-holder-home .dl-item{padding:0;font-size:0.8rem;margin-bottom:0.5rem;box-shadow:0 1px 1px #aaaaa7}.card-holder-home .dl-row.even,.card-holder-home .dl-row.odd,.card-holder-home .dl-row.even .dl-item,.card-holder-home .dl-row.odd .dl-item{background-color:white}.card-header{background:linear-gradient(to bottom,rgba(255,255,255,1) 0%,rgba(246,246,246,1) 47%,rgba(237,237,237,1) 100%) repeat scroll 0 0 rgba(0,0,0,0);font-size:0.8rem;padding:0 0.175rem 0 0.325rem;border-bottom:1px solid #bdbdbb}.card-header span{padding:0 5px 0 5px;border-right:1px solid #7f7f7f}.card-header .edit-bar a{color:#7f7f7f;text-decoration:none;padding-left:0.175rem}.card-header .location-title{font-weight:bold}.card-header .date-title{color:#7f7f7f}.card-footer{margin-top:0.2rem;padding:0}.card-footer a.action-btn:first-child,.card-footer a.delete-btn:first-child{margin-left:0}.card_1_line,.card_manylines{color:#666;font-size:0.7rem;padding:0.05rem}.card_1_line{height:auto;margin-bottom:0;text-overflow:ellipsis;overflow:hidden}.card_1_line i{margin-right:5px}.dl-item .pull-right{float:right}body.rtl .dl-item .pull-right{float:left}.dl-item .pull-left{float:left;margin-right:0.8rem}body.rtl .dl-item .pull-left{float:right;margin-left:0.8rem}body.rtl .fright{float:left !important}.dl-item .media{font-size:0.8rem;padding:0.375rem}.dl-item .card-subtitle{font-weight:bold;font-size:0.9rem}.dl-item .date-title,.dl-item .card-person{font-size:0.7rem}.dl-inline-data{margin-top:0.5rem}.dl-inline-label,.dl-inline-value{color:#999;font-size:0.7rem;display:inline-block}.dl-inline-label{font-weight:normal;padding-right:0.2rem}.dl-inline-label::after{content:":"}.dl-inline-value{font-weight:bold;padding-right:0.8rem}.dl-item ul.s3-tags{font-size:0.8rem;margin:0 0.375rem !important;list-style:none}.dl-item ul.s3-tags li.tagit-new{padding:0}#footer button.btn,.pr-contacts-editable button,.action-btn,.delete-btn-ajax,.delete-btn,.selected-action{display:inline-block;margin:0.15rem;padding:0.3rem 0.5rem;border:0;border-radius:0;line-height:1;font-size:0.6875rem;text-decoration:none !important;white-space:nowrap;cursor:pointer;vertical-align:middle}.action-btn[disabled],.action-btn[disabled]:hover,.action-btn[disabled]:focus,.delete-btn-ajax[disabled],.delete-btn-ajax[disabled]:hover,.delete-btn-ajax[disabled]:focus,.delete-btn[disabled],.delete-btn[disabled]:hover,.delete-btn[disabled]:focus,.selected-action[disabled],.selected-action[disabled]:hover,.selected-action[disabled]:focus{color:#fefefe;background-color:rgba(192,192,192,0.25)}.action-btn,.selected-action{background-color:#000548;color:#fefefe !important}.action-btn:hover,.action-btn:focus,.selected-action:hover,.selected-action:focus{background-color:#6084bf;color:#fefefe !important}.delete-btn-ajax,.delete-btn{background-color:#D92C20;color:#fefefe !important}.delete-btn-ajax:hover,.delete-btn-ajax:focus,.delete-btn:hover,.delete-btn:focus{background-color:#c3281d !important;color:#fefefe !important}.dataTable .action-btn,.dataTable .selected-action{color:#fefefe}.dataTable .delete-btn,.dataTable .delete-btn-ajax{color:#fefefe}.dataTable td.actions{white-space:nowrap}.action-lnk{font-size:85%;cursor:pointer;margin-left:0.6rem}.action-lnk:first-child{margin-left:0}[dir=rtl] .action-lnk{margin-left:0;margin-right:0.6rem}[dir=rtl] .action-lnk:first-child{margin-right:0}.button.primary:hover{background-color:#6084bf}.cancel-form-btn,.reset-form-btn{display:inline-block;padding:0.875rem 1.75rem 0.9375rem 1.75rem;line-height:1;vertical-align:middle;margin-bottom:0.3rem;border:1px solid transparent}.cancel-form-btn:hover,.reset-form-btn:hover{background-color:#fefefe;border-color:#000548}.map_home .gis_fullscreen_map-btn{font-weight:normal;font-size:0.8rem;padding:0.2rem}button.toggle-text{color:#fefefe;background-color:#000548;font-size:0.7rem;margin:0 0 0 0.7rem;line-height:1.0;padding:0.2rem 0.3rem}[dir=rtl] button.toggle-text{margin:0 0.7rem 0 0}.pr-contacts-editable button{background-color:#000548;color:#fefefe !important;margin:2px}#footer button.btn{color:#fefefe;background:#dddddd}#footer button.btn:hover{color:#fefefe;background:#a0a0a0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.req_status_none{color:red;font-weight:bold}.req_status_partial{color:darkorange;font-weight:bold}.req_status_complete{color:green;font-weight:bold}.hours-formatted{cursor:pointer}.avatar{background:none repeat scroll 0 0 #fff;border-bottom:1px solid #d7d7d7;border-left:1px solid #f2f2f2;border-right:1px solid #f2f2f2;float:left;height:55px;padding:4px;width:55px}[dir=rtl] .avatar{float:right}.text-body{white-space:pre-wrap}.s3-truncate-more,.s3-truncate-less{font-style:italic}.s3-truncate-more:before,.s3-truncate-less:before{font-style:italic;content:"..."}.controls .bool{margin-left:0.5rem}[dir=rtl] .controls .bool{margin-left:0;margin-right:0.5rem}.bool i{margin-right:0.2rem}[dir=rtl] .bool i{margin-right:0;margin-left:0.2rem}.bool.bool-red{color:#d01717}.bool.bool-green{color:#018801}.bool.bool-blue{color:#1754b3}.bool.bool-grey{color:#7f7f7f}.prio{padding:0 0.4rem;border:1px solid #333;font-size:0.8rem;font-weight:normal;text-align:center;white-space:pre}.prio-red{color:#E0E0E0;background-color:#d10000}.prio-amber{background-color:#ffaa00}.prio-lightgreen{background-color:#a0d7a0}.prio-green{color:#E0E0E0;background-color:#006100}.prio-blue{color:white;background-color:#10427b}.prio-lightblue{background-color:#b7ddff}.prio-grey{background-color:silver}.prio-black{color:#E0E0E0;background-color:#1f1f1f}.wh-schedule{list-style:none;white-space:pre;margin:0;font-size:0.7rem}.wh-schedule .wh-dayname{width:1.5rem;display:inline-block}.wh-schedule .wh-dayname::after{content:":"}.showall{display:none;position:absolute;border-style:solid;background-color:#ffc;padding:5px;margin:0 20px 0 -50px}.newsletter-text{white-space:pre-line;background:#fcfcfc;padding:0.7rem;border:1px solid #ccc;box-shadow:2px 2px 4px #ddd;width:48rem;max-width:100%;min-height:8rem;font-size:0.85rem}.file-repr i.fa{font-size:1.1rem}.file-repr .file-size{padding:0 0.4rem;font-size:0.7rem}.img-preview{max-width:120px;max-height:80px}.contact-repr{background-color:#FFF0C1;border:1px solid #E0E0E0;padding:0.25rem 0.5rem}.contact-repr .contact-name{display:block;font-weight:bold;margin-bottom:0.2rem}.contact-repr .contact-info{white-space:nowrap;font-size:0.8rem}.contact-repr .contact-info .fa{padding-right:0.4rem}.workflow-options{white-space:pre}.workflow-options.workflow-grey{color:#555}.workflow-options.workflow-red{color:#c42626}.workflow-options.workflow-amber{color:#ec8d27}.workflow-options.workflow-green{color:green}.workflow-options.workflow-advice{border:1px solid #c42626;background-color:#ffdede;padding:0.3rem 0.7rem}.workflow-options .fa{margin-right:0.2rem}[dir=rtl] .workflow-options .fa{margin-right:0;margin-left:0.2rem}.controls .workflow-options{margin-left:0.5rem}[dir=rtl] .controls .workflow-options{margin-left:0;margin-right:0.5rem}input[type="text"],input[type="password"],input[type="date"],input[type="datetime"],input[type="datetime-local"],input[type="month"],input[type="week"],input[type="email"],input[type="number"],input[type="search"],input[type="tel"],input[type="time"],input[type="url"],select,textarea{max-width:100%;display:inline-block;height:1.75rem;width:auto;margin:0;padding:0.25rem;font-weight:normal}input[type="text"]:focus,input[type="password"]:focus,input[type="date"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="month"]:focus,input[type="week"]:focus,input[type="email"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="time"]:focus,input[type="url"]:focus,select:focus,textarea:focus{background-color:#fffbe0}input[type=file]{width:auto;cursor:pointer}input[type=file]::file-selector-button{background-color:#ccc;color:#333;border:0;border-radius:0;padding:5px 10px}input.datetimepicker,input.date-filter-input,input.range-filter-input{max-width:8rem}form.jeditable-input input{max-width:25rem !important}select{font-size:0.825rem}[dir=ltr] select{padding:0 1.25rem 0 0.25rem}[dir=rtl] select{padding:0 0.25rem 0 1.25rem}textarea{resize:both;vertical-align:top;font-size:0.8rem}textarea.comments{height:50px}textarea.richtext{height:100px}select[disabled='disabled'],input[disabled='disabled']{background:#eee;color:#333;cursor:default}.ui-dialog{padding:0;width:auto}.ui-dialog:not(.qrinput-dialog){width:750px !important;max-width:100%}.ui-dialog .ui-dialog-content{padding:0 !important}[dir=ltr] label.ui-corner-all span{left:10px}[dir=rtl] label.ui-corner-all span{right:10px}.ui-selectmenu-menu .ui-menu.customicons{height:400px}.ui-selectmenu-menu .ui-menu.customicons .ui-menu-item{padding:1em 0 1em 4em}.ui-selectmenu-menu .ui-menu.customicons .ui-menu-item .ui-icon{background-repeat:no-repeat !important;background-position:left top;top:0.1em}[dir=rtl] .ui-selectmenu-menu .ui-menu.customicons .ui-menu-item{padding:1em 4em 1em 0}[dir=rtl] .ui-selectmenu-menu .ui-menu.customicons .ui-menu-item .ui-icon{background-position:right top}.ui-widget-header{background:none;border:1px solid #ADA6A0}.ui-widget-header.ui-slider-range{background:#cccccc}.ui-widget-header a{color:#222222 !important;border-color:#C7C7C7;margin-bottom:0px;font-weight:bold;text-decoration:none !important;font-size:0.85rem}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border-color:#ADA6A0}.ui-widget-content .ui-state-active.ui-slider-handle{background:#007fff;border:1px solid #003eff}.ui-multiselect-header span.ui-icon{margin-top:1px}[dir=rtl] .ui-multiselect-header .ui-multiselect-filter{direction:rtl;float:right;margin-right:3px;margin-left:10px}[dir=rtl] .ui-multiselect-header ul li{float:right;padding:0 3px 0 10px}[dir=rtl] .ui-multiselect-header li.ui-multiselect-close{float:left;text-align:left;padding-left:0}.ui-multiselect-checkboxes li label input{margin-left:0.2rem;margin-right:0.3rem}button.ui-multiselect{min-height:1.75rem;background-color:#FAFAFA}button.ui-multiselect:focus,button.ui-multiselect:focus:hover,button.ui-multiselect.ui-state-active{color:#222222;background-color:#fffbe0}button.ui-multiselect:hover{color:#222222;background-color:#F8F8F8}.filter-form button.ui-multiselect,.report-options button.ui-multiselect{max-width:60%}.ui-widget{font-family:Tahoma,Arial,"Helvetica Neue",Helvetica,Roboto,sans-serif}.s3-password-widget{display:inline-block}.s3-unmask{margin-left:10px;cursor:pointer}.s3-twitter-container{width:350px;height:130px}.controls .checkboxes-widget-s3{display:inline-flex}.action-bar{color:#8a8989;font-size:14px;position:relative;top:4px}.action-bar.fleft{margin-right:8px}.action-bar a:hover,.action-bar a:visited:hover{color:#ffa500;text-decoration:none}.s3-hierarchy-tree.jstree,.s3-hierarchy-header{border:1px solid #ccc;padding:2px 3px 4px 3px;background:white}.jstree-contextmenu{z-index:9999}.s3-hierarchy-wrapper{z-index:9998}.s3-hierarchy-header{font-size:0.8rem;display:none}.s3-hierarchy-action-node,.s3-hierarchy-none{font-style:italic}.form-container form .translation_module_table td{padding:0.3rem}ul.s3-inline-link{font-size:inherit}option.missing{background-color:yellow}.geocode_fail,.geocode_success{margin:0.2rem 0.7rem}.geocode_success{color:#0a0}.geocode_fail{color:#f00}.dms-label{padding:4px;font-weight:bold}.dms-input.invalidinput{border:solid thin red}ul.x-tab-strip,ul.x-tree-node-ct,ul.x-tree-root-ct{list-style:none outside none}.x-toolbar table{border-collapse:separate;width:auto}.x-toolbar table tbody,.x-toolbar table tr{background:none}.calendar-widget-container{white-space:nowrap}input.date.hasDatepicker{display:inline-block}.ui-datepicker-trigger{background-color:transparent;background-image:url(../../img/calendar.gif);background-repeat:no-repeat;height:15px;width:16px;padding:0;margin:0;margin-left:5px;border:0;vertical-align:middle}.form-container form .ui-datepicker-trigger{margin-left:5px}[dir=rtl] .ui-datepicker-trigger,[dir=rtl] .form-container form .ui-datepicker-trigger{margin-left:0;margin-right:5px}.ui-datepicker.ui-widget{z-index:1000 !important}.ui-datepicker.ui-widget dl dd,.ui-datepicker.ui-widget dl dt{font-size:0.8rem}.ui-datepicker.ui-widget dl dt{margin-bottom:0}.btn.date-clear-btn{font-size:0.65rem;padding:0.2rem 0.4rem;margin:0 0.25rem}.postfix.calendar-clear-btn{cursor:pointer}.postfix.calendar-clear-btn .fa{color:#B0B0B0}.range-filter,.date-filter{display:inline-block}.range-filter-label label{font-size:1.0em}.range-filter-widget button.date-clear-btn{font-size:0.85em;padding:0.325em;margin-top:0.5em}.s3-groupedopts-widget table{margin-left:0;margin-bottom:0.5rem}.s3-groupedopts-widget label{display:inline;margin-left:5px;font-weight:normal}.s3-groupedopts-widget label .optlabel{vertical-align:middle}.form-container form fieldset .s3-groupedopts-widget label{white-space:nowrap;text-align:left}.s3-groupedopts-widget label[title] .optlabel{border-bottom:dotted 1px #ccc}.s3-groupedopts-widget .optLabel{display:inline-block}.filter-form .s3-groupedopts-widget,.report-options .s3-groupedopts-widget{display:inline-block}table.s3-groupedopts-widget{margin-bottom:0}table.s3-groupedopts-widget td{white-space:nowrap}table.s3-groupedopts-widget td input.s3-groupedopts-option{vertical-align:middle;margin:0 0.3rem 0 0}table.s3-groupedopts-widget td label{white-space:pre-wrap;margin:0 0.5rem}div.s3-groupedopts-widget .s3-groupedopts-item{display:inline-block;padding-top:0.15rem}div.s3-groupedopts-widget input.s3-groupedopts-option{vertical-align:text-top;margin:0 0.3rem 0 0}.s3-groupedopts-label{margin:10px 0 0 7px;margin-bottom:0.3rem;padding-left:20px;min-height:16px;min-width:20px;background:url(../../img/icon_blue_plus15px.png) no-repeat;cursor:pointer;font-size:0.7rem}.s3-groupedopts-label.expanded{background:url(../../img/icon_blue_minus15px.png) no-repeat}.imagecrop-drag{font-weight:bold;text-align:center;padding:3em 0;margin:1em 0;color:#555;border:2px dashed #555;border-radius:7px;cursor:default}.imagecrop-drag.hover{border-style:solid;background-color:#F7F8F9}.imagecrop-btn{display:none;cursor:pointer}.imagecrop-btn{font-size:1em;margin-left:0.2em;padding:0.3em}.widget-advice{max-width:42rem;padding:0.3rem 0.3rem 0.5rem;font-size:0.8rem;font-style:italic;white-space:pre-line;margin:0.1rem 0}.pr-contacts-wrapper h3{margin-top:0.5rem;padding-bottom:0 !important}.pr-contacts-editable input,.pr-contacts-editable select{min-height:1.2rem;margin:2px 0}.pr-contact-actions{margin-bottom:0.5rem}.pr-contact,.pr-emergency-contact{padding:0.5rem}.pr-contact-priority,.pr-contact-details{display:inline-block}.pr-contact-subtitle{font-size:0.8rem;font-style:italic}.pr-contact-priority{border:thin solid #2ba6cb;border-radius:2px;color:#2ba6cb;font-size:0.8rem;line-height:1rem;margin:0.25rem 1rem 0 0;padding:0 0.25rem 0.125rem;vertical-align:top}.pr-contact-priority input[type=submit]{color:black;line-height:1.2rem;font-size:0.8rem}[dir=rtl] .pr-contact-priority{margin:0.25rem 0 1rem 0}.box_top,.box_top_inner{border-top:#bbb 1px solid}.box_top label,.box_top_inner label{display:inline-block}.box_top{padding-top:1rem}.box_top.form-row.row{margin:0.7rem 0 0 0}.box_top.form-row.row .columns{padding:0}.box_top_inner{padding-top:0.2rem;padding-bottom:0.5rem}.box_bottom{border-bottom:1px solid #bbb;padding-bottom:1rem}.add_person_edit_bar{cursor:pointer;display:inline-block;padding-left:1.2rem;margin-top:1rem}.add_person_edit_bar a{text-decoration:none}[dir=rtl] .add_person_edit_bar{padding-left:0;padding-right:1.2rem}.card > .fleft{margin-right:10px}[dir=rtl] .card > .fleft{margin-right:0;margin-left:10px}.media-object{display:block}.ui-menu-item .pe-label{font-size:0.7rem;color:#A0A0A0;vertical-align:super}.presence-registration .controls{width:100%}.presence-registration .status-label{font-size:0.9rem}.presence-registration .status-message{font-size:0.9rem;font-weight:bold}.presence-registration .person-details{font-size:1rem}.presence-registration .site-presence-in i.fa,.presence-registration .site-presence-out i.fa{margin-right:0.2rem}.presence-registration .site-presence-in{color:#080}.presence-registration .site-presence-out{color:#c00}.qrinput{display:inline-block}.qrinput .qrscan-btn{vertical-align:top;padding:0.4rem 0.8rem;text-align:center;margin:0 0.5rem}.qrinput .qrscan-btn .fa{font-size:16px;margin:0 0.2rem;vertical-align:middle}.qrinput .postfix.clear-btn{cursor:pointer;display:inline-block;width:1.2rem}.qrinput .postfix.clear-btn .fa{color:#B0B0B0}.qrinput input{max-width:14rem}.qrinput-success,.qrinput-invalid{text-align:center;font-size:4rem;padding:1rem;color:darkgreen}.qrinput-invalid{color:#D92C20}form.anonymize-form,.anonymize-success{padding:1rem}.anonymize-select,.anonymize-confirm{margin-left:1rem}[dir=rtl] .anonymize-select,[dir=rtl].anonymize-confirm{margin-left:0;margin-right:1rem}.anonymize-buttons{margin-top:1rem}.anonymize-buttons .button{margin-bottom:0.3rem}.anonymize-btn{background-color:#D92C20}.anonymize-btn:hover{background-color:#c3281d}.s3-anonymize{display:inline-block;margin:0.2rem}.consent-widget{border:1px solid #E0E0E0;padding:0.5rem 1rem}.consent-widget .consent-option{margin-top:0.3rem}.consent-widget .consent-explanation{white-space:pre-wrap;padding:0.3rem 1.7rem;font-size:0.8rem;font-style:italic;color:#7F7F7F}.consent-widget .consent-title{font-weight:bold}.consent-widget .consent-checkbox{margin-right:0.5rem !important}.consent-widget .req{padding:0 0.2rem}.consent-widget .req_key{font-size:0.7rem;font-weight:normal;font-style:italic;margin:0 0.5rem}.wh-raster{margin-top:0.3rem}.wh-raster tr{border-bottom:1px solid #ccc}.wh-raster td{border-left:1px solid #ccc}.wh-raster td.wh-tick{border-left-width:2px}.wh-raster thead td{min-width:1.8rem;padding-right:0.6rem !important;font-size:0.6rem;font-weight:normal}.wh-raster tbody td.wh-hour{text-align:center;font-weight:normal}.wh-raster tbody td.wh-hour.wh-on{color:darkgreen}.wh-raster tbody td.wh-day{text-align:left;font-size:0.7rem;padding:0.2rem 0.4rem}.wh-raster .wh-hour{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.wh-raster .wh-hour.wh-on{background-color:lightgreen}.wh-raster .wh-hour.wh-off{background-color:transparent}#comments{margin:0;padding:0;list-style:none outside none}#comments ul,#comments ol{padding-left:20px;list-style:none outside none}#comments li{padding:10px 0 0}#comments li a.jcollapsible:hover{background:none}#comments .comment-box{overflow:hidden;padding:15px 0;background:none repeat scroll 0 0 #f5f5f5;display:block;overflow:hidden;padding:10px}#comments .comment-box .avatar{display:inline-block;vertical-align:top}#comments .comment-text{padding:0 0 0 0.5rem;display:inline-block}#comments .comment-text ul{list-style:disc outside none}#comments .comment-text ol{list-style:decimal outside none}#comments .comment-text li{padding:0}#comments .comment-text div{white-space:pre-line}#comments .comment-text .comment-header{font-size:0.8rem}#comments .comment-text .comment-body p,#comments .comment-text .comment-body li{font-size:0.9rem}#comments .fright{float:right;text-align:right}#comments .comment-date{font-size:0.7rem;margin-bottom:0.5rem}#comments .comment-footer{clear:left}#comments em{font-style:italic}#comments strong{font-weight:bold}[dir=rtl] #comments ul,[dir=rtl] #comments ol{padding-left:0;padding-right:20px}[dir=rtl] #comments .comment-text{padding:0 0.5rem 0 0}[dir=rtl] #comments .fright{float:left;text-align:left}[dir=rtl] #comments .comment-footer{clear:right}#comment-form{width:40rem;max-width:100%;border:1px #9c9c9c dashed;padding:0.5rem;margin-top:0.5rem}.ajax_more{float:right;margin:0 2px 2px 0;width:16px;height:16px}[dir=rtl] .ajax_more{float:left;margin:0 0 2px 2px}.ajax_more.collapsed{background:url(../../img/icon_blue_plus15px.png) no-repeat left top}.ajax_more.expanded{background:url(../../img/icon_blue_minus15px.png) no-repeat left top}.rfilter{float:left;padding:10px 20px 10px 10px}html,body{height:100%}.hide{display:none !important}.main-title .org-logo{vertical-align:top;display:inline-block;padding:0.4rem 0.8rem 0.3rem 0}.main-title .system-title{display:inline-block}.main-title .system-title .system-name{color:#333333;font-size:1.125rem}.main-title .system-title .org-name{color:#999999;line-height:1rem}.main-title .system-title h5:first-child,.main-title .system-title h6:first-child{margin:0.3rem 0 0.125rem}.main-title .personal-menu-area{text-align:right}.main-title .language-selector{float:right;display:block;margin-top:0.625rem;margin-bottom:0.125rem}[dir=rtl] .main-title .org-logo{padding:0.4rem 0 0.3rem 0.8rem}[dir=rtl] .main-title .personal-menu-area{text-align:left}[dir=rtl] .main-title .language-selector{float:left}.alert-success{border:1px solid #070;background:url(../../img/dialog-confirmation.png) #e5ffe5 no-repeat 0.8rem 50%;color:#070}.alert-success p em{color:#070}.alert-error{border:1px solid #c60f13;background:url(../../img/dialog-error.png) #ffe5e5 no-repeat 0.8rem 50%;color:#c60f13}.alert-error p em{color:#c60f13}.alert-info{border:1px solid #037aa8;background:url(../../img/dialog-information.png) #ecfdff no-repeat 0.8rem 50%;color:#037aa8}.alert-info p em{color:#037aa8}.alert-warning{border:1px solid #d0440d;background:url(../../img/dialog-warning.png) #ffc no-repeat 0.8rem 50%;color:#d0440d}.alert-warning p em{color:#d0440d}.alert-success,.alert-error,.alert-info,.alert-warning{position:relative;z-index:98;margin:10px auto 0.5rem auto;box-shadow:0 1px 1px #aaaaa7;padding:8px 35px 8px 14px;width:auto;font-weight:bold;text-align:center;cursor:pointer}.error,.expired,.req,.req_key{color:#D92C20;font-weight:bold}.req_key{font-size:0.75rem}.mapError{border:solid 1px #D92C20}.username{color:#666666;padding:0.5rem 0;padding-right:0.5rem;font-size:0.7rem}.username i.icon,.username i.fa{padding-left:0.2rem;padding-right:0}[dir=rtl] .username{padding-left:0.5rem;padding-right:0}[dir=rtl] .username i.icon,[dir=rtl] .username i.fa{padding-left:0;padding-right:0.2rem}#content a.help:link{color:#fff;text-decoration:none;margin-right:10px}#content a.help:hover{background-color:#336699;text-decoration:underline}#content a.help:visited{font-weight:normal;color:#666}#content h1,#content h2,#content h3,#content h4,#content h5,#content h6{margin-bottom:0.25rem}#content h1,#content h2{font-size:1.3em;font-weight:bolder;background-color:#cacfff;padding:0.35rem}#content h2{margin-top:10px;font-size:0.9rem;padding-left:0.5rem}#content h3{font-size:1.0em;padding-bottom:5px}#content h6{font-size:1rem;line-height:1.2;margin-top:0}#map{width:100%;overflow:auto}#component{float:none}.map_home{margin:0;margin-top:0.5rem}#datalist-filter-form,#datatable-filter-form,#summary-filter-form,#summary-sections,.thumbnail{border:1px solid #E0E0E0}#summary-filter-form{margin:0}#table-container{display:block;margin-bottom:1.5rem;width:100%}#table-container .empty{margin-top:30px;margin-left:10px}body.popup{background-color:#fbfbfb;min-width:auto;height:auto}#popup{max-width:750px;width:100%;display:none}.loading{background:url(../../img/ajax-loader.gif) center no-repeat !important}#popup .form-container{overflow:inherit}#popup .control-group{padding-right:20px}#list-btn-add,.list-btn-add{float:right;margin-right:0.35rem;margin-bottom:10px}.widget-container #list-btn-add,.widget-container.list-btn-add{margin-bottom:0;position:relative;top:1.0rem}[dir=rtl] #list-btn-add,[dir=rtl].list-btn-add{float:left;margin-right:0;margin-left:0.35rem}#list-add{display:none}#close-iframe-map{padding:7px;margin-top:5px}#footer{background:transparent;padding-top:20px;border-top:1px solid #F0F0F0;margin:20px auto 1rem;text-align:center;width:100%}main{min-height:90%}.sub-nav.about-menu{color:#999;text-align:left;margin-left:0;margin-right:0}.sub-nav.about-menu a{color:#999}body.rtl .sub-nav.about-menu{text-align:right}#poweredby{color:#999;font-size:0.625rem;line-height:1.0;margin-right:0.5rem;text-align:right}#poweredby a{color:#999;font-size:0.625rem;margin-left:0.2rem;text-decoration:none}#poweredby img{margin-right:5px;vertical-align:text-bottom}[dir=rtl] #poweredby{margin-right:0rem;margin-left:0.5rem;text-align:left}[dir=rtl] #poweredby a{margin-left:0;margin-right:0.2rem}[dir=rtl] #poweredby img{margin-right:0;margin-left:5px}.throbber,.layer_throbber,.s3-twitter-throbber,.map_loader,.inline-throbber{background-image:url(../../img/indicator.gif);background-repeat:no-repeat;height:32px;width:32px}.throbber{margin-bottom:-16px;padding:0 0 0 10px}.input_throbber{background-size:60% !important;height:24px;width:24px;display:inline-block;margin:0 0 -11px -24px}.s3-twitter-throbber{height:0px;margin:66px 0 0 42px;padding:20px;width:0px}.main-menu{font-size:0.8125rem}.main-menu .title-bar{background:#000548;margin:0.5rem 0 0}.main-menu .title-bar .title-bar-title{margin:0 0.5rem}.main-menu .top-bar{min-height:2.2rem}.main-menu .top-bar .dropdown.menu,.main-menu .top-bar .drilldown.menu{z-index:99}.main-menu .top-bar .dropdown.menu li.is-dropdown-submenu-parent > a::after,.main-menu .top-bar .drilldown.menu li.is-dropdown-submenu-parent > a::after{border-color:rgba(150,150,150,0.5) transparent transparent}.main-menu .top-bar .dropdown.menu li.is-drilldown-submenu-parent > a::after,.main-menu .top-bar .drilldown.menu li.is-drilldown-submenu-parent > a::after{border-color:transparent transparent transparent rgba(150,150,150,0.5)}.main-menu .top-bar .dropdown.menu li .js-drilldown-back > a::before,.main-menu .top-bar .drilldown.menu li .js-drilldown-back > a::before{border-color:transparent rgba(150,150,150,0.5) transparent transparent}.main-menu .top-bar .dropdown.menu li a,.main-menu .top-bar .drilldown.menu li a{line-height:1.5;background-color:#000548;color:#fefefe}.main-menu .top-bar .dropdown.menu li a:hover,.main-menu .top-bar .drilldown.menu li a:hover{background-color:#6084bf;color:#fefefe}.main-menu .top-bar .dropdown.menu li.active > a,.main-menu .top-bar .drilldown.menu li.active > a{background-color:#eb003c;color:#000548}.main-menu .top-bar .dropdown.menu li.active > a:hover,.main-menu .top-bar .drilldown.menu li.active > a:hover{background-color:#ff606e;color:#000541}.side-bar{background:none repeat scroll 0 0 #f7f7f7;margin-top:10px;padding:0.25rem 0}.options-menu ul{margin-left:0}.options-menu ul li > a{padding-left:1.25rem}.options-menu > li{padding:0.3rem 0}.options-menu > li.active-section{background-color:#f2f2f2}.options-menu li{font-size:0.875rem;font-weight:normal;margin:0}.options-menu li a{color:#666;padding:0.325rem 0.5rem}.options-menu li a:hover{color:#000a8a;background-color:rgba(0,0,0,0.05)}.options-menu li.heading > a{font-weight:bold;text-transform:uppercase}.options-menu li.heading:not(:first-child){border-top:1px solid #eaeaea}.options-menu li.is-active > a:first-child:not(.button){font-weight:bold;color:#444;background-color:#e0e1e2}.options-menu li.is-active > a:first-child:not(.button):hover{color:#000a8a;background-color:#e2e3e3}.options-menu .num-pending{margin:0 0.4rem;font-weight:normal;font-size:0.7rem;border:1px solid #960;padding:0 0.2rem;background-color:#ffaa00;border-radius:10px;color:#712e05}#menu-options-toggle{margin-top:0.5rem;width:100%}.sub-nav{line-height:normal}.sub-nav li{font-size:0.75rem}.sub-nav li:before{color:#999;content:"|";margin:0 0.375rem}.sub-nav li:first-child:before{content:"";margin:0}.sub-nav li a{color:#999;text-decoration:none;display:inline-block;padding:0 0.375rem}.sub-nav li a:hover{color:#666}.sub-nav.personal-menu{float:right;clear:right;padding-top:0;margin-bottom:0.125rem}[dir=rtl] .sub-nav.personal-menu{float:left;clear:left}.sub-nav.personal-menu li a{padding:0 0.375rem}#rheader{margin-bottom:0.25rem}#rheader .rheader-title{color:#333;font-weight:bold;font-size:1.1rem;line-height:1.0}#rheader .rheader-content{display:inline-block;max-width:90%;padding:0.5rem}#rheader table{display:inline;margin-bottom:10px;border:none;background:none}#rheader table tbody,#rheader table tr{border:none;background:none}#rheader table th,#rheader table td{font-size:0.85rem;text-align:left;padding:0.1rem 0.5rem 0.05rem 0;white-space:pre-line}[dir=rtl] #rheader table th,[dir=rtl] #rheader table td{text-align:right;padding:0.1rem 0 0.05rem 0.5rem}#rheader table th{color:#7F7F7F;line-height:1.1rem;font-weight:normal}#rheader table td{padding-right:1.25rem;line-height:1.1rem;font-weight:bold}#rheader table td a{font-weight:normal}[dir=rtl] #rheader table td{padding-right:0;padding-left:1.25rem}#rheader .rheader-qrcode{display:inline-block;border:1px solid #eee;margin-right:0.5rem;vertical-align:top}#rheader .rheader-avatar{clear:none;display:inline-block;float:none;padding:0;vertical-align:top;margin-right:0.8rem}[dir=rtl] #rheader .rheader-avatar{margin-right:0;margin-left:0.8rem}#rheader div.tabs{display:block;clear:none;height:32px;width:100%;margin:5px 0 !important;padding:4px 4px 0 0;text-align:left;border-bottom:1px solid #000548}#rheader div.tabs span{float:left;position:relative;font-size:13px;font-weight:normal;margin:3px 0.2rem 0 0;padding:2px 0.4rem 1px;border-color:#000548;border-width:1px;border-style:solid;border-radius:3px 3px 0 0;background-color:#000548}#rheader div.tabs span:hover{background-color:#6084bf;border-color:#6084bf}#rheader div.tabs span a{line-height:16px;color:#ffffff;text-decoration:none;background:transparent}#rheader div.tabs span a:hover{color:#ffffff;background:transparent}#rheader div.tabs span.tab_here{font-size:14px;font-weight:bold;margin-top:0;margin-right:0.4rem;padding:3px 0.4rem 0px;background:#fefefe;border-color:#000548;border-style:solid;border-width:2px 2px 2px 3px;border-bottom-style:solid;border-bottom-color:#fefefe}#rheader div.tabs span.tab_here:not(:first-child){margin-left:0.2rem}#rheader div.tabs span.tab_here:hover{background-color:#f1edec}#rheader div.tabs span.tab_here a{color:#666666 !important}#rheader div.tabs span.tab_here a:hover{color:#666666 !important}[dir=rtl] #rheader div.tabs{padding-left:4px;padding-right:0;text-align:right}[dir=rtl] #rheader div.tabs span{float:right;margin-right:0;margin-left:0.2rem}[dir=rtl] #rheader div.tabs span.tab_here{margin-left:0.4rem}[dir=rtl] #rheader div.tabs span.tab_here:not(:first-child){margin-right:0.2rem}form{font-size:0.8rem}form .form-row.row{padding:0 0.3rem;margin-top:0.5rem}form .form-row .button{margin-bottom:0.3rem}[dir=ltr] form .form-row .button{margin-right:0.5rem}[dir=ltr] form .form-row .button i.fa{margin-right:0.3rem}[dir=rtl] form .form-row .button{margin-left:0.5rem}[dir=rtl] form .form-row .button i.fa{margin-left:0.3rem}form .form-row > .columns:first-child{overflow:hidden}form .form-row > .columns > label{font-weight:bold}[dir=ltr] form .form-row > a{margin-left:0.625rem}[dir=rtl] form .form-row > a{margin-right:0.625rem}form .form-row select{min-width:4rem}form .form-row .controls span.postfix{display:inline-block;padding:0 0.3rem;border:1px solid #ccc;border-left:none;text-align:center;vertical-align:top;background-color:#f2f2f2;height:1.75rem;line-height:1.5rem;font-size:0.8rem}form .form-row .controls span.postfix .fa{line-height:inherit}form .form-row .s3-hierarchy-widget,form .form-row .calendar-widget-container{display:inline-block;vertical-align:middle}form .form-row .inline-component{overflow:auto}form .jstree-anchor{font-size:0.9rem}form label{cursor:pointer;margin-bottom:0.175rem;margin-left:0.125rem}form label.inline{padding:0;margin:0 0 0.5rem}form .gis_loc_select_btn{font-size:0.8em}form .gis_loc_select_btn i{font-size:1.0em}[dir=ltr] form .gis_loc_select_btn i{margin-right:4px}[dir=rtl] form .gis_loc_select_btn i{margin-left:4px}form .error{display:block;margin-top:0;margin-bottom:0.2rem;font-size:0.75rem;font-style:italic;background:transparent;color:#c60f13}form .error [dir=ltr]{padding:0.2rem 0 0 0.2rem}form .error [dir=rtl]{padding:0.2rem 0.2rem 0 0}form .error_top .error{margin-top:1.4rem;padding:0}form .invalidinput{border:1px solid #c60f13}form .action-lnk{font-weight:normal;font-size:0.75rem;margin-bottom:0.3rem}form .inline-throbber{background-image:url(../../img/indicator.gif);background-repeat:no-repeat;background-position:center;height:16px;width:16px}[dir=ltr] form .s3_inline_add_resource_link a{margin-left:2px;padding-left:2px}[dir=rtl] form .s3_inline_add_resource_link a{margin-left:2px;padding-left:2px}form .inline-open-add{display:inline-block;margin-bottom:1.25rem}form .inline-open-add [dir=ltr]{margin-left:0}form .inline-open-add [dir=rtl]{margin-right:0}form .subheading{background-color:#FFEDCB;font-size:0.9rem;font-weight:bold;border-top:solid 1px #FFD7A3;margin:1.5rem 0 0.75rem;max-width:80%}[dir=ltr] form .subheading{border-left:solid 1px #FFD7A3;padding:0.25rem 0.25rem 0.25rem 0.75rem}[dir=rtl] form .subheading{border-right:solid 1px #FFD7A3;padding:0.25rem 0.75rem 0.25rem 0.25rem}form .subheading:first-of-type{margin-top:0}form.auth_login #submit_record__row{white-space:pre}.embeddedComponent{margin-top:0.125rem;margin-bottom:0.125rem;border:1px solid #dddddd;border-collapse:separate;border-spacing:0}.embeddedComponent td{border:none;text-align:left;padding:0.25rem 0.75rem 0.25rem 0.25rem}[dir=rtl] .embeddedComponent td{text-align:right;padding:0.25rem 0.25rem 0.25rem 0.75rem}.embeddedComponent.subform-vertical .add-row td,.embeddedComponent.subform-vertical .edit-row td{border-top:1px solid #dddddd;padding:0 0.4rem 0.4rem}.embeddedComponent.subform-vertical .add-row td.subform-action,.embeddedComponent.subform-vertical .edit-row td.subform-action{vertical-align:bottom}.embeddedComponent .label-row td{color:#b3b3b3;border-bottom:1px solid #dddddd}.embeddedComponent .label-row td:empty{padding:0}.embeddedComponent .label-row label{color:#444;margin:0}.embeddedComponent tr.inline-form input,.embeddedComponent tr.inline-form .btn.date-clear-btn,.embeddedComponent tr.inline-form .postfix.calendar-clear-btn{margin-top:0}.embeddedComponent tr.inline-form input[type="text"],.embeddedComponent tr.inline-form .s3-upload-widget{font-size:0.8rem;max-width:14rem}.embeddedComponent tr.inline-form input[type="text"].datetimepicker,.embeddedComponent tr.inline-form .s3-upload-widget.datetimepicker{width:7.5rem !important}.embeddedComponent tr.inline-form input[type="text"].datetimepicker.hide-time,.embeddedComponent tr.inline-form .s3-upload-widget.datetimepicker.hide-time{width:5rem !important}.embeddedComponent tr.inline-form input.string,.embeddedComponent tr.inline-form textarea{width:auto}.embeddedComponent tr.inline-form input.integer{max-width:10rem}.embeddedComponent tr.inline-form textarea{font-size:0.8rem}.embeddedComponent tr.inline-form.single td:only-child{padding:0}.embeddedComponent tr.inline-form.single td:only-child div.form-row{padding:0 0.2rem 0.2rem}.embeddedComponent tr.inline-form select{max-width:18rem}.embeddedComponent tr.inline-form .s3_inline_add_resource_link{padding:0.1rem}.embeddedComponent tr.inline-form .zoom img,.embeddedComponent tr.read-row .zoom img{max-height:8rem}.embeddedComponent tr.inline-form td,.embeddedComponent tr.read-row td{font-size:0.8rem;max-width:21rem;white-space:pre-line}.inline-add,.inline-dsc,.inline-cnc,.inline-edt,.inline-rdy,.inline-rmv{cursor:pointer;background-repeat:no-repeat;background-position:center;height:23px;width:23px}.inline-add{background-image:url(../../img/crud/add.png)}.inline-dsc{background-image:url(../../img/crud/cancel.png)}.inline-cnc{background-image:url(../../img/crud/cancel.png)}.inline-edt{background-image:url(../../img/crud/edit.png)}.inline-rdy{background-image:url(../../img/crud/apply.png)}.inline-rmv{background-image:url(../../img/crud/remove.png)}.form-info{height:1.2rem}.form-container,.item-container{width:auto;overflow:inherit}.form-container form,.item-container form{border:1px solid #E0E0E0;background:#fefefe;padding:0.35rem 0.7rem}.form-container form td.w2p_fl,.item-container form td.w2p_fl{font-weight:bold}.form-container form tr td,.item-container form tr td{padding:3px 0 0 3px}.form-container form tr td,.item-container form tr td{padding:0.1875rem}.form-container .controls,.item-container .controls{display:inline-block;min-height:1.7rem;padding:0 0.1rem}.form-container .controls:not(.columns),.item-container .controls:not(.columns){max-width:100%}.form-container .no-options-available,.item-container .no-options-available{color:#aaa;font-style:italic}[dir=ltr] .form-container .no-options-available,[dir=ltr].item-container .no-options-available{padding-left:0.7rem}[dir=rtl] .form-container .no-options-available,[dir=rtl].item-container .no-options-available{padding-right:0.7rem}.form-container{margin-top:0.125rem;margin-bottom:0.875rem}.form-container p{margin:0.5em 0 0 0}.form-container form p{margin:0}.form-container form p.note{font-style:italic;margin-left:18em;font-size:80%;color:#666}.form-container form input.date{width:auto}.form-container form input[type="checkbox"],.form-container form input[type="radio"]{margin:5px 5px}.form-container form fieldset{margin:0 0 10px 0;padding:10px;border:#ddd 1px solid;background-color:#fff}.form-container form legend{font-weight:bold;color:#666}.form-container form textarea{width:28rem}.form-container form .ui-multiselect{max-width:100%;display:inline-block !important;font-size:0.8rem;line-height:1.5;margin-right:0.3rem;margin-bottom:0}.form-container form:not(.filter-form):not(.auth_login):not(.auth_register):not(.rm-form) input[type="text"]:not(.integer):not(.double):not(.datetimepicker):not(.date):not(.hours):not(.dms-input){width:20rem !important}.item-container{margin:0 0 0.5rem}.item-container .controls{background:#fafafa;padding:0.3rem}#last_update,#markDuplicate{float:right;clear:right;text-align:right}[dir=rtl] #last_update,[dir=rtl]#markDuplicate{float:left;clear:left;text-align:left}.authorinfo,#last_update{font-style:italic;font-size:80%;color:#666}#markDuplicate{padding-bottom:8px;margin-bottom:0;margin-top:-0.25rem}.crud-actions{margin-bottom:0.25rem}.s3_add_resource_link{display:inline-block;margin:0.3rem 0.5rem}.inline-tooltip{vertical-align:top;margin:0.2rem 0.5rem}.tooltip,.tooltipbody,.stickytip,.ajaxtip,.htmltip{display:inline-block;position:static;text-transform:uppercase;width:auto;background:none}.tooltip:before,.tooltipbody:before,.stickytip:before,.ajaxtip:before,.htmltip:before{content:"\f29c";color:#AAA;font:normal normal normal 14px/1 FontAwesome;font-size:1.2rem;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tooltip:hover,.tooltipbody:hover,.stickytip:hover,.ajaxtip:hover,.htmltip:hover{cursor:help}.tooltip:hover:before,.tooltipbody:hover:before,.stickytip:hover:before,.ajaxtip:hover:before,.htmltip:hover:before{color:#f08a24}#filter-form{margin:0}.checkboxes-widget-s3 input,.s3-groupedopts-widget input{display:inline-block;vertical-align:middle}.s3-checkboxes-widget-filter input{vertical-align:middle}.range-filter-label{font-size:85%}.range-filter-field{display:inline-block;margin-right:0.7rem}.age-filter-widget{display:inline-block}.age-filter-label{display:inline-block;margin-right:0.5rem}.age-filter-unit{display:inline-block}.filter-form.has-active-filters{border:1px solid #e0a0a0 !important}.filter-form td{border-top:1px solid #d9d9d9}.filter-form tr:first-child > td{border-top:0}.filter-form table.s3-groupedopts-widget td{border-top:0}.filter-form .ui-multiselect.ui-widget.ui-state-default.ui-corner-all,.form-container .ui-multiselect.ui-widget.ui-state-default.ui-corner-all{display:block;min-width:225px}.filter-form .ui-multiselect.ui-widget.ui-state-default.ui-corner-all:first-of-type,.form-container .ui-multiselect.ui-widget.ui-state-default.ui-corner-all:first-of-type{clear:none}.ui-selectmenu-button,.ui-multiselect-menu{min-width:225px}select.multiselect-filter-widget{display:none}.filter-advanced{text-decoration:none;cursor:pointer}.filter-advanced-label{padding-right:4px}.s3-options-filter-anyall label{display:inline;margin-right:0.7rem;font-size:0.7rem}.filter-manager-widget{display:inline-block}.fm-load,.fm-save,.fm-delete,.fm-create,.fm-accept,.fm-cancel{display:inline-block;margin:0 0.3rem;width:16px;height:16px;cursor:pointer;vertical-align:middle}.fm-load{background:url(../../img/filter/load.png) no-repeat}.fm-save{background:url(../../img/filter/save.png) no-repeat}.fm-delete{background:url(../../img/filter/delete.png) no-repeat}.fm-create{background:url(../../img/filter/create.png) no-repeat}.fm-accept{background:url(../../img/crud/apply.png) no-repeat}.fm-cancel{background:url(../../img/crud/cancel.png) no-repeat}table{width:auto}table th,table td{text-align:left}[dir=rtl] table th,[dir=rtl] table td{text-align:right}.dataTable{width:100%;border-collapse:collapse;font-size:0.875rem}.dataTable thead th,.dataTable thead td,.dataTable tbody th,.dataTable tbody td,.dataTable tfoot th,.dataTable tfoot td{border:1px solid #cccccc;padding:0.2rem 1.5rem 0.2rem 0.5rem}[dir=rtl] .dataTable thead th,[dir=rtl] .dataTable thead td,[dir=rtl] .dataTable tbody th,[dir=rtl] .dataTable tbody td,[dir=rtl] .dataTable tfoot th,[dir=rtl] .dataTable tfoot td{padding:0.2rem 0.5rem 0.2rem 1.5rem}.dataTable thead th.dt-bulk,.dataTable thead td.dt-bulk,.dataTable tbody th.dt-bulk,.dataTable tbody td.dt-bulk,.dataTable tfoot th.dt-bulk,.dataTable tfoot td.dt-bulk{padding:0.2rem;text-align:center;vertical-align:middle;min-width:3rem}.dataTable thead th.dt-actions,.dataTable thead td.dt-actions,.dataTable tbody th.dt-actions,.dataTable tbody td.dt-actions,.dataTable tfoot th.dt-actions,.dataTable tfoot td.dt-actions{white-space:nowrap}.dataTable thead th,.dataTable tbody th,.dataTable tfoot th{text-align:center}.dataTable thead{background-color:#ffffff}.dataTable thead th{border-bottom:1px solid #cccccc}[dir=rtl] .dataTable thead th.sorting,[dir=rtl] .dataTable thead th.sorting_asc,[dir=rtl] .dataTable thead th.sorting_desc{background-position-x:left}.dataTable tbody tr.even{background-color:#ffffff}.dataTable tbody tr.even td.sorting_1{background-color:#fafafa}.dataTable tbody tr.odd{background-color:#f7f8f9}.dataTable tbody tr.odd td.sorting_1{background-color:#f0f1f2}.dataTable tbody tr.dtalert.even{background-color:#ffffa0}.dataTable tbody tr.dtalert.even td.sorting_1{background-color:#fffff0}.dataTable tbody tr.dtalert.odd{background-color:#ffffc0}.dataTable tbody tr.dtalert.odd td.sorting_1{background-color:#ffffb0}.dataTable tbody tr.dtwarning.even{background-color:#ffa6a6}.dataTable tbody tr.dtwarning.even td.sorting_1{background-color:#ff8383}.dataTable tbody tr.dtwarning.odd{background-color:#ffd9d9}.dataTable tbody tr.dtwarning.odd td.sorting_1{background-color:#ffb6b6}.dataTable tbody tr.row_selected.odd{background-color:#40fa8d}.dataTable tbody tr.row_selected.odd td.sorting_1{background-color:#20f0ad}.dataTable tbody tr.row_selected.even{background-color:#60f6ad}.dataTable tbody tr.row_selected.even td.sorting_1{background-color:#40fa8d}.dataTable tbody tr.group{background-color:#ddd;border:1px solid #aaa}.dataTable tbody tr.group.level_1{background-color:#999;color:#def}.dataTable tbody tr.group.level_1.activeRow{background-color:#1d70cf}.dataTable tbody tr.group.level_1 a{color:#def}.dataTable tbody tr.group.level_2{background-color:#ddd;color:#248}.dataTable tbody tr.group.level_2.activeRow{background-color:#528dd1}.dataTable tbody tr.group.level_2 a{color:#248}.dataTable tbody tr.group span.ui-icon{display:inline-block}.dataTable tbody tr.group .group-indent{width:10px}.dataTable tbody tr.group .group-opened,.dataTable tbody tr.group .group-closed{padding:0.2rem}.dataTable tbody tr.group .group-collapse,.dataTable tbody tr.group .group-expand{cursor:pointer;float:right}.dataTable tbody tr.dtdisable{text-shadow:#ccc 1px 1px 1px;color:#888}.dataTable tbody tr td{vertical-align:top}.dataTable tfoot th,.dataTable tfoot td{background-color:#f7f8f9;border-top:2px solid #cccccc;padding:0.5em}.dataTable .bulk-select-options input[type=checkbox]{margin-bottom:0}.dataTable.dtr-inline.collapsed tbody td:first-child::before,.dataTable.dtr-inline.collapsed tbody th:first-child::before{top:0.4rem;background-color:#000548}.dataTable.dtr-inline.collapsed tbody tr.parent td:first-child::before,.dataTable.dtr-inline.collapsed tbody tr.parent th:first-child::before{background-color:#D92C20}.dataTable table.import-item-details{display:none}.dataTables_wrapper .dataTable_table{overflow:auto;clear:both}.dataTables_wrapper .dt-variable-columns{font-size:1rem;border:1px solid #ccc;padding:0.2rem;color:#666;min-width:2.5rem;cursor:pointer}.dataTables_wrapper .dt-variable-columns:hover{border-color:#aaa;background-color:#eee}.dataTables_wrapper .dataTables_bulk,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_length{float:left;text-align:left !important;margin:0 3rem 4px 0;font-size:0.75rem;font-weight:normal;white-space:nowrap}.dataTables_wrapper .dataTables_bulk select,.dataTables_wrapper .dataTables_filter select,.dataTables_wrapper .dataTables_length select{font-size:0.75rem;text-align:center;height:auto;padding:0.2rem 1.2rem 0.2rem 0.2rem;border-radius:0;margin:0 0.2rem;min-width:3rem}.dataTables_wrapper .dataTables_bulk label,.dataTables_wrapper .dataTables_filter label,.dataTables_wrapper .dataTables_length label{font-size:0.75rem;font-weight:normal;white-space:nowrap;margin:0 10rem 0.3rem 0;display:inline-block}.dataTables_wrapper .dataTables_bulk input[type="search"],.dataTables_wrapper .dataTables_filter input[type="search"],.dataTables_wrapper .dataTables_length input[type="search"]{margin-left:0.3rem;margin-right:0rem}[dir=rtl] .dataTables_wrapper .dataTables_bulk,[dir=rtl].dataTables_wrapper .dataTables_filter,[dir=rtl].dataTables_wrapper .dataTables_length{float:right;text-align:right !important;margin-left:3rem;margin-right:0}[dir=rtl] .dataTables_wrapper .dataTables_bulk select,[dir=rtl].dataTables_wrapper .dataTables_filter select,[dir=rtl].dataTables_wrapper .dataTables_length select{padding:0.2rem 0.2rem 0.2rem 1.2rem}[dir=rtl] .dataTables_wrapper .dataTables_bulk label,[dir=rtl].dataTables_wrapper .dataTables_filter label,[dir=rtl].dataTables_wrapper .dataTables_length label{margin-left:10rem;margin-right:0rem}[dir=rtl] .dataTables_wrapper .dataTables_bulk input[type="search"],[dir=rtl].dataTables_wrapper .dataTables_filter input[type="search"],[dir=rtl].dataTables_wrapper .dataTables_length input[type="search"]{margin-left:0rem;margin-right:0.3rem}.dataTables_wrapper .dataTables_info{float:right;clear:none;margin:0.5rem 0;padding-top:0.3rem}[dir=rtl] .dataTables_wrapper .dataTables_info{float:left}.dataTables_wrapper .dataTables_info:last-of-type{float:left}[dir=rtl] .dataTables_wrapper .dataTables_info:last-of-type{float:right}.dataTables_wrapper .dataTables_paginate{float:right;margin:0.3rem 0 0.3rem 0.7rem;padding-top:0.3rem}[dir=rtl] .dataTables_wrapper .dataTables_paginate{float:left;margin:0.3rem 0.7rem 0.3rem 0}.dataTables_wrapper .dataTables_paginate.paging_full_numbers{width:auto}.dataTables_wrapper .dataTables_paginate .paginate_button,.dataTables_wrapper .dataTables_paginate .paginate_active{padding:0.1rem 0.5rem !important;font-size:0.8rem}.dataTables_wrapper .dataTables_paginate .paginate_button a,.dataTables_wrapper .dataTables_paginate .paginate_active a{text-decoration:none;color:#333 !important}.dataTables_wrapper .dataTables_paginate .paginate_button:hover a,.dataTables_wrapper .dataTables_paginate .paginate_active:hover a{color:#eee !important}.dataTables_wrapper .dataTables_paginate .paginate_button:active a,.dataTables_wrapper .dataTables_paginate .paginate_active:active a{color:rgba(0,0,0,0.5) !important}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled a,.dataTables_wrapper .dataTables_paginate .paginate_active.disabled a{color:#666 !important}.dataTables_wrapper .dataTables_paginate .paginate_button.current a,.dataTables_wrapper .dataTables_paginate .paginate_active.current a{color:#333 !important}.dataTables_wrapper .dataTables_processing{z-index:99;padding:1rem 0 2rem;top:2.5rem;left:30%;background-color:#fffbe0;color:#737373;border-color:#737373}[dir=rtl] .dataTables_wrapper .dataTables_processing{left:unset;right:30%}.dt-wrapper.scrollable .dataTable_table{max-height:80vh;overflow:scroll;scroll-snap-type:y proximity}.dt-wrapper.scrollable .dataTable_table th,.dt-wrapper.scrollable .dataTable_table td{scroll-snap-align:end}.dt-wrapper.scrollable .dataTable{border-collapse:separate;border-spacing:0;border-bottom:0}.dt-wrapper.scrollable .dataTable th,.dt-wrapper.scrollable .dataTable td{border-top-width:0;border-right-width:0}.dt-wrapper.scrollable .dataTable tr th:last-child,.dt-wrapper.scrollable .dataTable tr td:last-child{border-right-width:1px}.dt-wrapper.scrollable .dataTable thead{position:sticky;top:0;background-color:#ffffff}.dt-wrapper.scrollable .dataTable thead tr:first-child th{border-top-width:1px}.column-selector table{width:100%;border-collapse:separate;border-spacing:0.1rem}.column-selector table td{padding:0.15rem;margin:0;width:100%}.column-selector table td label{margin:0}.column-selector table td label input{margin:0.2rem}.column-selector table td.column-left,.column-selector table td.column-right{cursor:pointer;width:1.5rem;min-width:1.5rem;font-size:1rem;text-align:center}.column-selector table td.column-left:hover,.column-selector table td.column-right:hover{background-color:#eee}.column-selector table thead{background:transparent}.column-selector table thead th,.column-selector table thead td{border:0}.column-selector table tbody td{border:1px solid #ccc}.column-selector table tbody.ui-sortable .sortable-placeholder{background-color:#fff7d8}.column-selector .submit-form-btn{margin-bottom:0.3rem}.dt-export-options{float:right;padding-top:5px}[dir=rtl] .dt-export-options{float:left}.dt-export-options .list_formats{padding-top:0;margin:0 0.2rem}.dt-export{display:inline-block;margin:0 0.15rem;cursor:pointer;height:16px;width:16px;background-repeat:no-repeat}.dt-export.fa{font-size:14px;padding:0;padding-top:2px}.dt-export.export_cap{background-image:url(../../img/cap_16.png)}.dt-export.export_have{background-image:url(../../img/have_16.png)}.dt-export.export_kml{background-image:url(../../img/kml_icon.png)}.dt-export.export_map{background-image:url(../../img/map_icon.png)}.dt-export.export_pdf{background-image:url(../../img/pdficon_small.gif)}.dt-export.export_rss{background-image:url(../../img/RSS_16.png)}.dt-export.export_xls{background-image:url(../../img/icon-xls.png)}.dt-export.export_xlsx{background-image:url(../../img/icon-xls.png)}.dt-export.export_xml{background-image:url(../../img/icon-xml.png)}.empty{font-style:italic;font-size:0.825rem}.dl{border-bottom:1px solid #aaa}.dl .dl-1-cols{width:100%}.dl .dl-2-cols{width:50%}.dl .dl-3-cols{width:33%}.dl .dl-4-cols{width:25%}.dl .dl-header{padding:3px;text-align:right}.dl .dl-row{border:0}.dl .dl-row.even,.dl .dl-row.even .dlitem{background-color:white}.dl .dl-row.odd,.dl .dl-row.odd .dl-item{background-color:#e2e4ff}.dl .dl-item{padding:3px 5px 3px 5px}.dl .dl-item .dropdown .caret{margin-left:0.2rem;margin-top:0.4rem}.dl .dl-item .attachments{margin-right:0.2rem}.dl .dl-field{padding:0.1rem 0}.dl .dl-field-label,.dl .dl-field-value{display:inline-block}.dl .dl-field-label{font-weight:normal}.dl .dl-field-value{margin:0 0.5rem;font-weight:bold}.dl .edit-bar.fright{float:right}[dir=rtl] .dl .dl-header{text-align:left}[dir=rtl] .dl .dl-item .dropdown .caret{margin-left:0;margin-right:0.2rem}[dir=rtl] .dl .dl-item .attachments{margin-right:0;margin-left:0.2rem}[dir=rtl] .dl .edit-bar.fright{float:left}.dl-empty{font-style:italic;font-size:0.825rem}.dl-exports.list_formats{padding:0}#summary-tabs{margin-top:10px;visibility:hidden}#summary-tabs.ui-widget-content{background:none;border:none}#summary-tab-headers .ui-tabs-nav{border:none;margin:0 10px}#summary-tab-headers a{border-color:#CCC}#summary-tab-headers .ui-tabs-active a{border-bottom:1px solid white}#summary-tab-headers li{margin-right:5px;box-shadow:none}#summary-sections .x-panel-body{border:none;border-radius:4px}#summary-sections #map{margin-top:0;padding:0}.ui-tabs .ui-tabs-panel{padding:0.5em}.s3-organizer-popup label{font-size:0.7rem;font-weight:bold}.s3-organizer-popup p{font-size:0.8rem;font-weight:normal;margin-bottom:0.3rem}.s3-organizer-popup .action-btn{margin-left:0;margin-right:0.3rem}.s3-organizer-create .action-btn{display:block}:root{--fc-page-bg-color:#fefefe;--fc-button-text-color:#666;--fc-button-bg-color:#eaeaea;--fc-button-border-color:#eaeaea;--fc-button-hover-bg-color:#dcdcdc;--fc-button-hover-border-color:#ccc;--fc-button-active-bg-color:#cfcfcf;--fc-button-active-border-color:#ccc}.fc table{margin-bottom:0;font-size:0.95rem}.fc .fc-timegrid-axis-cushion,.fc .fc-daygrid-week-number{font-size:0.85rem}#content .fc h1,#content .fc h2{background:transparent}.fc thead{background-color:#f4f4f4}.fc tbody,.fc tfoot,.fc tr,.fc th,.fc td{background:transparent}.fc .fc-button{font-size:0.9rem;padding:.2rem .65rem}.fc .fc-button:focus,.fc .fc-button-primary:focus,.fc .fc-button-primary:not(:disabled):active:focus,.fc .fc-button-primary:not(:disabled).fc-button-active:focus{box-shadow:none}.fc .inline-throbber{display:inline-block;vertical-align:middle;margin-top:1rem}h4.profile-sub-header{background-color:#efefef;padding:0.1rem 0.3rem;font-size:1.2rem}.profile-widget .icon-fullscreen{float:right;position:relative;right:9px;top:17px}.profile .dl-header{display:none}.empty_card-holder{text-align:center}.form-toggle,.form-toggle:hover{text-decoration:none}.form-toggle i,.form-toggle:hover i{margin-left:3px}.tp-form fieldset legend button:first-child,.pt-form fieldset legend button:first-child{display:none}.tp-form legend,.pt-form legend{border:0 !important;margin:0;height:1.4rem;font-size:0.85rem;padding:0 0.3rem}.pt-form .pt-rows{margin-right:0.5rem}.pt-form .pt-cols{margin-left:0.5rem}.pt-form .pt-axis-options select,.pt-form .pt-axis-options label{display:inline-block;width:auto}[dir=rtl] .pt-form .pt-rows{margin-right:0;margin-left:0.5rem}[dir=rtl] .pt-form .pt-cols{margin-left:0;margin-right:0.5rem}.tp-form .tp-time-options select,.tp-form .tp-time-options label{display:inline-block;width:auto}.tp-form .tp-time-options label{font-size:0.9rem;margin:0 0.7rem}.tp-chart-tops,.pt-chart-opts{height:1.0rem}.tp-chart-icon,.pt-chart-icon{width:16px;height:16px;float:left;margin-right:5px;cursor:pointer}[dir=rtl] .tp-chart-icon,[dir=rtl].pt-chart-icon{float:right;margin-right:0;margin-left:5px}.tp-chart-label,.pt-chart-label{font-size:0.7rem;float:left;margin-right:8px}[dir=rtl] .tp-chart-label,[dir=rtl].pt-chart-label{float:right;margin-right:0;margin-left:8px}.tp-lchart{background:url(../../img/report/lchart.png) center no-repeat}.tp-bchart{background:url(../../img/report/vchart.png) center no-repeat}.pt-pchart{background:url(../../img/report/pchart.png) center no-repeat}.pt-vchart{background:url(../../img/report/vchart.png) center no-repeat}.pt-hchart{background:url(../../img/report/hchart.png) center no-repeat}.pt-schart{background:url(../../img/report/pchart.png) center no-repeat}.tp-chart-contents,.pt-chart-contents{background-color:#fffdf6;padding:8px;border:1px solid #999;margin-top:5px;margin-bottom:5px;position:relative}.pt-chart-contents .pt-chart-title{position:absolute;left:8;top:0}.pt-chart-contents .pt-chart-title h4{font-size:1.0rem;font-weight:normal}.pt-chart-contents .pt-hide-chart{cursor:pointer;min-height:16px;min-width:16px;background:url(../../img/cross.png) right top no-repeat}.pt-chart-contents .pt-chart{margin-top:20px}.pt-chart-contents .pt-spectrum-pie{height:140px}.pt-chart-contents .pt-spectrum-pie svg.nv{float:left;width:auto}.pt-chart-contents .pt-spectrum-bar{height:280px;clear:left}.pt-chart-contents .pt-spectrum-form{float:left}.pt-chart-contents .pt-spectrum-form label{font-weight:bold;margin-right:8px;display:block}.pt-chart-contents .pt-spectrum-form select{font-size:0.875rem;max-width:360px}[dir=rtl] .pt-chart-contents .pt-chart-title{left:auto;right:8}[dir=rtl] .pt-chart-contents .pt-hide-chart{background-position:left top}[dir=rtl] .pt-chart-contents .pt-chart{direction:ltr}[dir=rtl] .pt-chart-contents .pt-spectrum-pie svg.nv{float:right;width:auto}[dir=rtl] .pt-chart-contents .pt-spectrum-bar{clear:right}[dir=rtl] .pt-chart-contents .pt-spectrum-form{direction:rtl;float:right}[dir=rtl] .pt-chart-contents .pt-spectrum-form label{margin-right:0;margin-left:8px}.pt-tooltip{font-family:Arial;font-size:13px;text-align:center;padding:4px}.pt-tooltip .pt-tooltip-label{font-weight:bold}.pt-tooltip .pt-tooltip-label,.pt-tooltip .pt-tooltip-text{max-width:175px;white-space:normal}.pt-table-contents{min-height:16px}.pt-table-contents .pt-table{overflow:auto}.pt-table-contents .pt-table th{border-bottom:0}.pt-table-contents .pt-table tr.pt-totals-row th.pt-totals-header{border-bottom:1px solid #ccc;border-top:2px solid #ccc}.pt-table-contents .pt-table .pt-totals-header,.pt-table-contents .pt-table .pt-total,.pt-table-contents .pt-table .pt-row-total,.pt-table-contents .pt-table .pt-col-total{font-weight:bold}.pt-table-contents .pt-table .pt-total,.pt-table-contents .pt-table .pt-col-total{border-top:2px solid #ccc}.pt-table-contents .pt-table .pt-total,.pt-table-contents .pt-table .pt-row-total{border-left:2px solid #ccc}.pt-table-contents .pt-table .pt-cell-value{display:inline}.pt-table-contents .pt-table .pt-cell-value li{font-size:0.8rem}.pt-table-contents .pt-table .pt-cell-records{clear:left}.pt-table-contents .pt-table td{min-width:60px;padding-right:16px;white-space:nowrap}.pt-table-contents .pt-table td .pt-cell-zoom{width:16px;height:16px;cursor:pointer;display:inline-block;vertical-align:text-top;margin-left:5px;background:url(../../img/silk/magnifier_zoom_in.png) no-repeat top right}.pt-table-contents .pt-table td .pt-cell-zoom.opened{background-image:url(../../img/silk/magnifier_zoom_out.png)}.pt-table-contents .pt-table tfoot{font-style:italic}[dir=rtl] .pt-table-contents .pt-table .pt-total,[dir=rtl] .pt-table-contents .pt-table .pt-row-total{border-left:0;border-right:2px solid #ccc}[dir=rtl] .pt-table-contents .pt-table .pt-cell-records{clear:right}[dir=rtl] .pt-table-contents .pt-table td{padding-right:0;padding-left:16px}[dir=rtl] .pt-table-contents .pt-table td .pt-cell-zoom{margin-left:0;margin-right:5px;background-position:left top}.tp-throbber,.pt-throbber{float:right;padding:5px;z-index:999}[dir=rtl] .tp-throbber,[dir=rtl].pt-throbber{float:left}.gi-empty,.tp-empty,.pt-empty,.pt-no-data{font-style:italic;font-size:0.8rem}.tp-chart-controls,.tp-chart.contents,.pt-toggle-table,.pt-chart-controls,.pt-chart-contents,.pt-table-controls,.pt-table-contents{clear:left}[dir=rtl] .tp-chart-controls,[dir=rtl].tp-chart.contents,[dir=rtl].pt-toggle-table,[dir=rtl].pt-chart-controls,[dir=rtl].pt-chart-contents,[dir=rtl].pt-table-controls,[dir=rtl].pt-table-contents{clear:right}.pt-toggle-table{display:inline-block}.pt-show-table,.pt-hide-table{font-size:10px;cursor:pointer;color:#039;text-decoration:underline;margin-bottom:3px}.pt-show-table{display:none}.pt-table-controls{position:relative;padding:0.4rem 0}.pt-export-table{text-align:right;margin:0.3rem;display:inline-block;position:absolute;right:0}[dir=rtl] .pt-export-table{text-align:left;left:0}.pt-export-opt{background-repeat:no-repeat;background-position:center;width:16px;height:16px;display:inline-block;cursor:pointer}.pt-export-xls{background-image:url("../../img/icon-xls.png")}.gi-table table{border-collapse:separate}.gi-table table thead td,.gi-table table tfoot td{background-color:#333;color:#fff}.gi-group-header.gi-level-1 td{background-color:#999;color:#fff}.gi-group-header.gi-level-1 td a{color:#fff}.gi-group-header.gi-level-2 td{background-color:#eee;border-top:1px solid #999}.gi-group-footer.gi-level-1 td{background-color:#999;color:#fff;border-bottom:1px dotted #666}.gi-group-footer.gi-level-1 td a{color:#fff}.gi-group-footer.gi-level-2 td{background-color:#eee;border-bottom:1px solid #999}.gi-group-footer-inline-label{display:inline-block;font-size:11px;line-height:1;position:relative;top:-0.1em;margin:0 0.25em 0 1em;padding:0.25em 0.75em;text-transform:uppercase;background-color:#ccc;color:#666}[dir=rtl] .gi-group-footer-inline-label{margin:0 1em 0 0.25em}.gi-export-formats{display:inline}.gi-export-formats .gi-export{height:16px;width:16px;display:inline-block;padding-right:1.2rem;padding-bottom:1.5rem;background-repeat:no-repeat;cursor:pointer}[dir=rtl] .gi-export-formats{padding-right:0;padding-left:1.2rem}.rm-form table{font-size:0.8rem}.rm-form table th,.rm-form table td{text-align:left}.rm-form .controls{width:100%}.rm-form .rm-assign .action-lnk,.rm-form .rm-rules .action-lnk{display:inline-block;color:#000548;font-style:normal}.rm-form .rm-toggle-all{margin-top:0.2rem;margin-bottom:0.5rem}.rm-form .rm-assign{width:80%;border-collapse:separate;border-spacing:0}.rm-form .rm-assign th{min-width:10rem}.rm-form .rm-assign th:first-child{width:25%}.rm-form .rm-assign td{padding:0.5rem}.rm-form .rm-assign tfoot td{border-top:1px solid #C0C0C0}.rm-form .rm-assign .rm-item-name,.rm-form .rm-assign .rm-item-title{display:block}.rm-form .rm-assign .rm-item-title{font-size:0.8rem;font-style:italic;color:#A0A0A0}.rm-form .rm-assign .rm-duplicate td{border-top:1px solid red;border-bottom:1px solid red}.rm-form .rm-assign .rm-duplicate td:first-child{border-left:1px solid red}.rm-form .rm-assign .rm-duplicate td:last-child{border-right:1px solid red}.rm-form .rm-module-rules{width:100%}.rm-form .rm-module-rules .rm-module-header{cursor:pointer;background-color:#F0F0F0}.rm-form .rm-module-rules .rm-module-header div{margin-right:0.3rem;display:inline-block}.rm-form .rm-module-rules .rm-module-header .rm-module-toggle{width:0.5rem}.rm-form .rm-module-rules .rm-module-header .rm-module-prefix{width:6.5rem}.rm-form .rm-module-rules .rm-module-header .rm-module-numrules{font-weight:normal}.rm-form .rm-module-rules.hasrules .rm-module-header{background-color:#D0D0D0}.rm-form .rm-module-rules th,.rm-form .rm-module-rules td{padding:0.5rem}.rm-form .rm-module-rules .rm-default-rule td,.rm-form .rm-module-rules .rm-default-permissions td{font-style:italic;color:#a0a0a0}.rm-form .rm-module-rules .rm-rule-target{width:20%}.rm-form input.rm-invalid{background-color:#FFA0A0}[dir=rtl] .rm-form .rm-module-rules .rm-module-header div{margin-right:0;margin-left:0.3rem}[dir=rtl] .rm-form .rm-assign .rm-duplicate td:first-child{border-left:0;border-right:1px solid red}[dir=rtl] .rm-form .rm-assign .rm-duplicate td:last-child{border-right:0;border-left:1px solid red}.rm-fixed,.rm-hint{display:block;font-style:italic;font-size:0.8rem;color:#AAAAAA}.rm-roles-actions{text-align:right !important}[dir=rtl] .rm-roles-actions{text-align:left !important}.system-info{width:100%;margin-top:0.8rem}.system-info table{width:auto;margin:auto;border:2px solid #000548}.system-info table tr{border:0}.system-info table td{font-size:0.8rem;line-height:0.8rem;background-color:#ffffff}.system-info table td:nth-child(2){font-size:0.7rem}.system-info .about-subheader td{background-color:#f0f1f2;font-size:0.9rem;font-weight:bold;line-height:0.9rem}#site-title{text-align:center;padding-top:2rem;margin-bottom:3rem}#site-title h2,#site-title h3{font-weight:normal;background:none;padding:0.35rem 0;margin:0}#site-title h2{font-size:2.3125rem}#login_box{width:100%;background:transparent;border:0}#login_box #login_form h3{font-size:1.6875rem;padding:0.35rem 0}#site-actions{margin-top:1.25rem}@keyframes blinker{50%{opacity:0}}.announcements-title{font-variant:all-small-caps;font-weight:bold}.announcements{margin:0;padding:0 0 0 1rem;border-left:1px solid #000548;list-style:none outside none}.announcements ul,.announcements ol{padding-left:20px;list-style:none outside none}.announcements li{padding:10px 0 0}.announcements .fright{float:right}.announcements .announcement-box{display:block;background:#fff7d9;border:1px solid #aaa;overflow:hidden;padding:0.7rem;margin-bottom:1.5rem}.announcements .announcement-box.announcement-important .announcement-icon{color:#0088ca}.announcements .announcement-box.announcement-critical{border:1px solid #ca0000;background-color:#ffebea}.announcements .announcement-box.announcement-critical .announcement-icon{color:#ca0000;animation:blinker 0.7s step-start 4}.announcements .announcement-box .announcement-header .announcement-icon{display:inline-block;font-size:1.3rem;padding:0 0.7rem 0 0}.announcements .announcement-box .announcement-header h4{display:inline-block}.announcements .announcement-box .announcement-text{font-size:0.9rem;line-height:1.3}.announcements .announcement-box .announcement-text h4{font-size:1.2rem}.announcements .announcement-box .announcement-text ul{list-style:disc outside none}.announcements .announcement-box .announcement-text ol{list-style:decimal outside none}.announcements .announcement-box .announcement-text li{padding:0}.announcements .announcement-box .announcement-text div{white-space:pre-line}.announcements .announcement-box .announcement-text .announcement-header{margin:0 0 0.8rem 0}.announcements .announcement-box .announcement-text announcement-body{white-space:pre-line}.announcements .announcement-box .announcement-text announcement-body p{margin-left:1rem}.announcements .announcement-box .announcement-date{font-size:0.7rem;margin-top:0.4rem}[dir=rtl] .announcements{padding:0 1rem 0 0;border-left:0;border-right:1px solid #000548}[dir=rtl] .announcements ul,[dir=rtl] .announcements ol{padding-left:0;padding-right:20px}[dir=rtl] .announcements .fright{float:left}[dir=rtl] .announcements .announcement-box .announcement-header .announcement-icon{padding:0 0 0 0.7rem}[dir=rtl] .announcements .announcement-box .announcement-header announcement-body p{margin-left:0;margin-right:1rem}.overdue{color:red}.invalid-case{border:1px solid red;color:red;font-size:1.1rem;font-weight:bold;line-height:1.9rem;margin-bottom:0.25rem;padding:0.1rem 0.2rem;text-transform:uppercase}.checkpoint-advise{background:#fff0f0 none repeat scroll 0 0;border:2px solid red;margin-bottom:1rem;padding:0.6rem}.checkpoint-advise p{white-space:pre-wrap}.checkpoint-person{font-weight:bold;margin-bottom:0.5rem}.check-in-warning{color:red;font-weight:bold;margin-left:0.5rem}.check-in-warning i{margin-right:0.3rem}#site_check_in_info__row .controls{width:100%}#site_check_in_status__row .controls{padding-top:0.3rem;width:100%}#check-in-form .status-label{font-size:0.9rem}#check-in-form .status-message{font-size:0.9rem;font-weight:bold}#check-in-form .person-details{font-size:1rem}.clear-btn{cursor:pointer}.clear-btn .fa{color:#b0b0b0}.event-registration .org-header{margin-top:0.3rem}.event-registration .org-header .org-name{font-size:1.0rem;padding:0.4rem;border:1px solid red;background-color:#ffe0e0}.event-registration .org-header.selected .org-name{border:1px solid transparent;background:transparent}.event-registration .org-header.empty .org-name{border-color:#ddd;background:transparent;color:#aaa}.event-registration .event-type-header{margin-top:0.3rem;text-align:center}.event-registration .event-type-header .event-type-name{font-size:1.2rem;padding:0.3rem;border:1px solid #43733f;background:#4a9d4f1a}.event-registration .event-type-header.challenge .event-type-name{border-color:red;background-color:#ffe0e0}.event-registration .event-type-header.empty .event-type-name{border-color:#ddd;background:transparent;color:#aaa}.event-registration .case-event-registration .event-registration-blocked{background-color:#ffaaaa;color:black;padding:0.2rem 0.5rem;margin:0.2rem 0.6rem}.event-registration .case-event-registration .controls{width:100%}.event-registration .case-event-registration .controls.has-flaginfo table,.event-registration .case-event-registration .controls.has-details table{width:100%;border:none}.event-registration .case-event-registration .person-details{font-size:1.1rem;font-weight:bold}.event-registration .family-members{width:100%;border-collapse:collapse}.event-registration .family-members div.member-show-picture{height:2.7rem}.event-registration .family-members .member-id{color:#808080;font-size:0.8rem;margin-bottom:0.1rem}.event-registration .family-members .member-message{margin:0;color:#e0767a;font-size:0.8rem;font-style:normal}.event-registration .family-members .member-message .columns{padding:0}.event-registration .family-members .family-member td{border-bottom:1px solid #e0e0e0;background-color:white}.event-registration .family-members .family-member.member-blocked td{background-color:#f6f6f6}.event-registration .family-members .family-member.member-blocked td .member-id,.event-registration .family-members .family-member.member-blocked td .member-name{color:#b0b0b0}.event-registration .family-members .family-all td{background-color:#f0f8f6;color:#505050;font-style:italic;height:2.7rem}.event-registration .family-members button.member-show-picture.showing{border:1px solid black}.event-registration .profile-picture{margin:1rem 0;max-width:80%}.event-registration .profile-picture .member-caption{padding:0.3rem 0;font-size:1.4rem}.event-bottom{border-top:1px solid #ddd;padding-top:0.5rem}.event-bottom .username{padding:0}#dvr_response_action_response_theme_ids__row .ui-multiselect.ui-widget,#sub-defaultresponse_action .ui-multiselect.ui-widget{width:28rem !important;max-width:100%}.ui-widget-content{max-width:100%}.dvr-response-action-theme{font-size:0.8rem}.dvr-response-action-theme h6{font-size:0.9rem;font-weight:bold;color:black;margin:0}.dvr-response-action-theme .text-body{margin:0.125rem 0.25rem 0.5rem 0.25rem}.file-repr i.fa{font-size:1.1rem}.file-repr .file-size{padding:0 0.4rem;font-size:0.7rem}.occupancy-bar{border:1px solid black;position:relative;padding:0 2px;min-width:4rem}.occupancy-bar .occupancy{display:block;position:absolute;top:0;left:0}.occupancy-bar .occupancy:before{content:"-";visibility:hidden}.occupancy-bar .occupancy.occupancy-0{width:1%;background-color:rgba(0,85,0,0.5)}.occupancy-bar .occupancy.occupancy-10{width:10%;background-color:rgba(0,115,0,0.5)}.occupancy-bar .occupancy.occupancy-20{width:20%;background-color:rgba(0,145,0,0.5)}.occupancy-bar .occupancy.occupancy-30{width:30%;background-color:rgba(70,160,0,0.5)}.occupancy-bar .occupancy.occupancy-40{width:40%;background-color:rgba(100,160,0,0.5)}.occupancy-bar .occupancy.occupancy-50{width:50%;background-color:rgba(160,160,0,0.5)}.occupancy-bar .occupancy.occupancy-60{width:60%;background-color:rgba(175,145,0,0.5)}.occupancy-bar .occupancy.occupancy-70{width:70%;background-color:rgba(190,120,0,0.5)}.occupancy-bar .occupancy.occupancy-80{width:80%;background-color:rgba(205,80,0,0.5)}.occupancy-bar .occupancy.occupancy-90{width:90%;background-color:rgba(220,40,0,0.5)}.occupancy-bar .occupancy.occupancy-100{width:100%;background-color:rgba(235,20,0,0.5)}.occupancy-bar .occupancy.occupancy-exc{width:100%;background-color:rgba(200,0,0,0.6)}.shelter-overview-stats{font-size:0.8rem;background-color:#eaeaea;padding:0.2rem;border:1px solid #e0e0e0}.shelter-overview-stats .spacer{background-color:#eaeaea}.shelter-overview-stats h5{font-size:0.9rem;font-weight:bold;text-align:center}.shelter-overview-stats table{width:100%;border:0;border-collapse:collapse}.shelter-overview-stats table th{font-weight:normal}.shelter-overview-stats table td{font-weight:bold}.shelter-overview-stats table .stats-excess{background-color:#ffced5}.shelter-overview-stats table .stats-total{font-size:1.0rem}.shelter-overview-stats table .stats-total th{font-weight:bold}.shelter-overview-residents h4{border-top:1px solid #ccc;padding:0.5rem 0;margin-top:0.75rem;font-size:1.1rem;font-weight:bold}.shelter-overview-residents .units-actions .units-search,.shelter-overview-residents .units-actions .units-expand{display:inline-block;margin-bottom:0.6rem}.shelter-overview-residents .units-actions .units-search{margin-right:5%}.shelter-overview-residents .units-actions .units-search input{margin-left:0.6rem;margin-right:0}.shelter-overview-residents .units-actions .units-search input.filtered{border:1px solid black;background-color:#e5ffe5}.shelter-overview-residents .units-actions .units-search .clear-search{padding:0 0.3rem;line-height:inherit;font-size:0.9rem;margin:0;border:1px solid #ccc;cursor:pointer;vertical-align:top;color:#666;background-color:#ccc}.shelter-overview-residents .units-actions .units-expand .action-lnk{margin-right:0.6rem}.shelter-overview-residents .units-list{min-width:71%}.shelter-overview-residents .units-list .unit{}.shelter-overview-residents .units-list .unit .unit-data{position:relative}.shelter-overview-residents .units-list .unit .unit-data .capacity{position:absolute;top:0.4rem;right:6rem;padding:0.2rem 0.5rem}.shelter-overview-residents .units-list .unit .unit-data .capacity span{font-size:0.9rem;margin-right:0.3rem}.shelter-overview-residents .units-list .unit .unit-data .capacity span.c-free,.shelter-overview-residents .units-list .unit .unit-data .capacity span.c-blocked,.shelter-overview-residents .units-list .unit .unit-data .capacity span.c-planned{margin-left:0.7rem}.shelter-overview-residents .units-list .unit .unit-data .capacity span.c-free{color:green}.shelter-overview-residents .units-list .unit .unit-data .capacity span.c-blocked{color:red}.shelter-overview-residents .units-list .unit .unit-data .capacity span.c-zero{color:#aaa}.shelter-overview-residents .units-list .unit .unit-data .capacity span.c-total{font-size:0.7rem}.shelter-overview-residents .units-list .unit .unit-data .capacity span .fa{margin-right:0.3rem}.shelter-overview-residents .units-list .unit .unit-data .unit-expand{position:absolute;top:0.8rem;right:1.5rem}.shelter-overview-residents .units-list .unit .unit-data .unit-expand .expand{display:none}.shelter-overview-residents .units-list .unit .unit-data .unit-expand .collapse{display:block}.shelter-overview-residents .units-list .unit tr{border-left:2px solid #AAA;border-right:2px solid #AAA}.shelter-overview-residents .units-list .unit.collapsed .details{visibility:collapse}.shelter-overview-residents .units-list .unit.collapsed .unit-expand .expand{display:block}.shelter-overview-residents .units-list .unit.collapsed .unit-expand .collapse{display:none}.shelter-overview-residents .units-list .unit .unit-header{padding:0;background-color:#DDD;border-top:3px solid #AAA;border-collapse:separate}.shelter-overview-residents .units-list .unit .unit-header .unit-label{padding:0.3rem 0.1rem;font-size:1.1rem;font-weight:bold}.shelter-overview-residents .units-list .unit .unit-header .unit-link i.fa{margin-right:1.2rem}.shelter-overview-residents .units-list .unit .unit-header .unit-link i.fa.fa-ban{color:#d71919}.shelter-overview-residents .units-list .unit .unit-header .unit-link i.fa.fa-check{color:#070}.shelter-overview-residents .units-list .unit .resident-header{}.shelter-overview-residents .units-list .unit .resident-header th{font-size:0.9rem;color:#777;padding:0.2rem 0.5rem}.shelter-overview-residents .units-list .unit .resident{}.shelter-overview-residents .units-list .unit .resident td{padding:0.2rem 0.5rem;font-size:0.9rem;color:#333}.shelter-overview-residents .units-list .unit .resident td.resident-name{font-weight:bold}.shelter-overview-residents .units-list .unit .resident td.resident-presence{text-align:center}.shelter-overview-residents .units-list .unit .resident.planned td{font-style:italic;color:#888}.shelter-overview-residents .units-list .unit .resident.planned td a{color:#888}.shelter-overview-residents .units-list .unit .resident.group-even{background-color:#fdfdfd}.shelter-overview-residents .units-list .unit .resident.group-odd{background-color:#f9f9f9}.shelter-overview-residents .units-list .unit .capacity-free{background-color:#b9ffb9}.shelter-overview-residents .units-list .unit .capacity-free td{padding:0.2rem 0.5rem;font-size:0.9rem}.shelter-overview-residents .units-list .unit .capacity-blocked{background-color:#ffced5}.shelter-overview-residents .units-list .unit .capacity-blocked td{padding:0.2rem 0.5rem;font-size:0.9rem}.shelter-overview-residents .units-list .unit .unit-subheader{border-top:2px solid #AAA}.shelter-overview-residents .units-list .unit .unit-subheader .residents-planned{font-size:0.7rem;padding:0.2rem;color:#666}.shelter-overview-residents .units-list .unit .unit-spacer{border:none;border-top:3px solid #AAA}.shelter-overview-residents .units-list .unit .unit-spacer td{border:none;min-height:0.5rem}.id-card-data{border:1px solid #ccc;padding:1rem}.id-card-data .button i.fa{margin-right:0.5rem}.id-card-warning{border:1px solid red;padding:0.5rem;margin:1rem;background:#fff1df;font-size:1rem}.client-gender-age{font-size:0.7rem;vertical-align:top;color:#999;margin:0 1rem}.client-gender-age .fa{margin:0 0.2rem}.last-seen-critical,.last-seen-warning{cursor:pointer}.last-seen-critical .fa,.last-seen-warning .fa{margin:0.2rem}.last-seen-critical{color:#c10031}.last-seen-warning{color:#bd5900}.rhist{border:1px solid #ccc;margin-bottom:0.7rem;padding:0.5rem;background-color:#fafafa}.rhist .action-btn .fa{margin-left:0.3rem;font-size:10px}.rhist table{border:1px solid #ccc;border-collapse:collapse;margin:1rem 3rem}.rhist table th,.rhist table td{padding:0.2rem 0.7rem;border:0;cursor:default}.rhist table th{font-size:0.8rem;font-weight:normal;font-style:italic;color:grey;border-bottom:1px solid #ccc}.rhist table td{font-size:0.9rem;font-weight:bold}.rhist table td.rhist-planned{font-size:0.7rem;font-weight:normal;color:grey}.rhist table .rhist-headers{background-color:#eee}.rhist table .rhist-current{background-color:#dff4bf}.rhist .empty{margin:0.7rem 1.4rem}.table-report-form{width:auto;border:1px solid #eee;padding:0.5rem}.table-report-data{max-height:80vh;overflow:scroll;padding:0.3rem;margin-top:0.7rem}.table-report-data table,.table-report-data th,.table-report-data td{border:1px solid #ccc}.table-report-data thead th{text-align:center}.table-report-data tbody tr:nth-child(even){background:#fafafa} \ No newline at end of file +@font-face{font-family:'FontAwesome';src:url('../../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:0.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul > li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:0.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eeeeee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)} 100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)} 100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1)";-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1)";-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#ffffff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}div.ui-cluetip{font-size:1em}.ui-cluetip-header,.ui-cluetip-content{padding:12px}.ui-cluetip-header{font-size:1em;margin:0;overflow:hidden}.cluetip-title .cluetip-close{float:right;position:relative}.cluetip-close img{border:0}#cluetip-waitimage{width:43px;height:11px;position:absolute;background-image:url(../../img/jquery.cluetip/wait.gif)}.cluetip-arrows{display:none;position:absolute;top:0;left:-11px;width:11px;height:22px;background-repeat:no-repeat;background-position:0 0;border-width:0}.cluetip-extra{display:none}.cluetip-default,.cluetip-default .cluetip-outer{background-color:#d9d9c2}.cluetip-default .ui-cluetip-header{background-color:#87876a}div.cluetip-default .cluetip-arrows{border-width:0;background:transparent none}div.clue-right-default .cluetip-arrows{background-image:url(../../img/jquery.cluetip/darrowleft.gif)}div.clue-left-default .cluetip-arrows{background-image:url(../../img/jquery.cluetip/darrowright.gif);left:100%;margin-right:-11px}div.clue-top-default .cluetip-arrows{background-image:url(../../img/jquery.cluetip/darrowdown.gif);top:100%;left:50%;margin-left:-11px;width:22px;height:11px}div.clue-bottom-default .cluetip-arrows{background-image:url(../../img/jquery.cluetip/darrowup.gif);top:-11px;left:50%;margin-left:-11px;width:22px;height:11px}.cluetip-jtip{background-color:#fff}.cluetip-jtip .cluetip-outer{border:2px solid #ccc;position:relative;background-color:#fff}.cluetip-jtip .cluetip-inner{padding:5px;display:inline-block}.cluetip-jtip div.cluetip-close{text-align:right;margin:0 5px 0;color:#900}.cluetip-jtip .ui-cluetip-header{background-color:#ccc;padding:6px}div.cluetip-jtip .cluetip-arrows{border-width:0;background:transparent none}div.clue-right-jtip .cluetip-arrows{background-image:url(../../img/jquery.cluetip/arrowleft.gif)}div.clue-left-jtip .cluetip-arrows{background-image:url(../../img/jquery.cluetip/arrowright.gif);left:100%;margin-right:-11px}div.clue-top-jtip .cluetip-arrows{background-image:url(../../img/jquery.cluetip/arrowdown.gif);top:100%;left:50%;width:22px;height:11px;margin-left:-11px}div.clue-bottom-jtip .cluetip-arrows{background-image:url(../../img/jquery.cluetip/arrowup.gif);top:-11px;left:50%;width:22px;height:11px;margin-left:-11px}.cluetip-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;background-color:#fff;border:1px solid #ccc}.cluetip-rounded .cluetip-outer{background-color:#fff}.cluetip-rounded .cluetip-arrows{border-color:#ccc}div.cluetip-rounded .cluetip-arrows{font-size:0;line-height:0%;width:0;height:0;border-style:solid;background:transparent none}div.clue-right-rounded .cluetip-arrows{border-width:11px 11px 11px 0;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent}div.clue-left-rounded .cluetip-arrows{left:100%;margin-right:-11px;border-width:11px 0 11px 11px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent}div.clue-top-rounded .cluetip-arrows{top:100%;left:50%;border-width:11px 11px 0 11px;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.clue-bottom-rounded .cluetip-arrows{top:-11px;left:50%;border-width:0 11px 11px 11px;border-top-color:transparent;border-right-color:transparent;border-left-color:transparent}.cluetip-rounded .cluetip-title,.cluetip-rounded .cluetip-inner{zoom:1}@charset "UTF-8";table.dataTable td.dt-control{text-align:center;cursor:pointer}table.dataTable td.dt-control:before{height:1em;width:1em;margin-top:-9px;display:inline-block;color:white;border:0.15em solid white;border-radius:1em;box-shadow:0 0 0.2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#31b131}table.dataTable tr.dt-hasChild td.dt-control:before{content:"-";background-color:#d33333}table.dataTable thead > tr > th.sorting,table.dataTable thead > tr > th.sorting_asc,table.dataTable thead > tr > th.sorting_desc,table.dataTable thead > tr > th.sorting_asc_disabled,table.dataTable thead > tr > th.sorting_desc_disabled,table.dataTable thead > tr > td.sorting,table.dataTable thead > tr > td.sorting_asc,table.dataTable thead > tr > td.sorting_desc,table.dataTable thead > tr > td.sorting_asc_disabled,table.dataTable thead > tr > td.sorting_desc_disabled{cursor:pointer;position:relative;padding-right:26px}table.dataTable thead > tr > th.sorting:before,table.dataTable thead > tr > th.sorting:after,table.dataTable thead > tr > th.sorting_asc:before,table.dataTable thead > tr > th.sorting_asc:after,table.dataTable thead > tr > th.sorting_desc:before,table.dataTable thead > tr > th.sorting_desc:after,table.dataTable thead > tr > th.sorting_asc_disabled:before,table.dataTable thead > tr > th.sorting_asc_disabled:after,table.dataTable thead > tr > th.sorting_desc_disabled:before,table.dataTable thead > tr > th.sorting_desc_disabled:after,table.dataTable thead > tr > td.sorting:before,table.dataTable thead > tr > td.sorting:after,table.dataTable thead > tr > td.sorting_asc:before,table.dataTable thead > tr > td.sorting_asc:after,table.dataTable thead > tr > td.sorting_desc:before,table.dataTable thead > tr > td.sorting_desc:after,table.dataTable thead > tr > td.sorting_asc_disabled:before,table.dataTable thead > tr > td.sorting_asc_disabled:after,table.dataTable thead > tr > td.sorting_desc_disabled:before,table.dataTable thead > tr > td.sorting_desc_disabled:after{position:absolute;display:block;opacity:0.125;right:10px;line-height:9px;font-size:0.9em}table.dataTable thead > tr > th.sorting:before,table.dataTable thead > tr > th.sorting_asc:before,table.dataTable thead > tr > th.sorting_desc:before,table.dataTable thead > tr > th.sorting_asc_disabled:before,table.dataTable thead > tr > th.sorting_desc_disabled:before,table.dataTable thead > tr > td.sorting:before,table.dataTable thead > tr > td.sorting_asc:before,table.dataTable thead > tr > td.sorting_desc:before,table.dataTable thead > tr > td.sorting_asc_disabled:before,table.dataTable thead > tr > td.sorting_desc_disabled:before{bottom:50%;content:"â–´"}table.dataTable thead > tr > th.sorting:after,table.dataTable thead > tr > th.sorting_asc:after,table.dataTable thead > tr > th.sorting_desc:after,table.dataTable thead > tr > th.sorting_asc_disabled:after,table.dataTable thead > tr > th.sorting_desc_disabled:after,table.dataTable thead > tr > td.sorting:after,table.dataTable thead > tr > td.sorting_asc:after,table.dataTable thead > tr > td.sorting_desc:after,table.dataTable thead > tr > td.sorting_asc_disabled:after,table.dataTable thead > tr > td.sorting_desc_disabled:after{top:50%;content:"â–¾"}table.dataTable thead > tr > th.sorting_asc:before,table.dataTable thead > tr > th.sorting_desc:after,table.dataTable thead > tr > td.sorting_asc:before,table.dataTable thead > tr > td.sorting_desc:after{opacity:0.6}table.dataTable thead > tr > th.sorting_desc_disabled:after,table.dataTable thead > tr > th.sorting_asc_disabled:before,table.dataTable thead > tr > td.sorting_desc_disabled:after,table.dataTable thead > tr > td.sorting_asc_disabled:before{display:none}table.dataTable thead > tr > th:active,table.dataTable thead > tr > td:active{outline:none}div.dataTables_scrollBody table.dataTable thead > tr > th:before,div.dataTables_scrollBody table.dataTable thead > tr > th:after,div.dataTables_scrollBody table.dataTable thead > tr > td:before,div.dataTables_scrollBody table.dataTable thead > tr > td:after{display:none}div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:2px}div.dataTables_processing > div:last-child{position:relative;width:80px;height:15px;margin:1em auto}div.dataTables_processing > div:last-child > div{position:absolute;top:0;width:13px;height:13px;border-radius:50%;background:rgba(13,110,253,0.9);animation-timing-function:cubic-bezier(0,1,1,0)}div.dataTables_processing > div:last-child > div:nth-child(1){left:8px;animation:datatables-loader-1 0.6s infinite}div.dataTables_processing > div:last-child > div:nth-child(2){left:8px;animation:datatables-loader-2 0.6s infinite}div.dataTables_processing > div:last-child > div:nth-child(3){left:32px;animation:datatables-loader-2 0.6s infinite}div.dataTables_processing > div:last-child > div:nth-child(4){left:56px;animation:datatables-loader-3 0.6s infinite}@keyframes datatables-loader-1{0%{transform:scale(0)} 100%{transform:scale(1)}}@keyframes datatables-loader-3{0%{transform:scale(1)} 100%{transform:scale(0)}}@keyframes datatables-loader-2{0%{transform:translate(0,0)} 100%{transform:translate(24px,0)}}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th,table.dataTable thead td,table.dataTable tfoot th,table.dataTable tfoot td{text-align:left}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0; }table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px;border-bottom:1px solid rgba(0,0,0,0.3)}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 10px 6px 10px;border-top:1px solid rgba(0,0,0,0.3)}table.dataTable tbody tr{background-color:transparent}table.dataTable tbody tr.selected > *{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.9);color:white}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid rgba(0,0,0,0.15)}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid rgba(0,0,0,0.15);border-right:1px solid rgba(0,0,0,0.15)}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid rgba(0,0,0,0.15)}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe > tbody > tr.odd > *,table.dataTable.display > tbody > tr.odd > *{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.023)}table.dataTable.stripe > tbody > tr.odd.selected > *,table.dataTable.display > tbody > tr.odd.selected > *{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.923)}table.dataTable.hover > tbody > tr:hover > *,table.dataTable.display > tbody > tr:hover > *{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.035)}table.dataTable.hover > tbody > tr.selected:hover > *,table.dataTable.display > tbody > tr.selected:hover > *{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.935)}table.dataTable.order-column > tbody tr > .sorting_1,table.dataTable.order-column > tbody tr > .sorting_2,table.dataTable.order-column > tbody tr > .sorting_3,table.dataTable.display > tbody tr > .sorting_1,table.dataTable.display > tbody tr > .sorting_2,table.dataTable.display > tbody tr > .sorting_3{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.019)}table.dataTable.order-column > tbody tr.selected > .sorting_1,table.dataTable.order-column > tbody tr.selected > .sorting_2,table.dataTable.order-column > tbody tr.selected > .sorting_3,table.dataTable.display > tbody tr.selected > .sorting_1,table.dataTable.display > tbody tr.selected > .sorting_2,table.dataTable.display > tbody tr.selected > .sorting_3{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.919)}table.dataTable.display > tbody > tr.odd > .sorting_1,table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_1{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.054)}table.dataTable.display > tbody > tr.odd > .sorting_2,table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_2{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.047)}table.dataTable.display > tbody > tr.odd > .sorting_3,table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_3{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.039)}table.dataTable.display > tbody > tr.odd.selected > .sorting_1,table.dataTable.order-column.stripe > tbody > tr.odd.selected > .sorting_1{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.954)}table.dataTable.display > tbody > tr.odd.selected > .sorting_2,table.dataTable.order-column.stripe > tbody > tr.odd.selected > .sorting_2{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.947)}table.dataTable.display > tbody > tr.odd.selected > .sorting_3,table.dataTable.order-column.stripe > tbody > tr.odd.selected > .sorting_3{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.939)}table.dataTable.display > tbody > tr.even > .sorting_1,table.dataTable.order-column.stripe > tbody > tr.even > .sorting_1{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.019)}table.dataTable.display > tbody > tr.even > .sorting_2,table.dataTable.order-column.stripe > tbody > tr.even > .sorting_2{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.011)}table.dataTable.display > tbody > tr.even > .sorting_3,table.dataTable.order-column.stripe > tbody > tr.even > .sorting_3{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.003)}table.dataTable.display > tbody > tr.even.selected > .sorting_1,table.dataTable.order-column.stripe > tbody > tr.even.selected > .sorting_1{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.919)}table.dataTable.display > tbody > tr.even.selected > .sorting_2,table.dataTable.order-column.stripe > tbody > tr.even.selected > .sorting_2{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.911)}table.dataTable.display > tbody > tr.even.selected > .sorting_3,table.dataTable.order-column.stripe > tbody > tr.even.selected > .sorting_3{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.903)}table.dataTable.display tbody tr:hover > .sorting_1,table.dataTable.order-column.hover tbody tr:hover > .sorting_1{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.082)}table.dataTable.display tbody tr:hover > .sorting_2,table.dataTable.order-column.hover tbody tr:hover > .sorting_2{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.074)}table.dataTable.display tbody tr:hover > .sorting_3,table.dataTable.order-column.hover tbody tr:hover > .sorting_3{box-shadow:inset 0 0 0 9999px rgba(0,0,0,0.062)}table.dataTable.display tbody tr:hover.selected > .sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.982)}table.dataTable.display tbody tr:hover.selected > .sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.974)}table.dataTable.display tbody tr:hover.selected > .sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3{box-shadow:inset 0 0 0 9999px rgba(13,110,253,0.962)}table.dataTable.no-footer{border-bottom:1px solid rgba(0,0,0,0.3)}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 17px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th,table.dataTable td{box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_length select{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;padding:4px}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;margin-left:3px}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:0.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:0.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;color:#333 !important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid rgba(0,0,0,0.3);background-color:rgba(230,230,230,0.1);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(230,230,230,0.1)),color-stop(100%,rgba(0,0,0,0.1)));background:-webkit-linear-gradient(top,rgba(230,230,230,0.1) 0%,rgba(0,0,0,0.1) 100%);background:-moz-linear-gradient(top,rgba(230,230,230,0.1) 0%,rgba(0,0,0,0.1) 100%);background:-ms-linear-gradient(top,rgba(230,230,230,0.1) 0%,rgba(0,0,0,0.1) 100%);background:-o-linear-gradient(top,rgba(230,230,230,0.1) 0%,rgba(0,0,0,0.1) 100%);background:linear-gradient(to bottom,rgba(230,230,230,0.1) 0%,rgba(0,0,0,0.1) 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#585858),color-stop(100%,#111));background:-webkit-linear-gradient(top,#585858 0%,#111 100%);background:-moz-linear-gradient(top,#585858 0%,#111 100%);background:-ms-linear-gradient(top,#585858 0%,#111 100%);background:-o-linear-gradient(top,#585858 0%,#111 100%);background:linear-gradient(to bottom,#585858 0%,#111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#2b2b2b),color-stop(100%,#0c0c0c));background:-webkit-linear-gradient(top,#2b2b2b 0%,#0c0c0c 100%);background:-moz-linear-gradient(top,#2b2b2b 0%,#0c0c0c 100%);background:-ms-linear-gradient(top,#2b2b2b 0%,#0c0c0c 100%);background:-o-linear-gradient(top,#2b2b2b 0%,#0c0c0c 100%);background:linear-gradient(to bottom,#2b2b2b 0%,#0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th > div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td > div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th > div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td > div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid rgba(0,0,0,0.3)}.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,.dataTables_wrapper.no-footer div.dataTables_scrollBody > table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width:767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center} .dataTables_wrapper .dataTables_paginate{margin-top:0.5em}}@media screen and (max-width:640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center} .dataTables_wrapper .dataTables_filter{margin-top:0.5em}}table.dataTable.dtr-inline.collapsed tbody td:first-child,table.dataTable.dtr-inline.collapsed tbody th:first-child{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed tbody td:first-child:before,table.dataTable.dtr-inline.collapsed tbody th:first-child:before{top:8px;left:4px;height:16px;width:16px;display:block;position:absolute;color:white;border:2px solid white;border-radius:16px;text-align:center;line-height:14px;box-shadow:0 0 3px #444;box-sizing:content-box;content:'+';background-color:#31b131}table.dataTable.dtr-inline.collapsed tbody td:first-child.dataTables_empty:before,table.dataTable.dtr-inline.collapsed tbody th:first-child.dataTables_empty:before{display:none}table.dataTable.dtr-inline.collapsed tbody tr.parent td:first-child:before,table.dataTable.dtr-inline.collapsed tbody tr.parent th:first-child:before{content:'-';background-color:#d33333}table.dataTable.dtr-inline.collapsed tbody tr.child td:before{display:none}table.dataTable.dtr-column tbody td.control,table.dataTable.dtr-column tbody th.control{position:relative;cursor:pointer}table.dataTable.dtr-column tbody td.control:before,table.dataTable.dtr-column tbody th.control:before{top:50%;left:50%;height:16px;width:16px;margin-top:-10px;margin-left:-10px;display:block;position:absolute;color:white;border:2px solid white;border-radius:16px;text-align:center;line-height:14px;box-shadow:0 0 3px #444;box-sizing:content-box;content:'+';background-color:#31b131}table.dataTable.dtr-column tbody tr.parent td.control:before,table.dataTable.dtr-column tbody tr.parent th.control:before{content:'-';background-color:#d33333}table.dataTable tr.child{padding:0.5em 1em}table.dataTable tr.child:hover{background:transparent !important}table.dataTable tr.child ul{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable tr.child ul li{border-bottom:1px solid #efefef;padding:0.5em 0}table.dataTable tr.child ul li:first-child{padding-top:0}table.dataTable tr.child ul li:last-child{border-bottom:none}table.dataTable tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;-ms-filter:"alpha(opacity=0)"}.ui-front{z-index:100}.ui-state-disabled{cursor:default !important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:pointer;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-timepicker-inline{display:inline}#ui-timepicker-div{padding:0.2em}.ui-timepicker-table{display:inline-table;width:0}.ui-timepicker-table table{margin:0.15em 0 0 0;border-collapse:collapse}.ui-timepicker-hours,.ui-timepicker-minutes{padding:0.2em}.ui-timepicker-table .ui-timepicker-title{line-height:1.8em;text-align:center}.ui-timepicker-table td{padding:0.1em;width:2.2em}.ui-timepicker-table th.periods{padding:0.1em;width:2.2em}.ui-timepicker-table td span{display:block;padding:0.2em 1.5em 0.2em 0.5em;width:1.2em;text-align:right;text-decoration:none}.ui-timepicker-table td a{display:block;padding:0.2em 0.3em 0.2em 0.5em;cursor:pointer;text-align:right;text-decoration:none}.ui-timepicker .ui-timepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-timepicker .ui-timepicker-buttonpane button{margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-timepicker .ui-timepicker-close{float:right }.ui-timepicker .ui-timepicker-now{float:left}.ui-timepicker .ui-timepicker-deselect{float:left}.ui-multiselect{box-sizing:border-box;padding:2px 0 2px 4px;text-align:left;width:auto}.ui-multiselect .ui-multiselect-open{float:right }.ui-multiselect-menu{display:none;box-sizing:border-box;position:absolute;text-align:left;z-index:101;width:auto;height:auto;padding:3px}.ui-multiselect-menu.ui-multiselect-listbox{position:relative;z-index:0}.ui-multiselect-header{display:block;box-sizing:border-box;position:relative;width:auto;padding:3px 0 3px 4px;margin-bottom:2px}.ui-multiselect-header > ul{font-size:0.9em }.ui-multiselect-header li{float:left;margin:0 10px 0 0}.ui-multiselect-header a{text-decoration:none}.ui-multiselect-header a:hover{text-decoration:underline;cursor:pointer}.ui-multiselect-header .ui-icon{float:left}.ui-multiselect-header .ui-multiselect-close{float:right;margin-right:0;text-align:right}.ui-multiselect-checkboxes{display:block;box-sizing:border-box;position:relative;overflow:auto;width:auto;border:0;padding:4px 0 8px}.ui-multiselect-checkboxes li:not(.ui-multiselect-optgroup){clear:both;font-size:0.9em;list-style:none;padding-right:3px}.ui-multiselect-checkboxes label{border:1px solid transparent;cursor:default;display:block;padding:3px 1px 3px 21px;text-indent:-20px}.ui-multiselect-checkboxes input{position:relative;top:1px;cursor:pointer}.ui-multiselect-checkboxes img{height:30px;vertical-align:middle;margin-right:3px}.ui-multiselect-grouplabel{border-bottom:1px solid;display:block;font-weight:bold;margin:1px 0;padding:3px;text-align:center;text-decoration:none}.ui-multiselect-selectable{cursor:pointer}.ui-multiselect-optgroup > ul{padding:3px}.ui-multiselect-columns{display:inline-block;vertical-align:top}.ui-multiselect-collapser{float:left;padding:0 1px;margin:0}.ui-multiselect-collapsed > ul{display:none }.ui-multiselect-single .ui-multiselect-checkboxes input{left:-9999px;position:absolute !important;top:auto !important}.ui-multiselect-single .ui-multiselect-checkboxes label{padding:5px !important;text-indent:0 !important}.ui-multiselect.ui-multiselect-nowrap{white-space:nowrap }.ui-multiselect.ui-multiselect-nowrap > span{display:inline-block }.ui-multiselect-checkboxes.ui-multiselect-nowrap li,.ui-multiselect-checkboxes.ui-multiselect-nowrap a{white-space:nowrap }.ui-multiselect-measure > .ui-multiselect-header,.ui-multiselect-measure > .ui-multiselect-checkboxes{float:left}.ui-multiselect-measure > .ui-multiselect-checkboxes{margin:4px;overflow-y:scroll}.ui-multiselect-resize{border:2px dotted #00F }@media print{.ui-multiselect-menu{display:none}}.ui-multiselect-hasfilter ul{position:relative;top:2px }.ui-multiselect-filter{float:left;margin-right:10px;font-size:1em;width:100%}.ui-multiselect-header .ui-multiselect-filter input{width:100px;font-size:.9em;margin-left:5px;height:15px;padding:2px;border:1px solid #292929;-webkit-appearance:textfield;-webkit-box-sizing:content-box}.ui-multiselect-excluded{display:none}body.rtl .ui-multiselect{direction:rtl;padding:2px 4px 2px 0;text-align:right}body.rtl .ui-multiselect-menu{text-align:right}body.rtl .ui-multiselect-header{direction:rtl;padding:3px 4px 3px 0}body.rtl .ui-multiselect-checkboxes li:not(.ui-multiselect-optgroup){padding-left:3px}body.rtl .ui-multiselect-checkboxes label{padding:3px 21px 3px 1px}body.rtl .ui-multiselect-checkboxes img{margin-left:3px}.ui-timepicker-div .ui-widget-header{margin-bottom:8px}.ui-timepicker-div dl{text-align:left}.ui-timepicker-div dl dt{float:left;clear:left;padding:0 0 0 5px}.ui-timepicker-div dl dd{margin:0 10px 10px 40%}.ui-timepicker-div td{font-size:90%}.ui-tpicker-grid-label{background:none;border:none;margin:0;padding:0}.ui-timepicker-div .ui_tpicker_unit_hide{display:none}.ui-timepicker-div .ui_tpicker_time .ui_tpicker_time_input{background:none;color:inherit;border:none;outline:none;border-bottom:solid 1px #555;width:95%}.ui-timepicker-div .ui_tpicker_time .ui_tpicker_time_input:focus{border-bottom-color:#aaa}.ui-timepicker-rtl{direction:rtl}.ui-timepicker-rtl dl{text-align:right;padding:0 5px 0 0}.ui-timepicker-rtl dl dt{float:right;clear:right}.ui-timepicker-rtl dl dd{margin:0 40% 10px 10px}.ui-timepicker-div.ui-timepicker-oneLine{padding-right:2px}.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time,.ui-timepicker-div.ui-timepicker-oneLine dt{display:none}.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time_label{display:block;padding-top:2px}.ui-timepicker-div.ui-timepicker-oneLine dl{text-align:right}.ui-timepicker-div.ui-timepicker-oneLine dl dd,.ui-timepicker-div.ui-timepicker-oneLine dl dd > div{display:inline-block;margin:0}.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_minute:before,.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_second:before{content:':';display:inline-block}.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_millisec:before,.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_microsec:before{content:'.';display:inline-block}.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide,.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide:before{display:none}.ui-widget{font-family:Arial,sans-serif;font-size:1rem}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #d3d3d3}.ui-widget-content{border:1px solid #aaaaaa;background:#ffffff;color:#222222}.ui-widget-content a{color:#222222}.ui-widget-header{border:1px solid #aaaaaa;background:#cccccc;color:#222222;font-weight:bold}.ui-widget-header a{color:#222222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #d3d3d3;background:#e6e6e6;font-weight:normal;color:#555555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#555555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #999999;background:#dadada;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#212121;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #aaaaaa;background:#ffffff;font-weight:normal;color:#212121}.ui-icon-background,.ui-state-active .ui-icon-background{border:#aaaaaa;background-color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee;color:#363636}.ui-state-checked{border:1px solid #fcefa1;background:#fbf9ee}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;-ms-filter:"alpha(opacity=70)";font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;-ms-filter:"alpha(opacity=35)";background-image:none}.ui-state-disabled .ui-icon{-ms-filter:"alpha(opacity=35)"}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("../../img/jquery.ui/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("../../img/jquery.ui/ui-icons_222222_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("../../img/jquery.ui/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("../../img/jquery.ui/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("../../img/jquery.ui/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("../../img/jquery.ui/ui-icons_cd0a0a_256x240.png")}.ui-button .ui-icon{background-image:url("../../img/jquery.ui/ui-icons_888888_256x240.png")}.ui-icon-blank.ui-icon-blank.ui-icon-blank{background-image:none}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:0}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:0}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:0}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:0}.ui-widget-overlay{background:#aaaaaa;opacity:.3;-ms-filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:-8px -8px 8px #aaaaaa;box-shadow:-8px -8px 8px #aaaaaa}div.olMap{z-index:0;padding:0 !important;margin:0 !important;cursor:default}div.olMapViewport{text-align:left}div.olLayerDiv{-moz-user-select:none;-khtml-user-select:none}.olLayerGoogleCopyright{left:2px;bottom:2px}.olLayerGoogleV3.olLayerGoogleCopyright{right:auto !important}.olLayerGooglePoweredBy{left:2px;bottom:15px}.olLayerGoogleV3.olLayerGooglePoweredBy{bottom:15px !important}.olForeignContainer{opacity:1 !important}.olControlAttribution{font-size:smaller;right:3px;bottom:4.5em;position:absolute;display:block}.olControlScale{right:3px;bottom:3em;display:block;position:absolute;font-size:smaller}.olControlScaleLine{display:block;position:absolute;left:10px;bottom:15px;font-size:xx-small}.olControlScaleLineBottom{border:solid 2px black;border-bottom:none;margin-top:-2px;text-align:center}.olControlScaleLineTop{border:solid 2px black;border-top:none;text-align:center}.olControlPermalink{right:3px;bottom:1.5em;display:block;position:absolute;font-size:smaller}div.olControlMousePosition{bottom:0;right:3px;display:block;position:absolute;font-family:Arial;font-size:smaller}.olControlOverviewMapContainer{position:absolute;bottom:0;right:0}.olControlOverviewMapElement{padding:10px 18px 10px 10px;background-color:#00008B;-moz-border-radius:1em 0 0 0}.olControlOverviewMapMinimizeButton,.olControlOverviewMapMaximizeButton{height:18px;width:18px;right:0;bottom:80px;cursor:pointer}.olControlOverviewMapExtentRectangle{overflow:hidden;background-image:url(../../img/gis/openlayers/theme_default/blank.gif);cursor:move;border:2px dotted red}.olControlOverviewMapRectReplacement{overflow:hidden;cursor:move;background-image:url(../../img/gis/openlayers/theme_default/overview_replacement.gif);background-repeat:no-repeat;background-position:center}.olLayerGeoRSSDescription{float:left;width:100%;overflow:auto;font-size:1.0em}.olLayerGeoRSSClose{float:right;color:gray;font-size:1.2em;margin-right:6px;font-family:sans-serif}.olLayerGeoRSSTitle{float:left;font-size:1.2em}.olPopupContent{padding:5px;overflow:auto}.olControlNavigationHistory{background-image:url(../../img/gis/openlayers/theme_default/navigation_history.png);background-repeat:no-repeat;width:24px;height:24px}.olControlNavigationHistoryPreviousItemActive{background-position:0 0}.olControlNavigationHistoryPreviousItemInactive{background-position:0 -24px}.olControlNavigationHistoryNextItemActive{background-position:-24px 0}.olControlNavigationHistoryNextItemInactive{background-position:-24px -24px}div.olControlSaveFeaturesItemActive{background-image:url(../../img/gis/openlayers/theme_default/save_features_on.png);background-repeat:no-repeat;background-position:0 1px}div.olControlSaveFeaturesItemInactive{background-image:url(../../img/gis/openlayers/theme_default/save_features_off.png);background-repeat:no-repeat;background-position:0 1px}.olHandlerBoxZoomBox{border:2px solid red;position:absolute;background-color:white;opacity:0.50;font-size:1px;filter:alpha(opacity=50)}.olHandlerBoxSelectFeature{border:2px solid blue;position:absolute;background-color:white;opacity:0.50;font-size:1px;filter:alpha(opacity=50)}.olControlPanPanel{top:10px;left:5px}.olControlPanPanel div{background-image:url(../../img/gis/openlayers/theme_default/pan-panel.png);height:18px;width:18px;cursor:pointer;position:absolute}.olControlPanPanel .olControlPanNorthItemInactive{top:0;left:9px;background-position:0 0}.olControlPanPanel .olControlPanSouthItemInactive{top:36px;left:9px;background-position:18px 0}.olControlPanPanel .olControlPanWestItemInactive{position:absolute;top:18px;left:0;background-position:0 18px}.olControlPanPanel .olControlPanEastItemInactive{top:18px;left:18px;background-position:18px 18px}.olControlZoomPanel{top:71px;left:14px}.olControlZoomPanel div{background-image:url(../../img/gis/openlayers/theme_default/zoom-panel.png);position:absolute;height:18px;width:18px;cursor:pointer}.olControlZoomPanel .olControlZoomInItemInactive{top:0;left:0;background-position:0 0}.olControlZoomPanel .olControlZoomToMaxExtentItemInactive{top:18px;left:0;background-position:0 -18px}.olControlZoomPanel .olControlZoomOutItemInactive{top:36px;left:0;background-position:0 18px}.olControlPanZoomBar div{font-size:1px}.olPopupCloseBox{background:url(../../img/gis/openlayers/theme_default/close.gif) no-repeat;cursor:pointer}.olFramedCloudPopupContent{padding:5px;overflow:auto}.olControlNoSelect{-moz-user-select:none;-khtml-user-select:none}.olImageLoadError{background-color:pink;opacity:0.5;filter:alpha(opacity=50)}.olCursorWait{cursor:wait}.olDragDown{cursor:move}.olDrawBox{cursor:crosshair}.olControlDragFeatureOver{cursor:move}.olControlDragFeatureActive.olControlDragFeatureOver.olDragDown{cursor:-moz-grabbing}.olControlLayerSwitcher{position:absolute;top:25px;right:0;width:20em;font-family:sans-serif;font-weight:bold;margin-top:3px;margin-left:3px;margin-bottom:3px;font-size:smaller;color:white;background-color:transparent}.olControlLayerSwitcher .layersDiv{padding-top:5px;padding-left:10px;padding-bottom:5px;padding-right:10px;background-color:darkblue}.olControlLayerSwitcher .layersDiv .baseLbl,.olControlLayerSwitcher .layersDiv .dataLbl{margin-top:3px;margin-left:3px;margin-bottom:3px}.olControlLayerSwitcher .layersDiv .baseLayersDiv,.olControlLayerSwitcher .layersDiv .dataLayersDiv{padding-left:10px}.olControlLayerSwitcher .maximizeDiv,.olControlLayerSwitcher .minimizeDiv{width:18px;height:18px;top:5px;right:0;cursor:pointer}.olBingAttribution{color:#DDD}.olBingAttribution.road{color:#333}.olGoogleAttribution.hybrid,.olGoogleAttribution.satellite{color:#EEE}.olGoogleAttribution{color:#333}span.olGoogleAttribution a{color:#77C}span.olGoogleAttribution.hybrid a,span.olGoogleAttribution.satellite a{color:#EEE}.olControlNavToolbar ,.olControlEditingToolbar{margin:5px 5px 0 0}.olControlNavToolbar div,.olControlEditingToolbar div{background-image:url(../../img/gis/openlayers/theme_default/editing_tool_bar.png);background-repeat:no-repeat;margin:0 0 5px 5px;width:24px;height:22px;cursor:pointer}.olControlEditingToolbar{right:0;top:0}.olControlNavToolbar{top:295px;left:9px}.olControlEditingToolbar div{float:right}.olControlNavToolbar .olControlNavigationItemInactive,.olControlEditingToolbar .olControlNavigationItemInactive{background-position:-103px -1px}.olControlNavToolbar .olControlNavigationItemActive ,.olControlEditingToolbar .olControlNavigationItemActive{background-position:-103px -24px}.olControlNavToolbar .olControlZoomBoxItemInactive{background-position:-128px -1px}.olControlNavToolbar .olControlZoomBoxItemActive{background-position:-128px -24px}.olControlEditingToolbar .olControlDrawFeaturePointItemInactive{background-position:-77px -1px}.olControlEditingToolbar .olControlDrawFeaturePointItemActive{background-position:-77px -24px}.olControlEditingToolbar .olControlDrawFeaturePathItemInactive{background-position:-51px -1px}.olControlEditingToolbar .olControlDrawFeaturePathItemActive{background-position:-51px -24px}.olControlEditingToolbar .olControlDrawFeaturePolygonItemInactive{background-position:-26px -1px}.olControlEditingToolbar .olControlDrawFeaturePolygonItemActive{background-position:-26px -24px}div.olControlZoom{position:absolute;top:8px;left:8px;background:rgba(255,255,255,0.4);border-radius:4px;padding:2px}div.olControlZoom a{display:block;margin:1px;padding:0;color:white;font-size:18px;font-family:'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;font-weight:bold;text-decoration:none;text-align:center;height:22px;width:22px;line-height:19px;background:#130085;background:rgba(0,60,136,0.5);filter:alpha(opacity=80)}div.olControlZoom a:hover{background:#130085;background:rgba(0,60,136,0.7);filter:alpha(opacity=100)}@media only screen and (max-width:600px){div.olControlZoom a:hover{background:rgba(0,60,136,0.5)}}a.olControlZoomIn{border-radius:4px 4px 0 0}a.olControlZoomOut{border-radius:0 0 4px 4px}.olLayerGrid .olTileImage{-webkit-transition:opacity 0.2s linear;-moz-transition:opacity 0.2s linear;-o-transition:opacity 0.2s linear;transition:opacity 0.2s linear}.olTileImage{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-o-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;-moz-perspective:1000;-ms-perspective:1000;perspective:1000}.olTileReplacing{display:none}img.olTileImage{max-width:none}@font-face{font-family:'zocial';font-style:normal;font-weight:normal;src:url('../../fonts/zocial-regular-webfont.eot');src:url('../../fonts/zocial-regular-webfont.eot?#iefix') format('embedded-opentype'),url('../../fonts/zocial-regular-webfont.woff') format('woff'),url('../../fonts/zocial-regular-webfont.ttf') format('truetype'),url('../../fonts/zocial-regular-webfont.svg#ZocialRegular') format('svg')}.zocial{border-bottom-color:rgba(0,0,0,0.4);border:1px solid rgba(0,0,0,0.2);color:#fff !important;-moz-box-shadow:inset 0 0.08em 0 rgba(255,255,255,0.5),inset 0 0 0.1em rgba(255,255,255,0.9);-webkit-box-shadow:inset 0 0.08em 0 rgba(255,255,255,0.5),inset 0 0 0.1em rgba(255,255,255,0.9);box-shadow:inset 0 0.08em 0 rgba(255,255,255,0.5),inset 0 0 0.1em rgba(255,255,255,0.9);cursor:pointer;display:inline-block;font-family:"Lucida Grande",Tahoma,sans-serif;font-style:normal !important;font-weight:bold !important;letter-spacing:0;padding:0;position:relative;text-align:center;text-decoration:none !important;text-shadow:0 1px 0 rgba(0,0,0,0.5);-moz-user-select:none !important;-webkit-user-select:none !important;user-select:none !important}.zocial > span:before{border-right:0.075em solid rgba(0,0,0,0.1);-moz-box-shadow:0.075em 0 0 rgba(255,255,255,0.25);-webkit-box-shadow:0.075em 0 0 rgba(255,255,255,0.25);box-shadow:0.075em 0 0 rgba(255,255,255,0.25);content:"";display:block;float:left;font-family:"zocial" !important;font-size:125% !important;line-height:1.65;font-style:normal !important;font-weight:normal !important;margin:0.1em 0.5em 0 0;padding:0 0.5em;text-align:center !important;text-decoration:none !important;text-transform:none !important}.zocial > span{display:block;font-size:80% !important;line-height:2.1;font-weight:bold;padding:0em 1em 0 0;white-space:nowrap}.zocial,.zocial > span{-moz-border-radius:0.2em;-webkit-border-radius:0.2em;border-radius:0.2em;position:relative;z-index:100}.zocial:active{outline:none}.zocial.icon{overflow:hidden;width:1.85em;height:1.85em}.zocial.icon > span:before{padding:0;width:1.85em;height:1.85em}.zocial > span{background:-moz-linear-gradient(top,rgba(255,255,255,0.1),rgba(255,255,255,0.05) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.1));background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0.1)),color-stop(49%,rgba(255,255,255,0.05)),color-stop(51%,rgba(0,0,0,0.05)),to(rgba(0,0,0,0.1)));background:-webkit-linear-gradient(top,rgba(255,255,255,0.1),rgba(255,255,255,0.05) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.1));background:-o-linear-gradient(top,rgba(255,255,255,0.1),rgba(255,255,255,0.05) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.1));background:-ms-linear-gradient(top,rgba(255,255,255,0.1),rgba(255,255,255,0.05) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.1));background:linear-gradient(top,rgba(255,255,255,0.1),rgba(255,255,255,0.05) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.1))}.zocial:hover > span,.zocial:focus > span{background:-moz-linear-gradient(top,rgba(255,255,255,0.15),rgba(255,255,255,0.15) 49%,rgba(0,0,0,0.1) 51%,rgba(0,0,0,0.15));background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0.15)),color-stop(49%,rgba(255,255,255,0.15)),color-stop(51%,rgba(0,0,0,0.1)),to(rgba(0,0,0,0.15)));background:-webkit-linear-gradient(top,rgba(255,255,255,0.15),rgba(255,255,255,0.15) 49%,rgba(0,0,0,0.1) 51%,rgba(0,0,0,0.15));background:-o-linear-gradient(top,rgba(255,255,255,0.15),rgba(255,255,255,0.15) 49%,rgba(0,0,0,0.1) 51%,rgba(0,0,0,0.15));background:-ms-linear-gradient(top,rgba(255,255,255,0.15),rgba(255,255,255,0.15) 49%,rgba(0,0,0,0.1) 51%,rgba(0,0,0,0.15));background:linear-gradient(top,rgba(255,255,255,0.15),rgba(255,255,255,0.15) 49%,rgba(0,0,0,0.1) 51%,rgba(0,0,0,0.15))}.zocial:active > span{background:-moz-linear-gradient(bottom,rgba(255,255,255,0.1),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0.1)),color-stop(30%,rgba(255,255,255,0)),color-stop(50%,rgba(0,0,0,0)),to(rgba(0,0,0,0.1)));background:-webkit-linear-gradient(bottom,rgba(255,255,255,0.1),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:-o-linear-gradient(bottom,rgba(255,255,255,0.1),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:-ms-linear-gradient(bottom,rgba(255,255,255,0.1),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:linear-gradient(bottom,rgba(255,255,255,0.1),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1))}.zocial.bitcoin,.zocial.cloudapp,.zocial.dropbox,.zocial.email,.zocial.github,.zocial.gmail,.zocial.instapaper,.zocial.itunes,.zocial.ninetyninedesigns,.zocial.openid,.zocial.plancast,.zocial.posterous,.zocial.secondary,.zocial.viadeo,.zocial.weibo,.zocial.wikipedia{border:1px solid rgba(0,0,0,0.3);border-bottom-color:rgba(0,0,0,0.5);-moz-box-shadow:inset 0 0.08em 0 rgba(255,255,255,0.7),inset 0 0 0.08em rgba(255,255,255,0.5);-webkit-box-shadow:inset 0 0.08em 0 rgba(255,255,255,0.7),inset 0 0 0.08em rgba(255,255,255,0.5);box-shadow:inset 0 0.08em 0 rgba(255,255,255,0.7),inset 0 0 0.08em rgba(255,255,255,0.5);text-shadow:0 1px 0 rgba(255,255,255,0.8)}.zocial.bitcoin:focus > span,.zocial.bitcoin:hover > span,.zocial.dropbox:focus > span,.zocial.dropbox:hover > span,.zocial.email:focus > span,.zocial.email:hover > span,.zocial.github:focus > span,.zocial.github:hover > span,.zocial.gmail:focus > span,.zocial.gmail:hover > span,.zocial.instapaper:focus > span,.zocial.instapaper:hover > span,.zocial.itunes:focus > span,.zocial.itunes:hover > span,.zocial.ninetyninedesigns:focus > span,.zocial.ninetyninedesigns:hover > span,.zocial.openid:focus > span,.zocial.openid:hover > span,.zocial.plancast:focus > span,.zocial.plancast:hover > span,.zocial.posterous:focus > span,.zocial.posterous:hover > span,.zocial.secondary:focus > span,.zocial.secondary:hover > span,.zocial.twitter:focus > span,.zocial.viadeo:focus > span,.zocial.viadeo:hover > span,.zocial.weibo:focus > span,.zocial.weibo:hover > span,.zocial.wikipedia:focus > span,.zocial.wikipedia:hover > span{background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0.5)),color-stop(49%,rgba(255,255,255,0.2)),color-stop(51%,rgba(0,0,0,0.05)),to(rgba(0,0,0,0.15)));background:-moz-linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15));background:-webkit-linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15));background:-o-linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15));background:-ms-linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15));background:linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15))}.zocial.bitcoin:active > span,.zocial.dropbox:active > span,.zocial.email:active > span,.zocial.github:active > span,.zocial.gmail:active > span,.zocial.instapaper:active > span,.zocial.itunes:active > span,.zocial.ninetyninedesigns:active > span,.zocial.openid:active > span,.zocial.plancast:active > span,.zocial.posterous:active > span,.zocial.secondary:active > span,.zocial.viadeo:active > span,.zocial.weibo:active > span,.zocial.wikipedia:active > span{background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0)),color-stop(30%,rgba(255,255,255,0)),color-stop(50%,rgba(0,0,0,0)),to(rgba(0,0,0,0.1)));background:-moz-linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:-webkit-linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:-o-linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:-ms-linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1))}.zocial.amazon > span:before{content:"a"}.zocial.android > span:before{content:"&"}.zocial.aol > span:before{content:"\""}.zocial.appstore > span:before{content:"A"}.zocial.bitcoin > span:before{content:"2";color:#f7931a !important}.zocial.blogger > span:before{content:"B"}.zocial.call > span:before{content:"7"}.zocial.chrome > span:before{content:"["}.zocial.cloudapp > span:before{content:"c"}.zocial.creativecommons > span:before{content:"C"}.zocial.disqus > span:before{content:"Q"}.zocial.dribbble > span:before{content:"D"}.zocial.dropbox > span:before{content:"d";color:#1f75cc !important}.zocial.email > span:before{content:"]";color:#312c2a !important}.zocial.eventasaurus > span:before{content:"v"}.zocial.eventbrite > span:before{content:"|"}.zocial.evernote > span:before{content:"E"}.zocial.facebook > span:before{content:"f"}.zocial.fivehundredpx > span:before{content:"0";color:#29b6ff !important}.zocial.flattr > span:before{content:"%"}.zocial.forrst > span:before{content:":";color:#50894f !important}.zocial.foursquare > span:before{content:"4"}.zocial.github > span:before{content:"g"}.zocial.gmail > span:before{content:"m";color:#f00 !important}.zocial.google > span:before{content:"G"}.zocial.googleplus > span:before{content:"+"}.zocial.gowalla > span:before{content:"@"}.zocial.grooveshark > span:before{content:"K"}.zocial.guest > span:before{content:"?"}.zocial.html5 > span:before{content:"5"}.zocial.ie > span:before{content:"6"}.zocial.instapaper > span:before{content:"I"}.zocial.intensedebate > span:before{content:"{"}.zocial.itunes > span:before{content:"i";color:#1a6dd2 !important}.zocial.lastfm > span:before{content:"l"}.zocial.linkedin > span:before{content:"L"}.zocial.macstore > span:before{content:"^"}.zocial.meetup > span:before{content:"M"}.zocial.myspace > span:before{content:"_"}.zocial.ninetyninedesigns > span:before{content:"9";color:#f50 !important}.zocial.openid > span:before{content:"o";color:#ff921d !important}.zocial.paypal > span:before{content:"$"}.zocial.pinboard > span:before{content:"n"}.zocial.pinterest > span:before{content:"1"}.zocial.plancast > span:before{content:"P"}.zocial.plurk > span:before{content:"j"}.zocial.podcast > span:before{content:"`"}.zocial.posterous > span:before{content:"~"}.zocial.quora > span:before{content:"q"}.zocial.rss > span:before{content:"R"}.zocial.scribd > span:before{content:"}";color:#00d5ea !important}.zocial.skype > span:before{content:"S"}.zocial.smashing > span:before{content:"*"}.zocial.songkick > span:before{content:"k"}.zocial.soundcloud > span:before{content:"s"}.zocial.spotify > span:before{content:"="}.zocial.stumbleupon > span:before{content:"/"}.zocial.tumblr > span:before{content:"t"}.zocial.twitter > span:before{content:"T"}.zocial.viadeo > span:before{content:"H";color:#f59b20 !important}.zocial.vimeo > span:before{content:"V"}.zocial.weibo > span:before{content:"J";color:#e6162d !important}.zocial.wikipedia > span:before{content:","}.zocial.windows > span:before{content:"W"}.zocial.wordpress > span:before{content:"w"}.zocial.yahoo > span:before{content:"Y"}.zocial.yelp > span:before{content:"y"}.zocial.youtube > span:before{content:"U"}.zocial.amazon{background:#ffad1d;color:#030037 !important;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.zocial.android{background:#a4c639}.zocial.aol{background:#f00}.zocial.appstore{background:#000}.zocial.bitcoin{background:#efefef;color:#4d4d4d !important}.zocial.blogger{background:#ee5a22}.zocial.call{background:#008000}.zocial.chrome{background:#006cd4}.zocial.cloudapp{background:#fff;color:#312c2a !important}.zocial.creativecommons{background:#000}.zocial.disqus{background:#5d8aad}.zocial.dribbble{background:#ea4c89}.zocial.dropbox{background:#fff;color:#312c2a !important}.zocial.email{background:#f0f0eb;color:#312c2a !important}.zocial.eventasaurus{background:#8ccc33}.zocial.eventbrite{background:#ff5616}.zocial.evernote{background:#6bb130;color:#fff !important}.zocial.facebook{background:#4863ae}.zocial.fivehundredpx{background:#333}.zocial.flattr{background:#8aba42}.zocial.forrst{background:#1e360d}.zocial.foursquare{background:#44a8e0}.zocial.github{background:#fbfbfb;color:#050505 !important}.zocial.gmail{background:#efefef;color:#222 !important}.zocial.google{background:#4e6cf7}.zocial.googleplus{background:#dd4b39}.zocial.gowalla{background:#ff720a}.zocial.grooveshark{background:#111;color:#eee !important}.zocial.guest{background:#1b4d6d}.zocial.html5{background:#ff3617}.zocial.ie{background:#00a1d9}.zocial.instapaper{background:#eee;color:#222 !important}.zocial.intensedebate{background:#0099e1}.zocial.itunes{background:#efefeb;color:#312c2a !important}.zocial.lastfm{background:#dc1a23}.zocial.linkedin{background:#0083a8}.zocial.macstore{background:#007dcb}.zocial.meetup{background:#ff0026}.zocial.myspace{background:#000}.zocial.ninetyninedesigns{background:#fff;color:#072243 !important}.zocial.openid{background:#f5f5f5;color:#333 !important}.zocial.paypal{background:#ff921d;color:#032751 !important;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.zocial.pinboard{background:blue}.zocial.pinterest{background:#c91618}.zocial.plancast{background:#e7ebed;color:#333 !important}.zocial.plurk{background:#cf682f}.zocial.podcast{background:#9365ce}.zocial.posterous{background:#ffd959;color:#bc7134 !important}.zocial.quora{background:#a82400}.zocial.rss{background:#ff7f25}.zocial.scribd{background:#231c1a}.zocial.skype{background:#00a2ed}.zocial.smashing{background:#ff4f27}.zocial.songkick{background:#ff0050}.zocial.soundcloud{background:#ff4500}.zocial.spotify{background:#60af00}.zocial.stumbleupon{background:#eb4924}.zocial.tumblr{background:#374a61}.zocial.twitter{background:#46c0fb}.zocial.viadeo{background:#fff;color:#000 !important}.zocial.vimeo{background:#00a2cd}.zocial.weibo{background:#faf6f1;color:#000 !important}.zocial.wikipedia{background:#fff;color:#000 !important}.zocial.windows{background:#0052a4;color:#FFF !important}.zocial.wordpress{background:#464646}.zocial.yahoo{background:#a200c2}.zocial.yelp{background:#e60010}.zocial.youtube{background:#f00}.zocial.primary > span,.zocial.secondary > span{margin:0.1em 0;padding:0 1em}.zocial.primary > span:before,.zocial.secondary > span:before{display:none}.zocial.primary{background:#333}.zocial.secondary{background:#f0f0eb;color:#222 !important;text-shadow:0 1px 0 rgba(255,255,255,0.8)}.zocial.humanitarianid > span:before{content:url(../../img/humanitarianid.png);height:24px;padding-top:3px}.zocial.humanitarianid{background:##e2e2e2;color:#2a5d81 !important}.zocial.humanitarianid{border:1px solid rgba(0,0,0,0.3);border-bottom-color:rgba(0,0,0,0.5);-moz-box-shadow:inset 0 0.08em 0 rgba(255,255,255,0.7),inset 0 0 0.08em rgba(255,255,255,0.5);-webkit-box-shadow:inset 0 0.08em 0 rgba(255,255,255,0.7),inset 0 0 0.08em rgba(255,255,255,0.5);box-shadow:inset 0 0.08em 0 rgba(255,255,255,0.7),inset 0 0 0.08em rgba(255,255,255,0.5);text-shadow:0 1px 0 rgba(255,255,255,0.8)}.zocial.humanitarianid:hover > span,.zocial.humanitarianid:focus > span{background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0.5)),color-stop(49%,rgba(255,255,255,0.2)),color-stop(51%,rgba(0,0,0,0.05)),to(rgba(0,0,0,0.15)));background:-moz-linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15));background:-webkit-linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15));background:-o-linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15));background:-ms-linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15));background:linear-gradient(top,rgba(255,255,255,0.5),rgba(255,255,255,0.2) 49%,rgba(0,0,0,0.05) 51%,rgba(0,0,0,0.15))}.zocial.humanitarianid:active > span{background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0)),color-stop(30%,rgba(255,255,255,0)),color-stop(50%,rgba(0,0,0,0)),to(rgba(0,0,0,0.1)));background:-moz-linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:-webkit-linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:-o-linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:-ms-linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1));background:linear-gradient(bottom,rgba(255,255,255,0),rgba(255,255,255,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.1))}button::-moz-focus-inner{border:0;padding:0}.embeddedComponent .map_wrapper{min-width:350px}.map_wrapper{position:relative;overflow:hidden;clear:right}.map_wrapper.fullscreen{overflow:visible}.gis_west .x-panel-body{overflow-y:auto}.map_loader{margin-top:50px;margin-left:auto;margin-right:auto}form .map_loader{margin-top:0}.x-form-item-label{margin:0 0 0 4px}body.x-window-maximized-ct{width:100%}.form-container form tr.x-toolbar-left-row td{padding:0}.map_home{margin:0 0 0 -12px}.map_home .gis_fullscreen_map-btn{font-weight:bold;padding-left:8px}body.rtl .map_home .gis_fullscreen_map-btn{float:left}.gis_print_map-btn{font-weight:bold;float:right;padding-right:8px}.notitle .ui-dialog-titlebar{background-image:none !important;border:0;padding:0}.notitle .ui-dialog-title{margin:0;padding:0}.notitle .ui-dialog-titlebar-close{margin-top:-10px}.gis-map-window.x-resizable-pinned .x-window-tl{height:0}.form-container form button.gis_loc_select_btn{padding:4px}.form-container form button.gis_loc_select_btn i.icon-map{padding-right:2px}.gis-display-feature i.icon-map-marker{cursor:pointer;cursor:hand;padding-left:5px}.embeddedComponent .map_wrapper{width:100%}.gis_coord_wrap .decimal{width:174px}.gis_coord_wrap .gis_coord_dms input{width:37px}.gis_coord_wrap .gis_coord_dms input.seconds{width:70px}.gis_coord_wrap div{padding-top:8px}.x-tree-elbow,.x-tree-elbow-end,.x-tree-node-icon{display:none}.x-tree-node-anchor{padding-left:5px;padding-right:5px}.x-tree-node{font-size:12px}.x-tree-node-leaf{margin-left:10px}.x-tree-root-ct,.x-tree-node-ct{margin:0}.map_legend_div{position:absolute;bottom:0;right:0}.map_wrapper.fullscreen .map_legend_div{z-index:9100}.map_wrapper.a4 .map_legend_div{margin-bottom:-440px}.map_wrapper.a3 .map_legend_div{margin-bottom:-687px;right:-140px}.map_wrapper.a2 .map_legend_div{margin-bottom:-1036px;right:-530px}.map_wrapper.a1 .map_legend_div{margin-bottom:-1529px;right:-2130px}.map_wrapper.a0 .map_legend_div{margin-bottom:-2229px;right:-3125px}.map_legend_panel{background-color:#fbfbfb;border:solid;border-radius:5px 0 0 5px;padding:1px;margin:0 0 20px;width:auto;max-width:800px;max-height:500px;overflow-y:auto;border-right:none}.map_legend_panel .x-panel-header-noborder{border:none}.map_legend_tab{background-color:#fbfbfb;border:solid;border-width:2px;margin-top:5px;font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;float:left;border-radius:3px 0 3px 3px;border-right:none;border-right-width:0;margin-right:-6px;margin-left:-12px;padding-left:2px;padding-right:3px}.map_legend_tab:before{text-decoration:inherit;display:inline-block;speak:none}.map_legend_tab.left:before{content:"\f100"}.map_legend_tab.right:before{content:"\f101"}.map_wrapper.print .map_legend_tab{height:0}.map_wrapper.print .map_legend_tab.right:before,.map_wrapper.print .map_legend_tab.left:before{content:normal}.gis_legend_title{font-weight:bold;margin-top:10px}.gis_legend_desc{max-width:200px}.layer_throbber.float{position:absolute;top:10px;right:10px}.layer_throbber.save{top:65px}.map_polygon_panel{background-color:#fbfbfb;position:absolute;top:10px;height:125px;width:350px;margin-left:-175px;left:50%;border:solid;border-radius:2px;border-width:1px;font-size:small;text-align:center;padding:12px}.map_polygon_buttons{font-size:0.75rem;margin-top:12px;text-transform:uppercase}.button.map_polygon_finish{margin-right:12px}.map_save_panel{background-color:#fbfbfb;position:absolute;top:0;right:0;margin:10px 0;padding:5px;border:solid;border-radius:5px 0 0 5px;width:auto}.map_wrapper.fullscreen .map_save_panel{z-index:9100;margin-top:-100px}.map_wrapper.print .map_save_button{height:0;width:0;visibility:hidden}.map_save_panel.off{visibility:hidden}.map_save_button{background-color:#fbfbfb;padding:5px;border:solid;border-radius:5px 5px 5px 5px;width:auto;cursor:pointer;visibility:visible;float:right}.map_save_name{font-weight:bold;text-align:center;padding:5px;margin-top:2px}.map_save_panel input{width:150px;margin-top:1px;margin-right:5px}.map_save_panel input.checkbox{width:10px;margin:0 5px 0 0}.map_save_panel .new_map{font-size:small}.map_save_panel .saved{float:left}.map_save_panel p{float:left;padding:5px;color:green;margin:0}#config-gis_config_pe_id-options-filter__row .s3-groupedopts-option{display:none}#config-gis_config_pe_id-options-filter__row .s3-groupedopts-widget td:first-child{border-right:solid 1px;padding-right:10px}.olControlMousePosition{font-size:10px;background-color:white}.crosshair{cursor:crosshair}.olLayerGoogleCopyright{right:3px;bottom:2px;left:auto}.olLayerGooglePoweredBy{left:2px;bottom:2px}.olForeignContainer div.olControlMousePosition{bottom:28px}.gis_tooltip{opacity:0.7 !important}.gis_tooltip_content{overflow:hidden;padding:3px;margin:10px}.olPopup #plain{max-width:450px}.olPopupCloseBox{margin-right:15px;margin-top:-8px}.olFramedCloudPopupContent label{padding-right:5px}.gis-map-window .olFramedCloudPopupContent td{padding:2px}.gis_popup_row{display:table-row}.gis_popup_label{display:table-cell;font-weight:bold;text-align:right;padding-right:2px}.gis_popup_val{display:table-cell}#georsspopup h2,#kmlpopup h2{margin:0}.gx-popup-anc{background:transparent url(../../img/gis/geoext/anchor.png) no-repeat 0 0;position:relative;top:-1px;left:5px;z-index:2;height:16px;width:31px}.gx-ruledrag-insert-below{border-bottom:1px dotted}.gx-ruledrag-insert-above{border-top:1px dotted}.mappnlcntr .zoomfull{background-image:url(../../img/gis/mapfish/icon_zoomfull.png) !important;height:20px !important;width:20px !important}.mappnlcntr .zoomin{background-image:url(../../img/gis/mapfish/icon_zoomin.png) !important;height:20px !important;width:20px !important}.mappnlcntr .zoomout{background-image:url(../../img/gis/mapfish/icon_zoomout.png) !important;height:20px !important;width:20px !important}.mappnlcntr .pan-off{background-image:url(../../img/gis/mapfish/icon_pan.png) !important;height:20px !important;width:20px !important}.mappnlcntr .measure-off{background-image:url(../../img/gis/measuring-stick-off.png) !important;height:20px !important;width:20px !important}.mappnlcntr .measure-area{background-image:url(../../img/gis/measure-area-off.png) !important;height:20px !important;width:20px !important}.mappnlcntr .modifyfeature{background-image:url(../../img/gis/mapfish/move_vertex_off.png) !important;height:20px !important;width:20px !important}.mappnlcntr .drawpoint-off{background-image:url(../../img/gis/add_point_off.png) !important;height:20px !important;width:20px !important}.mappnlcntr .drawline-off{background-image:url(../../img/gis/mapfish/draw_line_off.png) !important;height:20px !important;width:20px !important}.mappnlcntr .drawpolygon-off{background-image:url(../../img/gis/mapfish/draw_polygon_off.png) !important;height:20px !important;width:20px !important}.mappnlcntr .drawpolygonclear-off{background-image:url(../../img/gis/mapfish/draw_polygon_clear_off.png) !important;height:20px !important;width:20px !important}.mappnlcntr .drawcircle-on{background-image:url(../../img/draw_circle_on.png) !important;height:20px !important;width:20px !important}.mappnlcntr .info{background-image:url(../../img/gis/mapfish/info.png) !important;height:20px !important;width:20px !important}.mappnlcntr .searchclick{background-image:url(../../img/ext/information.png) !important;height:20px !important;width:20px !important}.mappnlcntr .searchbox{background-image:url(../../img/ext/information-box.png) !important;height:20px !important;width:20px !important}.mappnlcntr .back{background-image:url(../../img/gis/mapfish/resultset_previous.png) !important;height:20px !important;width:20px !important}.mappnlcntr .next{background-image:url(../../img/gis/mapfish/resultset_next.png) !important;height:20px !important;width:20px !important}.mappnlcntr .print{background-image:url(../../img/silk/printer.png) !important;height:20px !important;width:20px !important}.mappnlcntr .save{background-image:url(../../img/ext/save.gif) !important;height:20px !important;width:20px !important}.x-btn-text.geolocation{background-image:url(../../img/gis/geolocation.png) !important;height:20px !important;width:20px !important}.x-btn-text.potlatch{background-image:url(../../img/gis/openstreetmap.png) !important;height:20px !important;width:20px !important}.x-btn-text.streetview{background-image:url(../../img/gis/streetview.png) !important;height:20px !important;width:20px !important}.gxp-icon-addlayers{background-image:url(../../img/silk/add.png) !important}.gxp-icon-addserver{background-image:url(../../img/silk/server_add.png) !important}.gxp-icon-getfeatureinfo{background-image:url(../../img/silk/information.png) !important}.gxp-icon-removelayers{background-image:url(../../img/silk/delete.png) !important}.gxp-icon-layerproperties{background-image:url(../../img/silk/wrench.png) !important}.icon-clearlayers{background-image:url(../../img/silk/eye.png)}.mappnlcntr .movefeature{background-image:url(../../img/gis/arrow_refresh.png) !important;height:20px !important;width:20px !important}.mappnlcntr .removefeature{background-image:url(../../img/gis/remove_point_off.png) !important;height:20px !important;width:20px !important}.mappnlcntr .resizefeature{background-image:url(../../img/gis/resize.png) !important;height:20px !important;width:20px !important}.mappnlcntr .rotatefeature{background-image:url(../../img/gis/arrow_rotate_clockwise.png) !important;height:20px !important;width:20px !important}.gis-map-window table,.map_wrapper table{background:none;border:none;margin-bottom:0}.gis-map-window table tr:nth-of-type(2n),.map_wrapper table tr:nth-of-type(2n){background-color:inherit}.gis-map-window table tr th,.gis-map-window table tr td,.map_wrapper table tr th,.map_wrapper table tr td{color:inherit;font-size:inherit;padding:0}.gis-map-window input[type="text"],.gis-map-window input[type="checkbox"],.gis-map-window input[type="radio"],.map_wrapper input[type="text"],.map_wrapper input[type="checkbox"],.map_wrapper input[type="radio"]{margin:0;padding:0}.x-form-element input[type="text"]{display:inline;font-size:inherit;margin:0;padding:0}.map_legend_tab.right{float:left !important}#contents .map_wrapper a:not(.action-btn):not(.delete-btn){text-decoration:none}@charset "UTF-8";@media print{body{ background:transparent;color:black;font-family:"Georgia",Times New Roman,Serif;font-size:12pt} #menu_modules,#menu_options,#footer,#rheader_tabs,#searchCombo{display:none} #content{background-color:transparent;width:100%;float:none !important;border:0;border-radius:0;margin:0;padding:0} #content h1,#content h2{background:white;color:black;font-size:16pt;border:0;border-radius:0;margin:0} #content h3{background:white;color:black;font-size:14pt;margin:0} a{color:black;background:transparent;text-decoration:underline} #comments{page-break-before:always} *{background:transparent !important;color:#444 !important;text-shadow:none !important} a,a:visited{color:#444 !important;text-decoration:underline} a:after{content:" (" attr(href) ")"} abbr:after{content:" (" attr(title) ")"} .ir a:after{content:""} pre,blockquote{border:1px solid #999;page-break-inside:avoid} thead{display:table-header-group} tr,img{page-break-inside:avoid} @page{margin:0.5cm} p,h2,h3{orphans:3;widows:3} h2,h3{page-break-after:avoid}}.nvd3 .nv-axis{pointer-events:none;opacity:1}.nvd3 .nv-axis path{fill:none;stroke:#000;stroke-opacity:.75;shape-rendering:crispEdges}.nvd3 .nv-axis path.domain{stroke-opacity:.75}.nvd3 .nv-axis.nv-x path.domain{stroke-opacity:0}.nvd3 .nv-axis line{fill:none;stroke:#e5e5e5;shape-rendering:crispEdges}.nvd3 .nv-axis .zero line,.nvd3 .nv-axis line.zero{stroke-opacity:.75}.nvd3 .nv-axis .nv-axisMaxMin text{font-weight:bold}.nvd3 .x .nv-axis .nv-axisMaxMin text,.nvd3 .x2 .nv-axis .nv-axisMaxMin text,.nvd3 .x3 .nv-axis .nv-axisMaxMin text{text-anchor:middle}.nvd3 .nv-axis.nv-disabled{opacity:0}.nvd3 .nv-bars rect{fill-opacity:.75;transition:fill-opacity 250ms linear}.nvd3 .nv-bars rect.hover{fill-opacity:1}.nvd3 .nv-bars .hover rect{fill:lightblue}.nvd3 .nv-bars text{fill:rgba(0,0,0,0)}.nvd3 .nv-bars .hover text{fill:rgba(0,0,0,1)}.nvd3 .nv-multibar .nv-groups rect,.nvd3 .nv-multibarHorizontal .nv-groups rect,.nvd3 .nv-discretebar .nv-groups rect{stroke-opacity:0;transition:fill-opacity 250ms linear}.nvd3 .nv-multibar .nv-groups rect:hover,.nvd3 .nv-multibarHorizontal .nv-groups rect:hover,.nvd3 .nv-candlestickBar .nv-ticks rect:hover,.nvd3 .nv-discretebar .nv-groups rect:hover{fill-opacity:1}.nvd3 .nv-discretebar .nv-groups text,.nvd3 .nv-multibarHorizontal .nv-groups text{font-weight:bold;fill:rgba(0,0,0,1);stroke:rgba(0,0,0,0)}.nvd3 .nv-boxplot circle{fill-opacity:0.5}.nvd3 .nv-boxplot circle:hover{fill-opacity:1}.nvd3 .nv-boxplot rect:hover{fill-opacity:1}.nvd3 line.nv-boxplot-median{stroke:black}.nv-boxplot-tick:hover{stroke-width:2.5px}.nvd3.nv-bullet{font:10px sans-serif}.nvd3.nv-bullet .nv-measure{fill-opacity:.8}.nvd3.nv-bullet .nv-measure:hover{fill-opacity:1}.nvd3.nv-bullet .nv-marker{stroke:#000;stroke-width:2px}.nvd3.nv-bullet .nv-markerTriangle{stroke:#000;fill:#fff;stroke-width:1.5px}.nvd3.nv-bullet .nv-markerLine{stroke:#000;stroke-width:1.5px}.nvd3.nv-bullet .nv-tick line{stroke:#666;stroke-width:.5px}.nvd3.nv-bullet .nv-range.nv-s0{fill:#eee}.nvd3.nv-bullet .nv-range.nv-s1{fill:#ddd}.nvd3.nv-bullet .nv-range.nv-s2{fill:#ccc}.nvd3.nv-bullet .nv-title{font-size:14px;font-weight:bold}.nvd3.nv-bullet .nv-subtitle{fill:#999}.nvd3.nv-bullet .nv-range{fill:#bababa;fill-opacity:.4}.nvd3.nv-bullet .nv-range:hover{fill-opacity:.7}.nvd3.nv-candlestickBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.positive rect{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.negative rect{stroke:#d62728;fill:#d62728}.with-transitions .nv-candlestickBar .nv-ticks .nv-tick{transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-candlestickBar .nv-ticks line{stroke:#333}.nv-force-node{stroke:#fff;stroke-width:1.5px}.nv-force-link{stroke:#999;stroke-opacity:.6}.nv-force-node text{stroke-width:0px}.nvd3 .nv-legend .nv-disabled rect{}.nvd3 .nv-check-box .nv-box{fill-opacity:0;stroke-width:2}.nvd3 .nv-check-box .nv-check{fill-opacity:0;stroke-width:4}.nvd3 .nv-series.nv-disabled .nv-check-box .nv-check{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-controlsWrap .nv-legend .nv-check-box .nv-check{opacity:0}.nvd3.nv-linePlusBar .nv-bar rect{fill-opacity:.75}.nvd3.nv-linePlusBar .nv-bar rect:hover{fill-opacity:1}.nvd3 .nv-groups path.nv-line{fill:none}.nvd3 .nv-groups path.nv-area{stroke:none}.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point{fill-opacity:0;stroke-opacity:0}.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point{fill-opacity:.5 !important;stroke-opacity:.5 !important}.with-transitions .nvd3 .nv-groups .nv-point{transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-scatter .nv-groups .nv-point.hover,.nvd3 .nv-groups .nv-point.hover{stroke-width:7px;fill-opacity:.95 !important;stroke-opacity:.95 !important}.nvd3 .nv-point-paths path{stroke:#aaa;stroke-opacity:0;fill:#eee;fill-opacity:0}.nvd3 .nv-indexLine{cursor:ew-resize}svg.nvd3-svg{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block;width:100%;height:100%}.nvtooltip.with-3d-shadow,.with-3d-shadow .nvtooltip{box-shadow:0 5px 10px rgba(0,0,0,.2);border-radius:5px}.nvd3 text{font:normal 12px Arial,sans-serif}.nvd3 .title{font:bold 14px Arial,sans-serif}.nvd3 .nv-background{fill:white;fill-opacity:0}.nvd3.nv-noData{font-size:18px;font-weight:bold}.nv-brush .extent{fill-opacity:.125;shape-rendering:crispEdges}.nv-brush .resize path{fill:#eee;stroke:#666}.nvd3 .nv-legend .nv-series{cursor:pointer}.nvd3 .nv-legend .nv-disabled circle{fill-opacity:0}.nvd3 .nv-brush .extent{fill-opacity:0 !important}.nvd3 .nv-brushBackground rect{stroke:#000;stroke-width:.4;fill:#fff;fill-opacity:.7}@media print{.nvd3 text{stroke-width:0;fill-opacity:1}}.nvd3.nv-ohlcBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive{stroke:#2ca02c}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative{stroke:#d62728}.nvd3 .background path{fill:none;stroke:#EEE;stroke-opacity:.4;shape-rendering:crispEdges}.nvd3 .foreground path{fill:none;stroke-opacity:.7}.nvd3 .nv-parallelCoordinates-brush .extent{fill:#fff;fill-opacity:.6;stroke:gray;shape-rendering:crispEdges}.nvd3 .nv-parallelCoordinates .hover{fill-opacity:1;stroke-width:3px}.nvd3 .missingValuesline line{fill:none;stroke:black;stroke-width:1;stroke-opacity:1;stroke-dasharray:5,5}.nvd3.nv-pie path{stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-pie .nv-pie-title{font-size:24px;fill:rgba(19,196,249,0.59)}.nvd3.nv-pie .nv-slice text{stroke:#000;stroke-width:0}.nvd3.nv-pie path{stroke:#fff;stroke-width:1px;stroke-opacity:1}.nvd3.nv-pie path{fill-opacity:.7}.nvd3.nv-pie .hover path{fill-opacity:1}.nvd3.nv-pie .nv-label{pointer-events:none}.nvd3.nv-pie .nv-label rect{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-groups .nv-point.hover{stroke-width:20px;stroke-opacity:.5}.nvd3 .nv-scatter .nv-point.hover{fill-opacity:1}.nv-noninteractive{pointer-events:none}.nv-distx,.nv-disty{pointer-events:none}.nvd3.nv-sparkline path{fill:none}.nvd3.nv-sparklineplus g.nv-hoverValue{pointer-events:none}.nvd3.nv-sparklineplus .nv-hoverValue line{stroke:#333;stroke-width:1.5px}.nvd3.nv-sparklineplus,.nvd3.nv-sparklineplus g{pointer-events:all}.nvd3 .nv-hoverArea{fill-opacity:0;stroke-opacity:0}.nvd3.nv-sparklineplus .nv-xValue,.nvd3.nv-sparklineplus .nv-yValue{stroke-width:0;font-size:.9em;font-weight:normal}.nvd3.nv-sparklineplus .nv-yValue{stroke:#f66}.nvd3.nv-sparklineplus .nv-maxValue{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-sparklineplus .nv-minValue{stroke:#d62728;fill:#d62728}.nvd3.nv-sparklineplus .nv-currentValue{font-weight:bold;font-size:1.1em}.nvd3.nv-stackedarea path.nv-area{fill-opacity:.7;stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-stackedarea path.nv-area.hover{fill-opacity:.9}.nvd3.nv-stackedarea .nv-groups .nv-point{stroke-opacity:0;fill-opacity:0}.nvtooltip{position:absolute;background-color:rgba(255,255,255,1.0);color:rgba(0,0,0,1.0);padding:1px;border:1px solid rgba(0,0,0,.2);z-index:10000;display:block;font-family:Arial,sans-serif;font-size:13px;text-align:left;pointer-events:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.nvtooltip{background:rgba(255,255,255,0.8);border:1px solid rgba(0,0,0,0.5);border-radius:4px}.nvtooltip.with-transitions,.with-transitions .nvtooltip{transition:opacity 50ms linear;transition-delay:200ms}.nvtooltip.x-nvtooltip,.nvtooltip.y-nvtooltip{padding:8px}.nvtooltip h3{margin:0;padding:4px 14px;line-height:18px;font-weight:normal;background-color:rgba(247,247,247,0.75);color:rgba(0,0,0,1.0);text-align:center;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.nvtooltip p{margin:0;padding:5px 14px;text-align:center}.nvtooltip span{display:inline-block;margin:2px 0}.nvtooltip table{margin:6px;border-spacing:0}.nvtooltip table td{padding:2px 9px 2px 0;vertical-align:middle}.nvtooltip table td.key{font-weight:normal}.nvtooltip table td.key.total{font-weight:bold}.nvtooltip table td.value{text-align:right;font-weight:bold}.nvtooltip table td.percent{color:darkgray}.nvtooltip table tr.highlight td{padding:1px 9px 1px 0;border-bottom-style:solid;border-bottom-width:1px;border-top-style:solid;border-top-width:1px}.nvtooltip table td.legend-color-guide div{width:8px;height:8px;vertical-align:middle}.nvtooltip table td.legend-color-guide div{width:12px;height:12px;border:1px solid #999}.nvtooltip .footer{padding:3px;text-align:center}.nvtooltip-pending-removal{pointer-events:none;display:none}.nvd3 .nv-interactiveGuideLine{pointer-events:none}.nvd3 line.nv-guideline{stroke:#ccc}@font-face{font-family:'DRMP';src:url('../../fonts/DRMP.eot');src:url('../../fonts/DRMP.eot?#iefix') format('embedded-opentype'),url('../../fonts/DRMP.woff') format('woff'),url('../../fonts/DRMP.ttf') format('truetype'),url('../../fonts/DRMP.svg#DRMP') format('svg');font-weight:normal;font-style:normal}.icon-activity,.icon-alert,.icon-assessment,.icon-event,.icon-incident,.icon-map,.icon-news,.icon-plan,.icon-project,.icon-report,.icon-training_material{font-family:'DRMP';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased}.icon-activity5:before,.icon-activity:before{content:"\5b"}.icon-alert:before{content:"\70"}.icon-assessment:before{content:"\6f"}.icon-event:before{content:"\69"}.icon-incident:before{content:"\75"}.icon-map:before{content:"\79"}.icon-news:before{content:"\71"}.icon-plan:before{content:"\74"}.icon-project:before{content:"\72"}.icon-report:before{content:"\65"}.icon-training_material:before{content:"\77"}.latest-updates,.list_formats{margin-top:0.5rem}.latest-updates .action-btn.s3_modal{float:right;font-weight:normal}body.rtl .latest-updates .action-btn.s3_modal{float:left}.side-filter{margin-top:10px}.side-filter .form-row{margin-left:0.375rem;margin-right:0.375rem;padding:0}.side-filter input[type="text"]{width:100% !important}.dl-header{font-size:0.825rem}.dl-exports{margin:0}.card-holder-home .dl-1-cols{width:100%}.card-holder-home .dl-item{padding:0;font-size:0.8rem;margin-bottom:0.5rem;box-shadow:0 1px 1px #aaaaa7}.card-holder-home .dl-row.even,.card-holder-home .dl-row.odd,.card-holder-home .dl-row.even .dl-item,.card-holder-home .dl-row.odd .dl-item{background-color:white}.card-header{background:linear-gradient(to bottom,rgba(255,255,255,1) 0%,rgba(246,246,246,1) 47%,rgba(237,237,237,1) 100%) repeat scroll 0 0 rgba(0,0,0,0);font-size:0.8rem;padding:0 0.175rem 0 0.325rem;border-bottom:1px solid #bdbdbb}.card-header span{padding:0 5px 0 5px;border-right:1px solid #7f7f7f}.card-header .edit-bar a{color:#7f7f7f;text-decoration:none;padding-left:0.175rem}.card-header .location-title{font-weight:bold}.card-header .date-title{color:#7f7f7f}.card-footer{margin-top:0.2rem;padding:0}.card-footer a.action-btn:first-child,.card-footer a.delete-btn:first-child{margin-left:0}.card_1_line,.card_manylines{color:#666;font-size:0.7rem;padding:0.05rem}.card_1_line{height:auto;margin-bottom:0;text-overflow:ellipsis;overflow:hidden}.card_1_line i{margin-right:5px}.dl-item .pull-right{float:right}body.rtl .dl-item .pull-right{float:left}.dl-item .pull-left{float:left;margin-right:0.8rem}body.rtl .dl-item .pull-left{float:right;margin-left:0.8rem}body.rtl .fright{float:left !important}.dl-item .media{font-size:0.8rem;padding:0.375rem}.dl-item .card-subtitle{font-weight:bold;font-size:0.9rem}.dl-item .date-title,.dl-item .card-person{font-size:0.7rem}.dl-inline-data{margin-top:0.5rem}.dl-inline-label,.dl-inline-value{color:#999;font-size:0.7rem;display:inline-block}.dl-inline-label{font-weight:normal;padding-right:0.2rem}.dl-inline-label::after{content:":"}.dl-inline-value{font-weight:bold;padding-right:0.8rem}.dl-item ul.s3-tags{font-size:0.8rem;margin:0 0.375rem !important;list-style:none}.dl-item ul.s3-tags li.tagit-new{padding:0}#footer button.btn,.pr-contacts-editable button,.action-btn,.delete-btn-ajax,.delete-btn,.selected-action{display:inline-block;margin:0.15rem;padding:0.3rem 0.5rem;border:0;border-radius:0;line-height:1;font-size:0.6875rem;text-decoration:none !important;white-space:nowrap;cursor:pointer;vertical-align:middle}.action-btn[disabled],.action-btn[disabled]:hover,.action-btn[disabled]:focus,.delete-btn-ajax[disabled],.delete-btn-ajax[disabled]:hover,.delete-btn-ajax[disabled]:focus,.delete-btn[disabled],.delete-btn[disabled]:hover,.delete-btn[disabled]:focus,.selected-action[disabled],.selected-action[disabled]:hover,.selected-action[disabled]:focus{color:#fefefe;background-color:rgba(192,192,192,0.25)}.action-btn,.selected-action{background-color:#000548;color:#fefefe !important}.action-btn:hover,.action-btn:focus,.selected-action:hover,.selected-action:focus{background-color:#6084bf;color:#fefefe !important}.delete-btn-ajax,.delete-btn{background-color:#D92C20;color:#fefefe !important}.delete-btn-ajax:hover,.delete-btn-ajax:focus,.delete-btn:hover,.delete-btn:focus{background-color:#c3281d !important;color:#fefefe !important}.dataTable .action-btn,.dataTable .selected-action{color:#fefefe}.dataTable .delete-btn,.dataTable .delete-btn-ajax{color:#fefefe}.dataTable td.actions{white-space:nowrap}.action-lnk{font-size:85%;cursor:pointer;margin-left:0.6rem}.action-lnk:first-child{margin-left:0}[dir=rtl] .action-lnk{margin-left:0;margin-right:0.6rem}[dir=rtl] .action-lnk:first-child{margin-right:0}.button.primary:hover{background-color:#6084bf}.cancel-form-btn,.reset-form-btn{display:inline-block;padding:0.875rem 1.75rem 0.9375rem 1.75rem;line-height:1;vertical-align:middle;margin-bottom:0.3rem;border:1px solid transparent}.cancel-form-btn:hover,.reset-form-btn:hover{background-color:#fefefe;border-color:#000548}.map_home .gis_fullscreen_map-btn{font-weight:normal;font-size:0.8rem;padding:0.2rem}button.toggle-text{color:#fefefe;background-color:#000548;font-size:0.7rem;margin:0 0 0 0.7rem;line-height:1.0;padding:0.2rem 0.3rem}[dir=rtl] button.toggle-text{margin:0 0.7rem 0 0}.pr-contacts-editable button{background-color:#000548;color:#fefefe !important;margin:2px}#footer button.btn{color:#fefefe;background:#dddddd}#footer button.btn:hover{color:#fefefe;background:#a0a0a0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.req_status_none{color:red;font-weight:bold}.req_status_partial{color:darkorange;font-weight:bold}.req_status_complete{color:green;font-weight:bold}.hours-formatted{cursor:pointer}.avatar{background:none repeat scroll 0 0 #fff;border-bottom:1px solid #d7d7d7;border-left:1px solid #f2f2f2;border-right:1px solid #f2f2f2;float:left;height:55px;padding:4px;width:55px}[dir=rtl] .avatar{float:right}.text-body{white-space:pre-wrap}.s3-truncate-more,.s3-truncate-less{font-style:italic}.s3-truncate-more:before,.s3-truncate-less:before{font-style:italic;content:"..."}.controls .bool{margin-left:0.5rem}[dir=rtl] .controls .bool{margin-left:0;margin-right:0.5rem}.bool i{margin-right:0.2rem}[dir=rtl] .bool i{margin-right:0;margin-left:0.2rem}.bool.bool-red{color:#d01717}.bool.bool-green{color:#018801}.bool.bool-blue{color:#1754b3}.bool.bool-grey{color:#7f7f7f}.prio{padding:0 0.4rem;border:1px solid #333;font-size:0.8rem;font-weight:normal;text-align:center;white-space:pre}.prio-red{color:#E0E0E0;background-color:#d10000}.prio-amber{background-color:#ffaa00}.prio-lightgreen{background-color:#a0d7a0}.prio-green{color:#E0E0E0;background-color:#006100}.prio-blue{color:white;background-color:#10427b}.prio-lightblue{background-color:#b7ddff}.prio-grey{background-color:silver}.prio-black{color:#E0E0E0;background-color:#1f1f1f}.wh-schedule{list-style:none;white-space:pre;margin:0;font-size:0.7rem}.wh-schedule .wh-dayname{width:1.5rem;display:inline-block}.wh-schedule .wh-dayname::after{content:":"}.showall{display:none;position:absolute;border-style:solid;background-color:#ffc;padding:5px;margin:0 20px 0 -50px}.newsletter-text{white-space:pre-line;background:#fcfcfc;padding:0.7rem;border:1px solid #ccc;box-shadow:2px 2px 4px #ddd;width:48rem;max-width:100%;min-height:8rem;font-size:0.85rem}.file-repr i.fa{font-size:1.1rem}.file-repr .file-size{padding:0 0.4rem;font-size:0.7rem}.img-preview{max-width:120px;max-height:80px}.contact-repr{background-color:#FFF0C1;border:1px solid #E0E0E0;padding:0.25rem 0.5rem}.contact-repr .contact-name{display:block;font-weight:bold;margin-bottom:0.2rem}.contact-repr .contact-info{white-space:nowrap;font-size:0.8rem}.contact-repr .contact-info .fa{padding-right:0.4rem}.workflow-options{white-space:pre}.workflow-options.workflow-grey{color:#555}.workflow-options.workflow-red{color:#c42626}.workflow-options.workflow-amber{color:#ec8d27}.workflow-options.workflow-green{color:green}.workflow-options.workflow-advice{border:1px solid #c42626;background-color:#ffdede;padding:0.3rem 0.7rem}.workflow-options .fa{margin-right:0.2rem}[dir=rtl] .workflow-options .fa{margin-right:0;margin-left:0.2rem}.controls .workflow-options{margin-left:0.5rem}[dir=rtl] .controls .workflow-options{margin-left:0;margin-right:0.5rem}input[type="text"],input[type="password"],input[type="date"],input[type="datetime"],input[type="datetime-local"],input[type="month"],input[type="week"],input[type="email"],input[type="number"],input[type="search"],input[type="tel"],input[type="time"],input[type="url"],select,textarea{max-width:100%;display:inline-block;height:1.75rem;width:auto;margin:0;padding:0.25rem;font-weight:normal}input[type="text"]:focus,input[type="password"]:focus,input[type="date"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="month"]:focus,input[type="week"]:focus,input[type="email"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="time"]:focus,input[type="url"]:focus,select:focus,textarea:focus{background-color:#fffbe0}input[type=file]{width:auto;cursor:pointer}input[type=file]::file-selector-button{background-color:#ccc;color:#333;border:0;border-radius:0;padding:5px 10px}input.datetimepicker,input.date-filter-input,input.range-filter-input{max-width:8rem}form.jeditable-input input{max-width:25rem !important}select{font-size:0.825rem}[dir=ltr] select{padding:0 1.25rem 0 0.25rem}[dir=rtl] select{padding:0 0.25rem 0 1.25rem}textarea{resize:both;vertical-align:top;font-size:0.8rem}textarea.comments{height:50px}textarea.richtext{height:100px}select[disabled='disabled'],input[disabled='disabled']{background:#eee;color:#333;cursor:default}.ui-dialog{padding:0;width:auto}.ui-dialog:not(.qrinput-dialog){width:750px !important;max-width:100%}.ui-dialog .ui-dialog-content{padding:0 !important}[dir=ltr] label.ui-corner-all span{left:10px}[dir=rtl] label.ui-corner-all span{right:10px}.ui-selectmenu-menu .ui-menu.customicons{height:400px}.ui-selectmenu-menu .ui-menu.customicons .ui-menu-item{padding:1em 0 1em 4em}.ui-selectmenu-menu .ui-menu.customicons .ui-menu-item .ui-icon{background-repeat:no-repeat !important;background-position:left top;top:0.1em}[dir=rtl] .ui-selectmenu-menu .ui-menu.customicons .ui-menu-item{padding:1em 4em 1em 0}[dir=rtl] .ui-selectmenu-menu .ui-menu.customicons .ui-menu-item .ui-icon{background-position:right top}.ui-widget-header{background:none;border:1px solid #ADA6A0}.ui-widget-header.ui-slider-range{background:#cccccc}.ui-widget-header a{color:#222222 !important;border-color:#C7C7C7;margin-bottom:0px;font-weight:bold;text-decoration:none !important;font-size:0.85rem}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border-color:#ADA6A0}.ui-widget-content .ui-state-active.ui-slider-handle{background:#007fff;border:1px solid #003eff}.ui-multiselect-header span.ui-icon{margin-top:1px}[dir=rtl] .ui-multiselect-header .ui-multiselect-filter{direction:rtl;float:right;margin-right:3px;margin-left:10px}[dir=rtl] .ui-multiselect-header ul li{float:right;padding:0 3px 0 10px}[dir=rtl] .ui-multiselect-header li.ui-multiselect-close{float:left;text-align:left;padding-left:0}.ui-multiselect-checkboxes li label input{margin-left:0.2rem;margin-right:0.3rem}button.ui-multiselect{min-height:1.75rem;background-color:#FAFAFA}button.ui-multiselect:focus,button.ui-multiselect:focus:hover,button.ui-multiselect.ui-state-active{color:#222222;background-color:#fffbe0}button.ui-multiselect:hover{color:#222222;background-color:#F8F8F8}.filter-form button.ui-multiselect,.report-options button.ui-multiselect{max-width:60%}.ui-widget{font-family:Tahoma,Arial,"Helvetica Neue",Helvetica,Roboto,sans-serif}.s3-password-widget{display:inline-block}.s3-unmask{margin-left:10px;cursor:pointer}.s3-twitter-container{width:350px;height:130px}.controls .checkboxes-widget-s3{display:inline-flex}.action-bar{color:#8a8989;font-size:14px;position:relative;top:4px}.action-bar.fleft{margin-right:8px}.action-bar a:hover,.action-bar a:visited:hover{color:#ffa500;text-decoration:none}.s3-hierarchy-tree.jstree,.s3-hierarchy-header{border:1px solid #ccc;padding:2px 3px 4px 3px;background:white}.jstree-contextmenu{z-index:9999}.s3-hierarchy-wrapper{z-index:9998}.s3-hierarchy-header{font-size:0.8rem;display:none}.s3-hierarchy-action-node,.s3-hierarchy-none{font-style:italic}.form-container form .translation_module_table td{padding:0.3rem}ul.s3-inline-link{font-size:inherit}option.missing{background-color:yellow}.geocode_fail,.geocode_success{margin:0.2rem 0.7rem}.geocode_success{color:#0a0}.geocode_fail{color:#f00}.dms-label{padding:4px;font-weight:bold}.dms-input.invalidinput{border:solid thin red}ul.x-tab-strip,ul.x-tree-node-ct,ul.x-tree-root-ct{list-style:none outside none}.x-toolbar table{border-collapse:separate;width:auto}.x-toolbar table tbody,.x-toolbar table tr{background:none}.calendar-widget-container{white-space:nowrap}input.date.hasDatepicker{display:inline-block}.ui-datepicker-trigger{background-color:transparent;background-image:url(../../img/calendar.gif);background-repeat:no-repeat;height:15px;width:16px;padding:0;margin:0;margin-left:5px;border:0;vertical-align:middle}.form-container form .ui-datepicker-trigger{margin-left:5px}[dir=rtl] .ui-datepicker-trigger,[dir=rtl] .form-container form .ui-datepicker-trigger{margin-left:0;margin-right:5px}.ui-datepicker.ui-widget{z-index:1000 !important}.ui-datepicker.ui-widget dl dd,.ui-datepicker.ui-widget dl dt{font-size:0.8rem}.ui-datepicker.ui-widget dl dt{margin-bottom:0}.btn.date-clear-btn{font-size:0.65rem;padding:0.2rem 0.4rem;margin:0 0.25rem}.postfix.calendar-clear-btn{cursor:pointer}.postfix.calendar-clear-btn .fa{color:#B0B0B0}.range-filter,.date-filter{display:inline-block}.range-filter-label label{font-size:1.0em}.range-filter-widget button.date-clear-btn{font-size:0.85em;padding:0.325em;margin-top:0.5em}.s3-groupedopts-widget table{margin-left:0;margin-bottom:0.5rem}.s3-groupedopts-widget label{display:inline;margin-left:5px;font-weight:normal}.s3-groupedopts-widget label .optlabel{vertical-align:middle}.form-container form fieldset .s3-groupedopts-widget label{white-space:nowrap;text-align:left}.s3-groupedopts-widget label[title] .optlabel{border-bottom:dotted 1px #ccc}.s3-groupedopts-widget .optLabel{display:inline-block}.filter-form .s3-groupedopts-widget,.report-options .s3-groupedopts-widget{display:inline-block}table.s3-groupedopts-widget{margin-bottom:0}table.s3-groupedopts-widget td{white-space:nowrap}table.s3-groupedopts-widget td input.s3-groupedopts-option{vertical-align:middle;margin:0 0.3rem 0 0}table.s3-groupedopts-widget td label{white-space:pre-wrap;margin:0 0.5rem}div.s3-groupedopts-widget .s3-groupedopts-item{display:inline-block;padding-top:0.15rem}div.s3-groupedopts-widget input.s3-groupedopts-option{vertical-align:text-top;margin:0 0.3rem 0 0}.s3-groupedopts-label{margin:10px 0 0 7px;margin-bottom:0.3rem;padding-left:20px;min-height:16px;min-width:20px;background:url(../../img/icon_blue_plus15px.png) no-repeat;cursor:pointer;font-size:0.7rem}.s3-groupedopts-label.expanded{background:url(../../img/icon_blue_minus15px.png) no-repeat}.imagecrop-drag{font-weight:bold;text-align:center;padding:3em 0;margin:1em 0;color:#555;border:2px dashed #555;border-radius:7px;cursor:default}.imagecrop-drag.hover{border-style:solid;background-color:#F7F8F9}.imagecrop-btn{display:none;cursor:pointer}.imagecrop-btn{font-size:1em;margin-left:0.2em;padding:0.3em}.widget-advice{max-width:42rem;padding:0.3rem 0.3rem 0.5rem;font-size:0.8rem;font-style:italic;white-space:pre-line;margin:0.1rem 0}.pr-contacts-wrapper h3{margin-top:0.5rem;padding-bottom:0 !important}.pr-contacts-editable input,.pr-contacts-editable select{min-height:1.2rem;margin:2px 0}.pr-contact-actions{margin-bottom:0.5rem}.pr-contact,.pr-emergency-contact{padding:0.5rem}.pr-contact-priority,.pr-contact-details{display:inline-block}.pr-contact-subtitle{font-size:0.8rem;font-style:italic}.pr-contact-priority{border:thin solid #2ba6cb;border-radius:2px;color:#2ba6cb;font-size:0.8rem;line-height:1rem;margin:0.25rem 1rem 0 0;padding:0 0.25rem 0.125rem;vertical-align:top}.pr-contact-priority input[type=submit]{color:black;line-height:1.2rem;font-size:0.8rem}[dir=rtl] .pr-contact-priority{margin:0.25rem 0 1rem 0}.box_top,.box_top_inner{border-top:#bbb 1px solid}.box_top label,.box_top_inner label{display:inline-block}.box_top{padding-top:1rem}.box_top.form-row.row{margin:0.7rem 0 0 0}.box_top.form-row.row .columns{padding:0}.box_top_inner{padding-top:0.2rem;padding-bottom:0.5rem}.box_bottom{border-bottom:1px solid #bbb;padding-bottom:1rem}.add_person_edit_bar{cursor:pointer;display:inline-block;padding-left:1.2rem;margin-top:1rem}.add_person_edit_bar a{text-decoration:none}[dir=rtl] .add_person_edit_bar{padding-left:0;padding-right:1.2rem}.card > .fleft{margin-right:10px}[dir=rtl] .card > .fleft{margin-right:0;margin-left:10px}.media-object{display:block}.ui-menu-item .pe-label{font-size:0.7rem;color:#A0A0A0;vertical-align:super}.presence-registration .controls{width:100%}.presence-registration .status-label{font-size:0.9rem}.presence-registration .status-message{font-size:0.9rem;font-weight:bold}.presence-registration .person-details{font-size:1rem}.presence-registration .site-presence-in i.fa,.presence-registration .site-presence-out i.fa{margin-right:0.2rem}.presence-registration .site-presence-in{color:#080}.presence-registration .site-presence-out{color:#c00}.qrinput{display:inline-block}.qrinput .qrscan-btn{vertical-align:top;padding:0.4rem 0.8rem;text-align:center;margin:0 0.5rem}.qrinput .qrscan-btn .fa{font-size:16px;margin:0 0.2rem;vertical-align:middle}.qrinput .postfix.clear-btn{cursor:pointer;display:inline-block;width:1.2rem}.qrinput .postfix.clear-btn .fa{color:#B0B0B0}.qrinput input{max-width:14rem}.qrinput-success,.qrinput-invalid{text-align:center;font-size:4rem;padding:1rem;color:darkgreen}.qrinput-invalid{color:#D92C20}form.anonymize-form,.anonymize-success{padding:1rem}.anonymize-select,.anonymize-confirm{margin-left:1rem}[dir=rtl] .anonymize-select,[dir=rtl].anonymize-confirm{margin-left:0;margin-right:1rem}.anonymize-buttons{margin-top:1rem}.anonymize-buttons .button{margin-bottom:0.3rem}.anonymize-btn{background-color:#D92C20}.anonymize-btn:hover{background-color:#c3281d}.s3-anonymize{display:inline-block;margin:0.2rem}.consent-widget{border:1px solid #E0E0E0;padding:0.5rem 1rem}.consent-widget .consent-option{margin-top:0.3rem}.consent-widget .consent-explanation{white-space:pre-wrap;padding:0.3rem 1.7rem;font-size:0.8rem;font-style:italic;color:#7F7F7F}.consent-widget .consent-title{font-weight:bold}.consent-widget .consent-checkbox{margin-right:0.5rem !important}.consent-widget .req{padding:0 0.2rem}.consent-widget .req_key{font-size:0.7rem;font-weight:normal;font-style:italic;margin:0 0.5rem}.wh-raster{margin-top:0.3rem}.wh-raster tr{border-bottom:1px solid #ccc}.wh-raster td{border-left:1px solid #ccc}.wh-raster td.wh-tick{border-left-width:2px}.wh-raster thead td{min-width:1.8rem;padding-right:0.6rem !important;font-size:0.6rem;font-weight:normal}.wh-raster tbody td.wh-hour{text-align:center;font-weight:normal}.wh-raster tbody td.wh-hour.wh-on{color:darkgreen}.wh-raster tbody td.wh-day{text-align:left;font-size:0.7rem;padding:0.2rem 0.4rem}.wh-raster .wh-hour{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.wh-raster .wh-hour.wh-on{background-color:lightgreen}.wh-raster .wh-hour.wh-off{background-color:transparent}#comments{margin:0;padding:0;list-style:none outside none}#comments ul,#comments ol{padding-left:20px;list-style:none outside none}#comments li{padding:10px 0 0}#comments li a.jcollapsible:hover{background:none}#comments .comment-box{overflow:hidden;padding:15px 0;background:none repeat scroll 0 0 #f5f5f5;display:block;overflow:hidden;padding:10px}#comments .comment-box .avatar{display:inline-block;vertical-align:top}#comments .comment-text{padding:0 0 0 0.5rem;display:inline-block}#comments .comment-text ul{list-style:disc outside none}#comments .comment-text ol{list-style:decimal outside none}#comments .comment-text li{padding:0}#comments .comment-text div{white-space:pre-line}#comments .comment-text .comment-header{font-size:0.8rem}#comments .comment-text .comment-body p,#comments .comment-text .comment-body li{font-size:0.9rem}#comments .fright{float:right;text-align:right}#comments .comment-date{font-size:0.7rem;margin-bottom:0.5rem}#comments .comment-footer{clear:left}#comments em{font-style:italic}#comments strong{font-weight:bold}[dir=rtl] #comments ul,[dir=rtl] #comments ol{padding-left:0;padding-right:20px}[dir=rtl] #comments .comment-text{padding:0 0.5rem 0 0}[dir=rtl] #comments .fright{float:left;text-align:left}[dir=rtl] #comments .comment-footer{clear:right}#comment-form{width:40rem;max-width:100%;border:1px #9c9c9c dashed;padding:0.5rem;margin-top:0.5rem}.ajax_more{float:right;margin:0 2px 2px 0;width:16px;height:16px}[dir=rtl] .ajax_more{float:left;margin:0 0 2px 2px}.ajax_more.collapsed{background:url(../../img/icon_blue_plus15px.png) no-repeat left top}.ajax_more.expanded{background:url(../../img/icon_blue_minus15px.png) no-repeat left top}.rfilter{float:left;padding:10px 20px 10px 10px}html,body{height:100%}.hide{display:none !important}.main-title .org-logo{vertical-align:top;display:inline-block;padding:0.4rem 0.8rem 0.3rem 0}.main-title .system-title{display:inline-block}.main-title .system-title .system-name{color:#333333;font-size:1.125rem}.main-title .system-title .org-name{color:#999999;line-height:1rem}.main-title .system-title h5:first-child,.main-title .system-title h6:first-child{margin:0.3rem 0 0.125rem}.main-title .personal-menu-area{text-align:right}.main-title .language-selector{float:right;display:block;margin-top:0.625rem;margin-bottom:0.125rem}[dir=rtl] .main-title .org-logo{padding:0.4rem 0 0.3rem 0.8rem}[dir=rtl] .main-title .personal-menu-area{text-align:left}[dir=rtl] .main-title .language-selector{float:left}.alert-success{border:1px solid #070;background:url(../../img/dialog-confirmation.png) #e5ffe5 no-repeat 0.8rem 50%;color:#070}.alert-success p em{color:#070}.alert-error{border:1px solid #c60f13;background:url(../../img/dialog-error.png) #ffe5e5 no-repeat 0.8rem 50%;color:#c60f13}.alert-error p em{color:#c60f13}.alert-info{border:1px solid #037aa8;background:url(../../img/dialog-information.png) #ecfdff no-repeat 0.8rem 50%;color:#037aa8}.alert-info p em{color:#037aa8}.alert-warning{border:1px solid #d0440d;background:url(../../img/dialog-warning.png) #ffc no-repeat 0.8rem 50%;color:#d0440d}.alert-warning p em{color:#d0440d}.alert-success,.alert-error,.alert-info,.alert-warning{position:relative;z-index:98;margin:10px auto 0.5rem auto;box-shadow:0 1px 1px #aaaaa7;padding:8px 35px 8px 14px;width:auto;font-weight:bold;text-align:center;cursor:pointer}.error,.expired,.req,.req_key{color:#D92C20;font-weight:bold}.req_key{font-size:0.75rem}.mapError{border:solid 1px #D92C20}.username{color:#666666;padding:0.5rem 0;padding-right:0.5rem;font-size:0.7rem}.username i.icon,.username i.fa{padding-left:0.2rem;padding-right:0}[dir=rtl] .username{padding-left:0.5rem;padding-right:0}[dir=rtl] .username i.icon,[dir=rtl] .username i.fa{padding-left:0;padding-right:0.2rem}#content a.help:link{color:#fff;text-decoration:none;margin-right:10px}#content a.help:hover{background-color:#336699;text-decoration:underline}#content a.help:visited{font-weight:normal;color:#666}#content h1,#content h2,#content h3,#content h4,#content h5,#content h6{margin-bottom:0.25rem}#content h1,#content h2{font-size:1.3em;font-weight:bolder;background-color:#cacfff;padding:0.35rem}#content h2{margin-top:10px;font-size:0.9rem;padding-left:0.5rem}#content h3{font-size:1.0em;padding-bottom:5px}#content h6{font-size:1rem;line-height:1.2;margin-top:0}#map{width:100%;overflow:auto}#component{float:none}.map_home{margin:0;margin-top:0.5rem}#datalist-filter-form,#datatable-filter-form,#summary-filter-form,#summary-sections,.thumbnail{border:1px solid #E0E0E0}#summary-filter-form{margin:0}#table-container{display:block;margin-bottom:1.5rem;width:100%}#table-container .empty{margin-top:30px;margin-left:10px}body.popup{background-color:#fbfbfb;min-width:auto;height:auto}#popup{max-width:750px;width:100%;display:none}.loading{background:url(../../img/ajax-loader.gif) center no-repeat !important}#popup .form-container{overflow:inherit}#popup .control-group{padding-right:20px}#list-btn-add,.list-btn-add{float:right;margin-right:0.35rem;margin-bottom:10px}.widget-container #list-btn-add,.widget-container.list-btn-add{margin-bottom:0;position:relative;top:1.0rem}[dir=rtl] #list-btn-add,[dir=rtl].list-btn-add{float:left;margin-right:0;margin-left:0.35rem}#list-add{display:none}#close-iframe-map{padding:7px;margin-top:5px}#footer{background:transparent;padding-top:20px;border-top:1px solid #F0F0F0;margin:20px auto 1rem;text-align:center;width:100%}main{min-height:90%}.sub-nav.about-menu{color:#999;text-align:left;margin-left:0;margin-right:0}.sub-nav.about-menu a{color:#999}body.rtl .sub-nav.about-menu{text-align:right}#poweredby{color:#999;font-size:0.625rem;line-height:1.0;margin-right:0.5rem;text-align:right}#poweredby a{color:#999;font-size:0.625rem;margin-left:0.2rem;text-decoration:none}#poweredby img{margin-right:5px;vertical-align:text-bottom}[dir=rtl] #poweredby{margin-right:0rem;margin-left:0.5rem;text-align:left}[dir=rtl] #poweredby a{margin-left:0;margin-right:0.2rem}[dir=rtl] #poweredby img{margin-right:0;margin-left:5px}.throbber,.layer_throbber,.s3-twitter-throbber,.map_loader,.inline-throbber{background-image:url(../../img/indicator.gif);background-repeat:no-repeat;height:32px;width:32px}.throbber{margin-bottom:-16px;padding:0 0 0 10px}.input_throbber{background-size:60% !important;height:24px;width:24px;display:inline-block;margin:0 0 -11px -24px}.s3-twitter-throbber{height:0px;margin:66px 0 0 42px;padding:20px;width:0px}.main-menu{font-size:0.8125rem}.main-menu .title-bar{background:#000548;margin:0.5rem 0 0}.main-menu .title-bar .title-bar-title{margin:0 0.5rem}.main-menu .top-bar{min-height:2.2rem}.main-menu .top-bar .dropdown.menu,.main-menu .top-bar .drilldown.menu{z-index:99}.main-menu .top-bar .dropdown.menu li.is-dropdown-submenu-parent > a::after,.main-menu .top-bar .drilldown.menu li.is-dropdown-submenu-parent > a::after{border-color:rgba(150,150,150,0.5) transparent transparent}.main-menu .top-bar .dropdown.menu li.is-drilldown-submenu-parent > a::after,.main-menu .top-bar .drilldown.menu li.is-drilldown-submenu-parent > a::after{border-color:transparent transparent transparent rgba(150,150,150,0.5)}.main-menu .top-bar .dropdown.menu li .js-drilldown-back > a::before,.main-menu .top-bar .drilldown.menu li .js-drilldown-back > a::before{border-color:transparent rgba(150,150,150,0.5) transparent transparent}.main-menu .top-bar .dropdown.menu li a,.main-menu .top-bar .drilldown.menu li a{line-height:1.5;background-color:#000548;color:#fefefe}.main-menu .top-bar .dropdown.menu li a:hover,.main-menu .top-bar .drilldown.menu li a:hover{background-color:#6084bf;color:#fefefe}.main-menu .top-bar .dropdown.menu li.active > a,.main-menu .top-bar .drilldown.menu li.active > a{background-color:#eb003c;color:#000548}.main-menu .top-bar .dropdown.menu li.active > a:hover,.main-menu .top-bar .drilldown.menu li.active > a:hover{background-color:#ff606e;color:#000541}.side-bar{background:none repeat scroll 0 0 #f7f7f7;margin-top:10px;padding:0.25rem 0}.options-menu ul{margin-left:0}.options-menu ul li > a{padding-left:1.25rem}.options-menu > li{padding:0.3rem 0}.options-menu > li.active-section{background-color:#f2f2f2}.options-menu li{font-size:0.875rem;font-weight:normal;margin:0}.options-menu li a{color:#666;padding:0.325rem 0.5rem}.options-menu li a:hover{color:#000a8a;background-color:rgba(0,0,0,0.05)}.options-menu li.heading > a{font-weight:bold;text-transform:uppercase}.options-menu li.heading:not(:first-child){border-top:1px solid #eaeaea}.options-menu li.is-active > a:first-child:not(.button){font-weight:bold;color:#444;background-color:#e0e1e2}.options-menu li.is-active > a:first-child:not(.button):hover{color:#000a8a;background-color:#e2e3e3}.options-menu .num-pending{margin:0 0.4rem;font-weight:normal;font-size:0.7rem;border:1px solid #960;padding:0 0.2rem;background-color:#ffaa00;border-radius:10px;color:#712e05}#menu-options-toggle{margin-top:0.5rem;width:100%}.sub-nav{line-height:normal}.sub-nav li{font-size:0.75rem}.sub-nav li:before{color:#999;content:"|";margin:0 0.375rem}.sub-nav li:first-child:before{content:"";margin:0}.sub-nav li a{color:#999;text-decoration:none;display:inline-block;padding:0 0.375rem}.sub-nav li a:hover{color:#666}.sub-nav.personal-menu{float:right;clear:right;padding-top:0;margin-bottom:0.125rem}[dir=rtl] .sub-nav.personal-menu{float:left;clear:left}.sub-nav.personal-menu li a{padding:0 0.375rem}#rheader{margin-bottom:0.25rem}#rheader .rheader-title{color:#333;font-weight:bold;font-size:1.1rem;line-height:1.0}#rheader .rheader-content{display:inline-block;max-width:90%;padding:0.5rem}#rheader table{display:inline;margin-bottom:10px;border:none;background:none}#rheader table tbody,#rheader table tr{border:none;background:none}#rheader table th,#rheader table td{font-size:0.85rem;text-align:left;padding:0.1rem 0.5rem 0.05rem 0;white-space:pre-line}[dir=rtl] #rheader table th,[dir=rtl] #rheader table td{text-align:right;padding:0.1rem 0 0.05rem 0.5rem}#rheader table th{color:#7F7F7F;line-height:1.1rem;font-weight:normal}#rheader table td{padding-right:1.25rem;line-height:1.1rem;font-weight:bold}#rheader table td a{font-weight:normal}[dir=rtl] #rheader table td{padding-right:0;padding-left:1.25rem}#rheader .rheader-qrcode{display:inline-block;border:1px solid #eee;margin-right:0.5rem;vertical-align:top}#rheader .rheader-avatar{clear:none;display:inline-block;float:none;padding:0;vertical-align:top;margin-right:0.8rem}[dir=rtl] #rheader .rheader-avatar{margin-right:0;margin-left:0.8rem}#rheader div.tabs{display:block;clear:none;height:32px;width:100%;margin:5px 0 !important;padding:4px 4px 0 0;text-align:left;border-bottom:1px solid #000548}#rheader div.tabs span{float:left;position:relative;font-size:13px;font-weight:normal;margin:3px 0.2rem 0 0;padding:2px 0.4rem 1px;border-color:#000548;border-width:1px;border-style:solid;border-radius:3px 3px 0 0;background-color:#000548}#rheader div.tabs span:hover{background-color:#6084bf;border-color:#6084bf}#rheader div.tabs span a{line-height:16px;color:#ffffff;text-decoration:none;background:transparent}#rheader div.tabs span a:hover{color:#ffffff;background:transparent}#rheader div.tabs span.tab_here{font-size:14px;font-weight:bold;margin-top:0;margin-right:0.4rem;padding:3px 0.4rem 0px;background:#fefefe;border-color:#000548;border-style:solid;border-width:2px 2px 2px 3px;border-bottom-style:solid;border-bottom-color:#fefefe}#rheader div.tabs span.tab_here:not(:first-child){margin-left:0.2rem}#rheader div.tabs span.tab_here:hover{background-color:#f1edec}#rheader div.tabs span.tab_here a{color:#666666 !important}#rheader div.tabs span.tab_here a:hover{color:#666666 !important}[dir=rtl] #rheader div.tabs{padding-left:4px;padding-right:0;text-align:right}[dir=rtl] #rheader div.tabs span{float:right;margin-right:0;margin-left:0.2rem}[dir=rtl] #rheader div.tabs span.tab_here{margin-left:0.4rem}[dir=rtl] #rheader div.tabs span.tab_here:not(:first-child){margin-right:0.2rem}form{font-size:0.8rem}form .form-row.row{padding:0 0.3rem;margin-top:0.5rem}form .form-row .button{margin-bottom:0.3rem}[dir=ltr] form .form-row .button{margin-right:0.5rem}[dir=ltr] form .form-row .button i.fa{margin-right:0.3rem}[dir=rtl] form .form-row .button{margin-left:0.5rem}[dir=rtl] form .form-row .button i.fa{margin-left:0.3rem}form .form-row > .columns:first-child{overflow:hidden}form .form-row > .columns > label{font-weight:bold}[dir=ltr] form .form-row > a{margin-left:0.625rem}[dir=rtl] form .form-row > a{margin-right:0.625rem}form .form-row select{min-width:4rem}form .form-row .controls span.postfix{display:inline-block;padding:0 0.3rem;border:1px solid #ccc;border-left:none;text-align:center;vertical-align:top;background-color:#f2f2f2;height:1.75rem;line-height:1.5rem;font-size:0.8rem}form .form-row .controls span.postfix .fa{line-height:inherit}form .form-row .s3-hierarchy-widget,form .form-row .calendar-widget-container{display:inline-block;vertical-align:middle}form .form-row .inline-component{overflow:auto}form .jstree-anchor{font-size:0.9rem}form label{cursor:pointer;margin-bottom:0.175rem;margin-left:0.125rem}form label.inline{padding:0;margin:0 0 0.5rem}form .gis_loc_select_btn{font-size:0.8em}form .gis_loc_select_btn i{font-size:1.0em}[dir=ltr] form .gis_loc_select_btn i{margin-right:4px}[dir=rtl] form .gis_loc_select_btn i{margin-left:4px}form .error{display:block;margin-top:0;margin-bottom:0.2rem;font-size:0.75rem;font-style:italic;background:transparent;color:#c60f13}form .error [dir=ltr]{padding:0.2rem 0 0 0.2rem}form .error [dir=rtl]{padding:0.2rem 0.2rem 0 0}form .error_top .error{margin-top:1.4rem;padding:0}form .invalidinput{border:1px solid #c60f13}form .action-lnk{font-weight:normal;font-size:0.75rem;margin-bottom:0.3rem}form .inline-throbber{background-image:url(../../img/indicator.gif);background-repeat:no-repeat;background-position:center;height:16px;width:16px}[dir=ltr] form .s3_inline_add_resource_link a{margin-left:2px;padding-left:2px}[dir=rtl] form .s3_inline_add_resource_link a{margin-left:2px;padding-left:2px}form .inline-open-add{display:inline-block;margin-bottom:1.25rem}form .inline-open-add [dir=ltr]{margin-left:0}form .inline-open-add [dir=rtl]{margin-right:0}form .subheading{background-color:#FFEDCB;font-size:0.9rem;font-weight:bold;border-top:solid 1px #FFD7A3;margin:1.5rem 0 0.75rem;max-width:80%}[dir=ltr] form .subheading{border-left:solid 1px #FFD7A3;padding:0.25rem 0.25rem 0.25rem 0.75rem}[dir=rtl] form .subheading{border-right:solid 1px #FFD7A3;padding:0.25rem 0.75rem 0.25rem 0.25rem}form .subheading:first-of-type{margin-top:0}form.auth_login #submit_record__row{white-space:pre}.embeddedComponent{margin-top:0.125rem;margin-bottom:0.125rem;border:1px solid #dddddd;border-collapse:separate;border-spacing:0}.embeddedComponent td{border:none;text-align:left;padding:0.25rem 0.75rem 0.25rem 0.25rem}[dir=rtl] .embeddedComponent td{text-align:right;padding:0.25rem 0.25rem 0.25rem 0.75rem}.embeddedComponent.subform-vertical .add-row td,.embeddedComponent.subform-vertical .edit-row td{border-top:1px solid #dddddd;padding:0 0.4rem 0.4rem}.embeddedComponent.subform-vertical .add-row td.subform-action,.embeddedComponent.subform-vertical .edit-row td.subform-action{vertical-align:bottom}.embeddedComponent .label-row td{color:#b3b3b3;border-bottom:1px solid #dddddd}.embeddedComponent .label-row td:empty{padding:0}.embeddedComponent .label-row label{color:#444;margin:0}.embeddedComponent tr.inline-form input,.embeddedComponent tr.inline-form .btn.date-clear-btn,.embeddedComponent tr.inline-form .postfix.calendar-clear-btn{margin-top:0}.embeddedComponent tr.inline-form input[type="text"],.embeddedComponent tr.inline-form .s3-upload-widget{font-size:0.8rem;max-width:14rem}.embeddedComponent tr.inline-form input[type="text"].datetimepicker,.embeddedComponent tr.inline-form .s3-upload-widget.datetimepicker{width:7.5rem !important}.embeddedComponent tr.inline-form input[type="text"].datetimepicker.hide-time,.embeddedComponent tr.inline-form .s3-upload-widget.datetimepicker.hide-time{width:5rem !important}.embeddedComponent tr.inline-form input.string,.embeddedComponent tr.inline-form textarea{width:auto}.embeddedComponent tr.inline-form input.integer{max-width:10rem}.embeddedComponent tr.inline-form textarea{font-size:0.8rem}.embeddedComponent tr.inline-form.single td:only-child{padding:0}.embeddedComponent tr.inline-form.single td:only-child div.form-row{padding:0 0.2rem 0.2rem}.embeddedComponent tr.inline-form select{max-width:18rem}.embeddedComponent tr.inline-form .s3_inline_add_resource_link{padding:0.1rem}.embeddedComponent tr.inline-form .zoom img,.embeddedComponent tr.read-row .zoom img{max-height:8rem}.embeddedComponent tr.inline-form td,.embeddedComponent tr.read-row td{font-size:0.8rem;max-width:21rem;white-space:pre-line}.inline-add,.inline-dsc,.inline-cnc,.inline-edt,.inline-rdy,.inline-rmv{cursor:pointer;background-repeat:no-repeat;background-position:center;height:23px;width:23px}.inline-add{background-image:url(../../img/crud/add.png)}.inline-dsc{background-image:url(../../img/crud/cancel.png)}.inline-cnc{background-image:url(../../img/crud/cancel.png)}.inline-edt{background-image:url(../../img/crud/edit.png)}.inline-rdy{background-image:url(../../img/crud/apply.png)}.inline-rmv{background-image:url(../../img/crud/remove.png)}.form-info{height:1.2rem}.form-container,.item-container{width:auto;overflow:inherit}.form-container form,.item-container form{border:1px solid #E0E0E0;background:#fefefe;padding:0.35rem 0.7rem}.form-container form td.w2p_fl,.item-container form td.w2p_fl{font-weight:bold}.form-container form tr td,.item-container form tr td{padding:3px 0 0 3px}.form-container form tr td,.item-container form tr td{padding:0.1875rem}.form-container .controls,.item-container .controls{display:inline-block;min-height:1.7rem;padding:0 0.1rem}.form-container .controls:not(.columns),.item-container .controls:not(.columns){max-width:100%}.form-container .no-options-available,.item-container .no-options-available{color:#aaa;font-style:italic}[dir=ltr] .form-container .no-options-available,[dir=ltr].item-container .no-options-available{padding-left:0.7rem}[dir=rtl] .form-container .no-options-available,[dir=rtl].item-container .no-options-available{padding-right:0.7rem}.form-container{margin-top:0.125rem;margin-bottom:0.875rem}.form-container p{margin:0.5em 0 0 0}.form-container form p{margin:0}.form-container form p.note{font-style:italic;margin-left:18em;font-size:80%;color:#666}.form-container form input.date{width:auto}.form-container form input[type="checkbox"],.form-container form input[type="radio"]{margin:5px 5px}.form-container form fieldset{margin:0 0 10px 0;padding:10px;border:#ddd 1px solid;background-color:#fff}.form-container form legend{font-weight:bold;color:#666}.form-container form textarea{width:28rem}.form-container form .ui-multiselect{max-width:100%;display:inline-block !important;font-size:0.8rem;line-height:1.5;margin-right:0.3rem;margin-bottom:0}.form-container form:not(.filter-form):not(.auth_login):not(.auth_register):not(.rm-form) input[type="text"]:not(.integer):not(.double):not(.datetimepicker):not(.date):not(.hours):not(.dms-input){width:20rem !important}.item-container{margin:0 0 0.5rem}.item-container .controls{background:#fafafa;padding:0.3rem}#last_update,#markDuplicate{float:right;clear:right;text-align:right}[dir=rtl] #last_update,[dir=rtl]#markDuplicate{float:left;clear:left;text-align:left}.authorinfo,#last_update{font-style:italic;font-size:80%;color:#666}#markDuplicate{padding-bottom:8px;margin-bottom:0;margin-top:-0.25rem}.crud-actions{margin-bottom:0.25rem}.s3_add_resource_link{display:inline-block;margin:0.3rem 0.5rem}.inline-tooltip{vertical-align:top;margin:0.2rem 0.5rem}.tooltip,.tooltipbody,.stickytip,.ajaxtip,.htmltip{display:inline-block;position:static;text-transform:uppercase;width:auto;background:none}.tooltip:before,.tooltipbody:before,.stickytip:before,.ajaxtip:before,.htmltip:before{content:"\f29c";color:#AAA;font:normal normal normal 14px/1 FontAwesome;font-size:1.2rem;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tooltip:hover,.tooltipbody:hover,.stickytip:hover,.ajaxtip:hover,.htmltip:hover{cursor:help}.tooltip:hover:before,.tooltipbody:hover:before,.stickytip:hover:before,.ajaxtip:hover:before,.htmltip:hover:before{color:#f08a24}#filter-form{margin:0}.checkboxes-widget-s3 input,.s3-groupedopts-widget input{display:inline-block;vertical-align:middle}.s3-checkboxes-widget-filter input{vertical-align:middle}.range-filter-label{font-size:85%}.range-filter-field{display:inline-block;margin-right:0.7rem}.age-filter-widget{display:inline-block}.age-filter-label{display:inline-block;margin-right:0.5rem}.age-filter-unit{display:inline-block}.filter-form.has-active-filters{border:1px solid #e0a0a0 !important}.filter-form td{border-top:1px solid #d9d9d9}.filter-form tr:first-child > td{border-top:0}.filter-form table.s3-groupedopts-widget td{border-top:0}.filter-form .ui-multiselect.ui-widget.ui-state-default.ui-corner-all,.form-container .ui-multiselect.ui-widget.ui-state-default.ui-corner-all{display:block;min-width:225px}.filter-form .ui-multiselect.ui-widget.ui-state-default.ui-corner-all:first-of-type,.form-container .ui-multiselect.ui-widget.ui-state-default.ui-corner-all:first-of-type{clear:none}.ui-selectmenu-button,.ui-multiselect-menu{min-width:225px}select.multiselect-filter-widget{display:none}.filter-advanced{text-decoration:none;cursor:pointer}.filter-advanced-label{padding-right:4px}.s3-options-filter-anyall label{display:inline;margin-right:0.7rem;font-size:0.7rem}.filter-manager-widget{display:inline-block}.fm-load,.fm-save,.fm-delete,.fm-create,.fm-accept,.fm-cancel{display:inline-block;margin:0 0.3rem;width:16px;height:16px;cursor:pointer;vertical-align:middle}.fm-load{background:url(../../img/filter/load.png) no-repeat}.fm-save{background:url(../../img/filter/save.png) no-repeat}.fm-delete{background:url(../../img/filter/delete.png) no-repeat}.fm-create{background:url(../../img/filter/create.png) no-repeat}.fm-accept{background:url(../../img/crud/apply.png) no-repeat}.fm-cancel{background:url(../../img/crud/cancel.png) no-repeat}table{width:auto}table th,table td{text-align:left}[dir=rtl] table th,[dir=rtl] table td{text-align:right}.dataTable{width:100%;border-collapse:collapse;font-size:0.875rem}.dataTable thead th,.dataTable thead td,.dataTable tbody th,.dataTable tbody td,.dataTable tfoot th,.dataTable tfoot td{border:1px solid #cccccc;padding:0.2rem 1.5rem 0.2rem 0.5rem}[dir=rtl] .dataTable thead th,[dir=rtl] .dataTable thead td,[dir=rtl] .dataTable tbody th,[dir=rtl] .dataTable tbody td,[dir=rtl] .dataTable tfoot th,[dir=rtl] .dataTable tfoot td{padding:0.2rem 0.5rem 0.2rem 1.5rem}.dataTable thead th.dt-bulk,.dataTable thead td.dt-bulk,.dataTable tbody th.dt-bulk,.dataTable tbody td.dt-bulk,.dataTable tfoot th.dt-bulk,.dataTable tfoot td.dt-bulk{padding:0.2rem;text-align:center;vertical-align:middle;min-width:3rem}.dataTable thead th.dt-actions,.dataTable thead td.dt-actions,.dataTable tbody th.dt-actions,.dataTable tbody td.dt-actions,.dataTable tfoot th.dt-actions,.dataTable tfoot td.dt-actions{white-space:nowrap}.dataTable thead th,.dataTable tbody th,.dataTable tfoot th{text-align:center}.dataTable thead{background-color:#ffffff}.dataTable thead th{border-bottom:1px solid #cccccc}[dir=rtl] .dataTable thead th.sorting,[dir=rtl] .dataTable thead th.sorting_asc,[dir=rtl] .dataTable thead th.sorting_desc{background-position-x:left}.dataTable tbody tr.even{background-color:#ffffff}.dataTable tbody tr.even td.sorting_1{background-color:#fafafa}.dataTable tbody tr.odd{background-color:#f7f8f9}.dataTable tbody tr.odd td.sorting_1{background-color:#f0f1f2}.dataTable tbody tr.dtalert.even{background-color:#ffffa0}.dataTable tbody tr.dtalert.even td.sorting_1{background-color:#fffff0}.dataTable tbody tr.dtalert.odd{background-color:#ffffc0}.dataTable tbody tr.dtalert.odd td.sorting_1{background-color:#ffffb0}.dataTable tbody tr.dtwarning.even{background-color:#ffa6a6}.dataTable tbody tr.dtwarning.even td.sorting_1{background-color:#ff8383}.dataTable tbody tr.dtwarning.odd{background-color:#ffd9d9}.dataTable tbody tr.dtwarning.odd td.sorting_1{background-color:#ffb6b6}.dataTable tbody tr.row_selected.odd{background-color:#40fa8d}.dataTable tbody tr.row_selected.odd td.sorting_1{background-color:#20f0ad}.dataTable tbody tr.row_selected.even{background-color:#60f6ad}.dataTable tbody tr.row_selected.even td.sorting_1{background-color:#40fa8d}.dataTable tbody tr.group{background-color:#ddd;border:1px solid #aaa}.dataTable tbody tr.group.level_1{background-color:#999;color:#def}.dataTable tbody tr.group.level_1.activeRow{background-color:#1d70cf}.dataTable tbody tr.group.level_1 a{color:#def}.dataTable tbody tr.group.level_2{background-color:#ddd;color:#248}.dataTable tbody tr.group.level_2.activeRow{background-color:#528dd1}.dataTable tbody tr.group.level_2 a{color:#248}.dataTable tbody tr.group span.ui-icon{display:inline-block}.dataTable tbody tr.group .group-indent{width:10px}.dataTable tbody tr.group .group-opened,.dataTable tbody tr.group .group-closed{padding:0.2rem}.dataTable tbody tr.group .group-collapse,.dataTable tbody tr.group .group-expand{cursor:pointer;float:right}.dataTable tbody tr.dtdisable{text-shadow:#ccc 1px 1px 1px;color:#888}.dataTable tbody tr td{vertical-align:top}.dataTable tfoot th,.dataTable tfoot td{background-color:#f7f8f9;border-top:2px solid #cccccc;padding:0.5em}.dataTable .bulk-select-options input[type=checkbox]{margin-bottom:0}.dataTable.dtr-inline.collapsed tbody td:first-child::before,.dataTable.dtr-inline.collapsed tbody th:first-child::before{top:0.4rem;background-color:#000548}.dataTable.dtr-inline.collapsed tbody tr.parent td:first-child::before,.dataTable.dtr-inline.collapsed tbody tr.parent th:first-child::before{background-color:#D92C20}.dataTable table.import-item-details{display:none}.dataTables_wrapper .dataTable_table{overflow:auto;clear:both}.dataTables_wrapper .dt-variable-columns{font-size:1rem;border:1px solid #ccc;padding:0.2rem;color:#666;min-width:2.5rem;cursor:pointer}.dataTables_wrapper .dt-variable-columns:hover{border-color:#aaa;background-color:#eee}.dataTables_wrapper .dataTables_bulk,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_length{float:left;text-align:left !important;margin:0 3rem 4px 0;font-size:0.75rem;font-weight:normal;white-space:nowrap}.dataTables_wrapper .dataTables_bulk select,.dataTables_wrapper .dataTables_filter select,.dataTables_wrapper .dataTables_length select{font-size:0.75rem;text-align:center;height:auto;padding:0.2rem 1.2rem 0.2rem 0.2rem;border-radius:0;margin:0 0.2rem;min-width:3rem}.dataTables_wrapper .dataTables_bulk label,.dataTables_wrapper .dataTables_filter label,.dataTables_wrapper .dataTables_length label{font-size:0.75rem;font-weight:normal;white-space:nowrap;margin:0 10rem 0.3rem 0;display:inline-block}.dataTables_wrapper .dataTables_bulk input[type="search"],.dataTables_wrapper .dataTables_filter input[type="search"],.dataTables_wrapper .dataTables_length input[type="search"]{margin-left:0.3rem;margin-right:0rem}[dir=rtl] .dataTables_wrapper .dataTables_bulk,[dir=rtl].dataTables_wrapper .dataTables_filter,[dir=rtl].dataTables_wrapper .dataTables_length{float:right;text-align:right !important;margin-left:3rem;margin-right:0}[dir=rtl] .dataTables_wrapper .dataTables_bulk select,[dir=rtl].dataTables_wrapper .dataTables_filter select,[dir=rtl].dataTables_wrapper .dataTables_length select{padding:0.2rem 0.2rem 0.2rem 1.2rem}[dir=rtl] .dataTables_wrapper .dataTables_bulk label,[dir=rtl].dataTables_wrapper .dataTables_filter label,[dir=rtl].dataTables_wrapper .dataTables_length label{margin-left:10rem;margin-right:0rem}[dir=rtl] .dataTables_wrapper .dataTables_bulk input[type="search"],[dir=rtl].dataTables_wrapper .dataTables_filter input[type="search"],[dir=rtl].dataTables_wrapper .dataTables_length input[type="search"]{margin-left:0rem;margin-right:0.3rem}.dataTables_wrapper .dataTables_info{float:right;clear:none;margin:0.5rem 0;padding-top:0.3rem}[dir=rtl] .dataTables_wrapper .dataTables_info{float:left}.dataTables_wrapper .dataTables_info:last-of-type{float:left}[dir=rtl] .dataTables_wrapper .dataTables_info:last-of-type{float:right}.dataTables_wrapper .dataTables_paginate{float:right;margin:0.3rem 0 0.3rem 0.7rem;padding-top:0.3rem}[dir=rtl] .dataTables_wrapper .dataTables_paginate{float:left;margin:0.3rem 0.7rem 0.3rem 0}.dataTables_wrapper .dataTables_paginate.paging_full_numbers{width:auto}.dataTables_wrapper .dataTables_paginate .paginate_button,.dataTables_wrapper .dataTables_paginate .paginate_active{padding:0.1rem 0.5rem !important;font-size:0.8rem}.dataTables_wrapper .dataTables_paginate .paginate_button a,.dataTables_wrapper .dataTables_paginate .paginate_active a{text-decoration:none;color:#333 !important}.dataTables_wrapper .dataTables_paginate .paginate_button:hover a,.dataTables_wrapper .dataTables_paginate .paginate_active:hover a{color:#eee !important}.dataTables_wrapper .dataTables_paginate .paginate_button:active a,.dataTables_wrapper .dataTables_paginate .paginate_active:active a{color:rgba(0,0,0,0.5) !important}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled a,.dataTables_wrapper .dataTables_paginate .paginate_active.disabled a{color:#666 !important}.dataTables_wrapper .dataTables_paginate .paginate_button.current a,.dataTables_wrapper .dataTables_paginate .paginate_active.current a{color:#333 !important}.dataTables_wrapper .dataTables_processing{z-index:99;padding:1rem 0 2rem;top:2.5rem;left:30%;background-color:#fffbe0;color:#737373;border-color:#737373}[dir=rtl] .dataTables_wrapper .dataTables_processing{left:unset;right:30%}.dt-wrapper.scrollable .dataTable_table{max-height:80vh;overflow:scroll;scroll-snap-type:y proximity}.dt-wrapper.scrollable .dataTable_table th,.dt-wrapper.scrollable .dataTable_table td{scroll-snap-align:end}.dt-wrapper.scrollable .dataTable{border-collapse:separate;border-spacing:0;border-bottom:0}.dt-wrapper.scrollable .dataTable th,.dt-wrapper.scrollable .dataTable td{border-top-width:0;border-right-width:0}.dt-wrapper.scrollable .dataTable tr th:last-child,.dt-wrapper.scrollable .dataTable tr td:last-child{border-right-width:1px}.dt-wrapper.scrollable .dataTable thead{position:sticky;top:0;background-color:#ffffff}.dt-wrapper.scrollable .dataTable thead tr:first-child th{border-top-width:1px}.column-selector table{width:100%;border-collapse:separate;border-spacing:0.1rem}.column-selector table td{padding:0.15rem;margin:0;width:100%}.column-selector table td label{margin:0}.column-selector table td label input{margin:0.2rem}.column-selector table td.column-left,.column-selector table td.column-right{cursor:pointer;width:1.5rem;min-width:1.5rem;font-size:1rem;text-align:center}.column-selector table td.column-left:hover,.column-selector table td.column-right:hover{background-color:#eee}.column-selector table thead{background:transparent}.column-selector table thead th,.column-selector table thead td{border:0}.column-selector table tbody td{border:1px solid #ccc}.column-selector table tbody.ui-sortable .sortable-placeholder{background-color:#fff7d8}.column-selector .submit-form-btn{margin-bottom:0.3rem}.dt-export-options{float:right;padding-top:5px}[dir=rtl] .dt-export-options{float:left}.dt-export-options .list_formats{padding-top:0;margin:0 0.2rem}.dt-export{display:inline-block;margin:0 0.15rem;cursor:pointer;height:16px;width:16px;background-repeat:no-repeat}.dt-export.fa{font-size:14px;padding:0;padding-top:2px}.dt-export.export_cap{background-image:url(../../img/cap_16.png)}.dt-export.export_have{background-image:url(../../img/have_16.png)}.dt-export.export_kml{background-image:url(../../img/kml_icon.png)}.dt-export.export_map{background-image:url(../../img/map_icon.png)}.dt-export.export_pdf{background-image:url(../../img/pdficon_small.gif)}.dt-export.export_rss{background-image:url(../../img/RSS_16.png)}.dt-export.export_xls{background-image:url(../../img/icon-xls.png)}.dt-export.export_xlsx{background-image:url(../../img/icon-xls.png)}.dt-export.export_xml{background-image:url(../../img/icon-xml.png)}.empty{font-style:italic;font-size:0.825rem}.dl{border-bottom:1px solid #aaa}.dl .dl-1-cols{width:100%}.dl .dl-2-cols{width:50%}.dl .dl-3-cols{width:33%}.dl .dl-4-cols{width:25%}.dl .dl-header{padding:3px;text-align:right}.dl .dl-row{border:0}.dl .dl-row.even,.dl .dl-row.even .dlitem{background-color:white}.dl .dl-row.odd,.dl .dl-row.odd .dl-item{background-color:#e2e4ff}.dl .dl-item{padding:3px 5px 3px 5px}.dl .dl-item .dropdown .caret{margin-left:0.2rem;margin-top:0.4rem}.dl .dl-item .attachments{margin-right:0.2rem}.dl .dl-field{padding:0.1rem 0}.dl .dl-field-label,.dl .dl-field-value{display:inline-block}.dl .dl-field-label{font-weight:normal}.dl .dl-field-value{margin:0 0.5rem;font-weight:bold}.dl .edit-bar.fright{float:right}[dir=rtl] .dl .dl-header{text-align:left}[dir=rtl] .dl .dl-item .dropdown .caret{margin-left:0;margin-right:0.2rem}[dir=rtl] .dl .dl-item .attachments{margin-right:0;margin-left:0.2rem}[dir=rtl] .dl .edit-bar.fright{float:left}.dl-empty{font-style:italic;font-size:0.825rem}.dl-exports.list_formats{padding:0}#summary-tabs{margin-top:10px;visibility:hidden}#summary-tabs.ui-widget-content{background:none;border:none}#summary-tab-headers .ui-tabs-nav{border:none;margin:0 10px}#summary-tab-headers a{border-color:#CCC}#summary-tab-headers .ui-tabs-active a{border-bottom:1px solid white}#summary-tab-headers li{margin-right:5px;box-shadow:none}#summary-sections .x-panel-body{border:none;border-radius:4px}#summary-sections #map{margin-top:0;padding:0}.ui-tabs .ui-tabs-panel{padding:0.5em}.s3-organizer-popup label{font-size:0.7rem;font-weight:bold}.s3-organizer-popup p{font-size:0.8rem;font-weight:normal;margin-bottom:0.3rem}.s3-organizer-popup .action-btn{margin-left:0;margin-right:0.3rem}.s3-organizer-create .action-btn{display:block}:root{--fc-page-bg-color:#fefefe;--fc-button-text-color:#666;--fc-button-bg-color:#eaeaea;--fc-button-border-color:#eaeaea;--fc-button-hover-bg-color:#dcdcdc;--fc-button-hover-border-color:#ccc;--fc-button-active-bg-color:#cfcfcf;--fc-button-active-border-color:#ccc}.fc table{margin-bottom:0;font-size:0.95rem}.fc .fc-timegrid-axis-cushion,.fc .fc-daygrid-week-number{font-size:0.85rem}#content .fc h1,#content .fc h2{background:transparent}.fc thead{background-color:#f4f4f4}.fc tbody,.fc tfoot,.fc tr,.fc th,.fc td{background:transparent}.fc .fc-button{font-size:0.9rem;padding:.2rem .65rem}.fc .fc-button:focus,.fc .fc-button-primary:focus,.fc .fc-button-primary:not(:disabled):active:focus,.fc .fc-button-primary:not(:disabled).fc-button-active:focus{box-shadow:none}.fc .inline-throbber{display:inline-block;vertical-align:middle;margin-top:1rem}h4.profile-sub-header{background-color:#efefef;padding:0.1rem 0.3rem;font-size:1.2rem}.profile-widget .icon-fullscreen{float:right;position:relative;right:9px;top:17px}.profile .dl-header{display:none}.empty_card-holder{text-align:center}.form-toggle,.form-toggle:hover{text-decoration:none}.form-toggle i,.form-toggle:hover i{margin-left:3px}.tp-form fieldset legend button:first-child,.pt-form fieldset legend button:first-child{display:none}.tp-form legend,.pt-form legend{border:0 !important;margin:0;height:1.4rem;font-size:0.85rem;padding:0 0.3rem}.pt-form .pt-rows{margin-right:0.5rem}.pt-form .pt-cols{margin-left:0.5rem}.pt-form .pt-axis-options select,.pt-form .pt-axis-options label{display:inline-block;width:auto}[dir=rtl] .pt-form .pt-rows{margin-right:0;margin-left:0.5rem}[dir=rtl] .pt-form .pt-cols{margin-left:0;margin-right:0.5rem}.tp-form .tp-time-options select,.tp-form .tp-time-options label{display:inline-block;width:auto}.tp-form .tp-time-options label{font-size:0.9rem;margin:0 0.7rem}.tp-chart-tops,.pt-chart-opts{height:1.0rem}.tp-chart-icon,.pt-chart-icon{width:16px;height:16px;float:left;margin-right:5px;cursor:pointer}[dir=rtl] .tp-chart-icon,[dir=rtl].pt-chart-icon{float:right;margin-right:0;margin-left:5px}.tp-chart-label,.pt-chart-label{font-size:0.7rem;float:left;margin-right:8px}[dir=rtl] .tp-chart-label,[dir=rtl].pt-chart-label{float:right;margin-right:0;margin-left:8px}.tp-lchart{background:url(../../img/report/lchart.png) center no-repeat}.tp-bchart{background:url(../../img/report/vchart.png) center no-repeat}.pt-pchart{background:url(../../img/report/pchart.png) center no-repeat}.pt-vchart{background:url(../../img/report/vchart.png) center no-repeat}.pt-hchart{background:url(../../img/report/hchart.png) center no-repeat}.pt-schart{background:url(../../img/report/pchart.png) center no-repeat}.tp-chart-contents,.pt-chart-contents{background-color:#fffdf6;padding:8px;border:1px solid #999;margin-top:5px;margin-bottom:5px;position:relative}.pt-chart-contents .pt-chart-title{position:absolute;left:8;top:0}.pt-chart-contents .pt-chart-title h4{font-size:1.0rem;font-weight:normal}.pt-chart-contents .pt-hide-chart{cursor:pointer;min-height:16px;min-width:16px;background:url(../../img/cross.png) right top no-repeat}.pt-chart-contents .pt-chart{margin-top:20px}.pt-chart-contents .pt-spectrum-pie{height:140px}.pt-chart-contents .pt-spectrum-pie svg.nv{float:left;width:auto}.pt-chart-contents .pt-spectrum-bar{height:280px;clear:left}.pt-chart-contents .pt-spectrum-form{float:left}.pt-chart-contents .pt-spectrum-form label{font-weight:bold;margin-right:8px;display:block}.pt-chart-contents .pt-spectrum-form select{font-size:0.875rem;max-width:360px}[dir=rtl] .pt-chart-contents .pt-chart-title{left:auto;right:8}[dir=rtl] .pt-chart-contents .pt-hide-chart{background-position:left top}[dir=rtl] .pt-chart-contents .pt-chart{direction:ltr}[dir=rtl] .pt-chart-contents .pt-spectrum-pie svg.nv{float:right;width:auto}[dir=rtl] .pt-chart-contents .pt-spectrum-bar{clear:right}[dir=rtl] .pt-chart-contents .pt-spectrum-form{direction:rtl;float:right}[dir=rtl] .pt-chart-contents .pt-spectrum-form label{margin-right:0;margin-left:8px}.pt-tooltip{font-family:Arial;font-size:13px;text-align:center;padding:4px}.pt-tooltip .pt-tooltip-label{font-weight:bold}.pt-tooltip .pt-tooltip-label,.pt-tooltip .pt-tooltip-text{max-width:175px;white-space:normal}.pt-table-contents{min-height:16px}.pt-table-contents .pt-table{overflow:auto}.pt-table-contents .pt-table th{border-bottom:0}.pt-table-contents .pt-table tr.pt-totals-row th.pt-totals-header{border-bottom:1px solid #ccc;border-top:2px solid #ccc}.pt-table-contents .pt-table .pt-totals-header,.pt-table-contents .pt-table .pt-total,.pt-table-contents .pt-table .pt-row-total,.pt-table-contents .pt-table .pt-col-total{font-weight:bold}.pt-table-contents .pt-table .pt-total,.pt-table-contents .pt-table .pt-col-total{border-top:2px solid #ccc}.pt-table-contents .pt-table .pt-total,.pt-table-contents .pt-table .pt-row-total{border-left:2px solid #ccc}.pt-table-contents .pt-table .pt-cell-value{display:inline}.pt-table-contents .pt-table .pt-cell-value li{font-size:0.8rem}.pt-table-contents .pt-table .pt-cell-records{clear:left}.pt-table-contents .pt-table td{min-width:60px;padding-right:16px;white-space:nowrap}.pt-table-contents .pt-table td .pt-cell-zoom{width:16px;height:16px;cursor:pointer;display:inline-block;vertical-align:text-top;margin-left:5px;background:url(../../img/silk/magnifier_zoom_in.png) no-repeat top right}.pt-table-contents .pt-table td .pt-cell-zoom.opened{background-image:url(../../img/silk/magnifier_zoom_out.png)}.pt-table-contents .pt-table tfoot{font-style:italic}[dir=rtl] .pt-table-contents .pt-table .pt-total,[dir=rtl] .pt-table-contents .pt-table .pt-row-total{border-left:0;border-right:2px solid #ccc}[dir=rtl] .pt-table-contents .pt-table .pt-cell-records{clear:right}[dir=rtl] .pt-table-contents .pt-table td{padding-right:0;padding-left:16px}[dir=rtl] .pt-table-contents .pt-table td .pt-cell-zoom{margin-left:0;margin-right:5px;background-position:left top}.tp-throbber,.pt-throbber{float:right;padding:5px;z-index:999}[dir=rtl] .tp-throbber,[dir=rtl].pt-throbber{float:left}.gi-empty,.tp-empty,.pt-empty,.pt-no-data{font-style:italic;font-size:0.8rem}.tp-chart-controls,.tp-chart.contents,.pt-toggle-table,.pt-chart-controls,.pt-chart-contents,.pt-table-controls,.pt-table-contents{clear:left}[dir=rtl] .tp-chart-controls,[dir=rtl].tp-chart.contents,[dir=rtl].pt-toggle-table,[dir=rtl].pt-chart-controls,[dir=rtl].pt-chart-contents,[dir=rtl].pt-table-controls,[dir=rtl].pt-table-contents{clear:right}.pt-toggle-table{display:inline-block}.pt-show-table,.pt-hide-table{font-size:10px;cursor:pointer;color:#039;text-decoration:underline;margin-bottom:3px}.pt-show-table{display:none}.pt-table-controls{position:relative;padding:0.4rem 0}.pt-export-table{text-align:right;margin:0.3rem;display:inline-block;position:absolute;right:0}[dir=rtl] .pt-export-table{text-align:left;left:0}.pt-export-opt{background-repeat:no-repeat;background-position:center;width:16px;height:16px;display:inline-block;cursor:pointer}.pt-export-xls{background-image:url("../../img/icon-xls.png")}.gi-table table{border-collapse:separate}.gi-table table thead td,.gi-table table tfoot td{background-color:#333;color:#fff}.gi-group-header.gi-level-1 td{background-color:#999;color:#fff}.gi-group-header.gi-level-1 td a{color:#fff}.gi-group-header.gi-level-2 td{background-color:#eee;border-top:1px solid #999}.gi-group-footer.gi-level-1 td{background-color:#999;color:#fff;border-bottom:1px dotted #666}.gi-group-footer.gi-level-1 td a{color:#fff}.gi-group-footer.gi-level-2 td{background-color:#eee;border-bottom:1px solid #999}.gi-group-footer-inline-label{display:inline-block;font-size:11px;line-height:1;position:relative;top:-0.1em;margin:0 0.25em 0 1em;padding:0.25em 0.75em;text-transform:uppercase;background-color:#ccc;color:#666}[dir=rtl] .gi-group-footer-inline-label{margin:0 1em 0 0.25em}.gi-export-formats{display:inline}.gi-export-formats .gi-export{height:16px;width:16px;display:inline-block;padding-right:1.2rem;padding-bottom:1.5rem;background-repeat:no-repeat;cursor:pointer}[dir=rtl] .gi-export-formats{padding-right:0;padding-left:1.2rem}.rm-form table{font-size:0.8rem}.rm-form table th,.rm-form table td{text-align:left}.rm-form .controls{width:100%}.rm-form .rm-assign .action-lnk,.rm-form .rm-rules .action-lnk{display:inline-block;color:#000548;font-style:normal}.rm-form .rm-toggle-all{margin-top:0.2rem;margin-bottom:0.5rem}.rm-form .rm-assign{width:80%;border-collapse:separate;border-spacing:0}.rm-form .rm-assign th{min-width:10rem}.rm-form .rm-assign th:first-child{width:25%}.rm-form .rm-assign td{padding:0.5rem}.rm-form .rm-assign tfoot td{border-top:1px solid #C0C0C0}.rm-form .rm-assign .rm-item-name,.rm-form .rm-assign .rm-item-title{display:block}.rm-form .rm-assign .rm-item-title{font-size:0.8rem;font-style:italic;color:#A0A0A0}.rm-form .rm-assign .rm-duplicate td{border-top:1px solid red;border-bottom:1px solid red}.rm-form .rm-assign .rm-duplicate td:first-child{border-left:1px solid red}.rm-form .rm-assign .rm-duplicate td:last-child{border-right:1px solid red}.rm-form .rm-module-rules{width:100%}.rm-form .rm-module-rules .rm-module-header{cursor:pointer;background-color:#F0F0F0}.rm-form .rm-module-rules .rm-module-header div{margin-right:0.3rem;display:inline-block}.rm-form .rm-module-rules .rm-module-header .rm-module-toggle{width:0.5rem}.rm-form .rm-module-rules .rm-module-header .rm-module-prefix{width:6.5rem}.rm-form .rm-module-rules .rm-module-header .rm-module-numrules{font-weight:normal}.rm-form .rm-module-rules.hasrules .rm-module-header{background-color:#D0D0D0}.rm-form .rm-module-rules th,.rm-form .rm-module-rules td{padding:0.5rem}.rm-form .rm-module-rules .rm-default-rule td,.rm-form .rm-module-rules .rm-default-permissions td{font-style:italic;color:#a0a0a0}.rm-form .rm-module-rules .rm-rule-target{width:20%}.rm-form input.rm-invalid{background-color:#FFA0A0}[dir=rtl] .rm-form .rm-module-rules .rm-module-header div{margin-right:0;margin-left:0.3rem}[dir=rtl] .rm-form .rm-assign .rm-duplicate td:first-child{border-left:0;border-right:1px solid red}[dir=rtl] .rm-form .rm-assign .rm-duplicate td:last-child{border-right:0;border-left:1px solid red}.rm-fixed,.rm-hint{display:block;font-style:italic;font-size:0.8rem;color:#AAAAAA}.rm-roles-actions{text-align:right !important}[dir=rtl] .rm-roles-actions{text-align:left !important}.system-info{width:100%;margin-top:0.8rem}.system-info table{width:auto;margin:auto;border:2px solid #000548}.system-info table tr{border:0}.system-info table td{font-size:0.8rem;line-height:0.8rem;background-color:#ffffff}.system-info table td:nth-child(2){font-size:0.7rem}.system-info .about-subheader td{background-color:#f0f1f2;font-size:0.9rem;font-weight:bold;line-height:0.9rem}#site-title{text-align:center;padding-top:2rem;margin-bottom:3rem}#site-title h2,#site-title h3{font-weight:normal;background:none;padding:0.35rem 0;margin:0}#site-title h2{font-size:2.3125rem}#login_box{width:100%;background:transparent;border:0}#login_box #login_form h3{font-size:1.6875rem;padding:0.35rem 0}#site-actions{margin-top:1.25rem}@keyframes blinker{50%{opacity:0}}.announcements-title{font-variant:all-small-caps;font-weight:bold}.announcements{margin:0;padding:0 0 0 1rem;border-left:1px solid #000548;list-style:none outside none}.announcements ul,.announcements ol{padding-left:20px;list-style:none outside none}.announcements li{padding:10px 0 0}.announcements .fright{float:right}.announcements .announcement-box{display:block;background:#fff7d9;border:1px solid #aaa;overflow:hidden;padding:0.7rem;margin-bottom:1.5rem}.announcements .announcement-box.announcement-important .announcement-icon{color:#0088ca}.announcements .announcement-box.announcement-critical{border:1px solid #ca0000;background-color:#ffebea}.announcements .announcement-box.announcement-critical .announcement-icon{color:#ca0000;animation:blinker 0.7s step-start 4}.announcements .announcement-box .announcement-header .announcement-icon{display:inline-block;font-size:1.3rem;padding:0 0.7rem 0 0}.announcements .announcement-box .announcement-header h4{display:inline-block}.announcements .announcement-box .announcement-text{font-size:0.9rem;line-height:1.3}.announcements .announcement-box .announcement-text h4{font-size:1.2rem}.announcements .announcement-box .announcement-text ul{list-style:disc outside none}.announcements .announcement-box .announcement-text ol{list-style:decimal outside none}.announcements .announcement-box .announcement-text li{padding:0}.announcements .announcement-box .announcement-text div{white-space:pre-line}.announcements .announcement-box .announcement-text .announcement-header{margin:0 0 0.8rem 0}.announcements .announcement-box .announcement-text announcement-body{white-space:pre-line}.announcements .announcement-box .announcement-text announcement-body p{margin-left:1rem}.announcements .announcement-box .announcement-date{font-size:0.7rem;margin-top:0.4rem}[dir=rtl] .announcements{padding:0 1rem 0 0;border-left:0;border-right:1px solid #000548}[dir=rtl] .announcements ul,[dir=rtl] .announcements ol{padding-left:0;padding-right:20px}[dir=rtl] .announcements .fright{float:left}[dir=rtl] .announcements .announcement-box .announcement-header .announcement-icon{padding:0 0 0 0.7rem}[dir=rtl] .announcements .announcement-box .announcement-header announcement-body p{margin-left:0;margin-right:1rem}.overdue{color:red}.invalid-case{border:1px solid red;color:red;font-size:1.1rem;font-weight:bold;line-height:1.9rem;margin-bottom:0.25rem;padding:0.1rem 0.2rem;text-transform:uppercase}.checkpoint-advise{background:#fff0f0 none repeat scroll 0 0;border:2px solid red;margin-bottom:1rem;padding:0.6rem}.checkpoint-advise p{white-space:pre-wrap}.checkpoint-person{font-weight:bold;margin-bottom:0.5rem}.check-in-warning{color:red;font-weight:bold;margin-left:0.5rem}.check-in-warning i{margin-right:0.3rem}#site_check_in_info__row .controls{width:100%}#site_check_in_status__row .controls{padding-top:0.3rem;width:100%}#check-in-form .status-label{font-size:0.9rem}#check-in-form .status-message{font-size:0.9rem;font-weight:bold}#check-in-form .person-details{font-size:1rem}.clear-btn{cursor:pointer}.clear-btn .fa{color:#b0b0b0}.event-registration .org-header{margin-top:0.3rem}.event-registration .org-header .org-name{font-size:1.0rem;padding:0.4rem;border:1px solid red;background-color:#ffe0e0}.event-registration .org-header.selected .org-name{border:1px solid transparent;background:transparent}.event-registration .org-header.empty .org-name{border-color:#ddd;background:transparent;color:#aaa}.event-registration .event-type-header{margin-top:0.3rem;text-align:center}.event-registration .event-type-header .event-type-name{font-size:1.2rem;padding:0.3rem;border:1px solid #43733f;background:#4a9d4f1a}.event-registration .event-type-header.challenge .event-type-name{border-color:red;background-color:#ffe0e0}.event-registration .event-type-header.empty .event-type-name{border-color:#ddd;background:transparent;color:#aaa}.event-registration .case-event-registration .event-registration-blocked{background-color:#ffaaaa;color:black;padding:0.2rem 0.5rem;margin:0.2rem 0.6rem}.event-registration .case-event-registration .controls{width:100%}.event-registration .case-event-registration .controls.has-flaginfo table,.event-registration .case-event-registration .controls.has-details table{width:100%;border:none}.event-registration .case-event-registration .person-details{font-size:1.1rem;font-weight:bold}.event-registration .family-members{width:100%;border-collapse:collapse}.event-registration .family-members div.member-show-picture{height:2.7rem}.event-registration .family-members .member-id{color:#808080;font-size:0.8rem;margin-bottom:0.1rem}.event-registration .family-members .member-message{margin:0;color:#e0767a;font-size:0.8rem;font-style:normal}.event-registration .family-members .member-message .columns{padding:0}.event-registration .family-members .family-member td{border-bottom:1px solid #e0e0e0;background-color:white}.event-registration .family-members .family-member.member-blocked td{background-color:#f6f6f6}.event-registration .family-members .family-member.member-blocked td .member-id,.event-registration .family-members .family-member.member-blocked td .member-name{color:#b0b0b0}.event-registration .family-members .family-all td{background-color:#f0f8f6;color:#505050;font-style:italic;height:2.7rem}.event-registration .family-members button.member-show-picture.showing{border:1px solid black}.event-registration .profile-picture{margin:1rem 0;max-width:80%}.event-registration .profile-picture .member-caption{padding:0.3rem 0;font-size:1.4rem}.event-bottom{border-top:1px solid #ddd;padding-top:0.5rem}.event-bottom .username{padding:0}#dvr_response_action_response_theme_ids__row .ui-multiselect.ui-widget,#sub-defaultresponse_action .ui-multiselect.ui-widget{width:28rem !important;max-width:100%}.ui-widget-content{max-width:100%}.dvr-response-action-theme{font-size:0.8rem}.dvr-response-action-theme h6{font-size:0.9rem;font-weight:bold;color:black;margin:0}.dvr-response-action-theme .text-body{margin:0.125rem 0.25rem 0.5rem 0.25rem}.file-repr i.fa{font-size:1.1rem}.file-repr .file-size{padding:0 0.4rem;font-size:0.7rem}.occupancy-bar{border:1px solid black;position:relative;padding:0 2px;min-width:4rem}.occupancy-bar .occupancy{display:block;position:absolute;top:0;left:0}.occupancy-bar .occupancy:before{content:"-";visibility:hidden}.occupancy-bar .occupancy.occupancy-0{width:1%;background-color:rgba(0,85,0,0.5)}.occupancy-bar .occupancy.occupancy-10{width:10%;background-color:rgba(0,115,0,0.5)}.occupancy-bar .occupancy.occupancy-20{width:20%;background-color:rgba(0,145,0,0.5)}.occupancy-bar .occupancy.occupancy-30{width:30%;background-color:rgba(70,160,0,0.5)}.occupancy-bar .occupancy.occupancy-40{width:40%;background-color:rgba(100,160,0,0.5)}.occupancy-bar .occupancy.occupancy-50{width:50%;background-color:rgba(160,160,0,0.5)}.occupancy-bar .occupancy.occupancy-60{width:60%;background-color:rgba(175,145,0,0.5)}.occupancy-bar .occupancy.occupancy-70{width:70%;background-color:rgba(190,120,0,0.5)}.occupancy-bar .occupancy.occupancy-80{width:80%;background-color:rgba(205,80,0,0.5)}.occupancy-bar .occupancy.occupancy-90{width:90%;background-color:rgba(220,40,0,0.5)}.occupancy-bar .occupancy.occupancy-100{width:100%;background-color:rgba(235,20,0,0.5)}.occupancy-bar .occupancy.occupancy-exc{width:100%;background-color:rgba(200,0,0,0.6)}.shelter-overview-stats{font-size:0.8rem;background-color:#eaeaea;padding:0.2rem;border:1px solid #e0e0e0}.shelter-overview-stats .spacer{background-color:#eaeaea}.shelter-overview-stats h5{font-size:0.9rem;font-weight:bold;text-align:center}.shelter-overview-stats table{width:100%;border:0;border-collapse:collapse}.shelter-overview-stats table th{font-weight:normal}.shelter-overview-stats table td{font-weight:bold}.shelter-overview-stats table .stats-excess{background-color:#ffced5}.shelter-overview-stats table .stats-total{font-size:1.0rem}.shelter-overview-stats table .stats-total th{font-weight:bold}.shelter-overview-residents h4{border-top:1px solid #ccc;padding:0.5rem 0;margin-top:0.75rem;font-size:1.1rem;font-weight:bold}.shelter-overview-residents .units-actions .units-search,.shelter-overview-residents .units-actions .units-expand{display:inline-block;margin-bottom:0.6rem}.shelter-overview-residents .units-actions .units-search{margin-right:5%}.shelter-overview-residents .units-actions .units-search input{margin-left:0.6rem;margin-right:0}.shelter-overview-residents .units-actions .units-search input.filtered{border:1px solid black;background-color:#e5ffe5}.shelter-overview-residents .units-actions .units-search .clear-search{padding:0 0.3rem;line-height:inherit;font-size:0.9rem;margin:0;border:1px solid #ccc;cursor:pointer;vertical-align:top;color:#666;background-color:#ccc}.shelter-overview-residents .units-actions .units-expand .action-lnk{margin-right:0.6rem}.shelter-overview-residents .units-list{min-width:71%}.shelter-overview-residents .units-list .unit{}.shelter-overview-residents .units-list .unit .unit-data{position:relative}.shelter-overview-residents .units-list .unit .unit-data .capacity{position:absolute;top:0.4rem;right:6rem;padding:0.2rem 0.5rem}.shelter-overview-residents .units-list .unit .unit-data .capacity span{font-size:0.9rem;margin-right:0.3rem}.shelter-overview-residents .units-list .unit .unit-data .capacity span.c-free,.shelter-overview-residents .units-list .unit .unit-data .capacity span.c-blocked,.shelter-overview-residents .units-list .unit .unit-data .capacity span.c-planned{margin-left:0.7rem}.shelter-overview-residents .units-list .unit .unit-data .capacity span.c-free{color:green}.shelter-overview-residents .units-list .unit .unit-data .capacity span.c-blocked{color:red}.shelter-overview-residents .units-list .unit .unit-data .capacity span.c-zero{color:#aaa}.shelter-overview-residents .units-list .unit .unit-data .capacity span.c-total{font-size:0.7rem}.shelter-overview-residents .units-list .unit .unit-data .capacity span .fa{margin-right:0.3rem}.shelter-overview-residents .units-list .unit .unit-data .unit-expand{position:absolute;top:0.8rem;right:1.5rem}.shelter-overview-residents .units-list .unit .unit-data .unit-expand .expand{display:none}.shelter-overview-residents .units-list .unit .unit-data .unit-expand .collapse{display:block}.shelter-overview-residents .units-list .unit tr{border-left:2px solid #AAA;border-right:2px solid #AAA}.shelter-overview-residents .units-list .unit.collapsed .details{visibility:collapse}.shelter-overview-residents .units-list .unit.collapsed .unit-expand .expand{display:block}.shelter-overview-residents .units-list .unit.collapsed .unit-expand .collapse{display:none}.shelter-overview-residents .units-list .unit .unit-header{padding:0;background-color:#DDD;border-top:3px solid #AAA;border-collapse:separate}.shelter-overview-residents .units-list .unit .unit-header .unit-label{padding:0.3rem 0.1rem;font-size:1.1rem;font-weight:bold}.shelter-overview-residents .units-list .unit .unit-header .unit-link i.fa{margin-right:1.2rem}.shelter-overview-residents .units-list .unit .unit-header .unit-link i.fa.fa-ban{color:#d71919}.shelter-overview-residents .units-list .unit .unit-header .unit-link i.fa.fa-check{color:#070}.shelter-overview-residents .units-list .unit .resident-header{}.shelter-overview-residents .units-list .unit .resident-header th{font-size:0.9rem;color:#777;padding:0.2rem 0.5rem}.shelter-overview-residents .units-list .unit .resident{}.shelter-overview-residents .units-list .unit .resident td{padding:0.2rem 0.5rem;font-size:0.9rem;color:#333}.shelter-overview-residents .units-list .unit .resident td.resident-name{font-weight:bold}.shelter-overview-residents .units-list .unit .resident td.resident-presence{text-align:center}.shelter-overview-residents .units-list .unit .resident.planned td{font-style:italic;color:#888}.shelter-overview-residents .units-list .unit .resident.planned td a{color:#888}.shelter-overview-residents .units-list .unit .resident.group-even{background-color:#fdfdfd}.shelter-overview-residents .units-list .unit .resident.group-odd{background-color:#f9f9f9}.shelter-overview-residents .units-list .unit .capacity-free{background-color:#b9ffb9}.shelter-overview-residents .units-list .unit .capacity-free td{padding:0.2rem 0.5rem;font-size:0.9rem}.shelter-overview-residents .units-list .unit .capacity-blocked{background-color:#ffced5}.shelter-overview-residents .units-list .unit .capacity-blocked td{padding:0.2rem 0.5rem;font-size:0.9rem}.shelter-overview-residents .units-list .unit .unit-subheader{border-top:2px solid #AAA}.shelter-overview-residents .units-list .unit .unit-subheader .residents-planned{font-size:0.7rem;padding:0.2rem;color:#666}.shelter-overview-residents .units-list .unit .unit-spacer{border:none;border-top:3px solid #AAA}.shelter-overview-residents .units-list .unit .unit-spacer td{border:none;min-height:0.5rem}.id-card-data{border:1px solid #ccc;padding:1rem}.id-card-data .button i.fa{margin-right:0.5rem}.id-card-warning{border:1px solid red;padding:0.5rem;margin:1rem;background:#fff1df;font-size:1rem}.client-gender-age{font-size:0.7rem;vertical-align:top;color:#999;margin:0 1rem}.client-gender-age .fa{margin:0 0.2rem}.last-seen-critical,.last-seen-warning{cursor:pointer}.last-seen-critical .fa,.last-seen-warning .fa{margin:0.2rem}.last-seen-critical{color:#c10031}.last-seen-warning{color:#bd5900}.rhist{border:1px solid #ccc;margin-bottom:0.7rem;padding:0.5rem;background-color:#fafafa}.rhist .action-btn .fa{margin-left:0.3rem;font-size:10px}.rhist table{border:1px solid #ccc;border-collapse:collapse;margin:1rem 3rem}.rhist table th,.rhist table td{padding:0.2rem 0.7rem;border:0;cursor:default}.rhist table th{font-size:0.8rem;font-weight:normal;font-style:italic;color:grey;border-bottom:1px solid #ccc}.rhist table td{font-size:0.9rem;font-weight:bold}.rhist table td.rhist-planned{font-size:0.7rem;font-weight:normal;color:grey}.rhist table .rhist-headers{background-color:#eee}.rhist table .rhist-current{background-color:#dff4bf}.rhist .empty{margin:0.7rem 1.4rem}.table-report-form{width:auto;border:1px solid #eee;padding:0.5rem}.table-report-data{font-size:0.875rem;max-height:80vh;overflow:scroll;padding:0.3rem;margin-top:0.7rem}.table-report-data table,.table-report-data th,.table-report-data td{border:1px solid #ccc}.table-report-data thead th{text-align:center}.table-report-data tbody tr:nth-child(even){background:#fafafa} \ No newline at end of file diff --git a/static/themes/JUH/scss/theme/_misc.scss b/static/themes/JUH/scss/theme/_misc.scss index 299308def..603dd132a 100644 --- a/static/themes/JUH/scss/theme/_misc.scss +++ b/static/themes/JUH/scss/theme/_misc.scss @@ -631,6 +631,7 @@ padding: 0.5rem; } .table-report-data { + font-size: 0.875rem; max-height: 80vh; overflow: scroll; padding: 0.3rem; diff --git a/static/themes/JUH/theme.css b/static/themes/JUH/theme.css index f8b0e3dbe..ff06ef7da 100644 --- a/static/themes/JUH/theme.css +++ b/static/themes/JUH/theme.css @@ -5378,20 +5378,21 @@ h4.profile-sub-header { /* line 633, ../scss/theme/_misc.scss */ .table-report-data { + font-size: 0.875rem; max-height: 80vh; overflow: scroll; padding: 0.3rem; margin-top: 0.7rem; } -/* line 638, ../scss/theme/_misc.scss */ +/* line 639, ../scss/theme/_misc.scss */ .table-report-data table, .table-report-data th, .table-report-data td { border: 1px solid #ccc; } -/* line 641, ../scss/theme/_misc.scss */ +/* line 642, ../scss/theme/_misc.scss */ .table-report-data thead th { text-align: center; } -/* line 645, ../scss/theme/_misc.scss */ +/* line 646, ../scss/theme/_misc.scss */ .table-report-data tbody tr:nth-child(even) { background: #fafafa; }