/* page-loading
---------------------------------------------------*/
#page-loading {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    width: 100%;
    height: 100vh;
}
#page-loading.is-active {
    display: block;
}
#page-loading .overlay {
    position: absolute;
    top: 0;
    left: 0;
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.2);
    user-select: none;
}
#page-loading .spinner img {
    width: 60px;
}

body {
    color: var(--font-color-main);
    background-color: var(--background-color);
}

:root {
    --md-source: #287549;
    /* primary */
    --md-ref-palette-primary0: #010302;
    --md-ref-palette-primary10: #07160E;
    --md-ref-palette-primary20: #0E291A;
    --md-ref-palette-primary25: #143C26;
    --md-ref-palette-primary30: #1B4F32;
    --md-ref-palette-primary35: #21623D;
    --md-ref-palette-primary40: #287549;
    --md-ref-palette-primary50: #2E8855;
    --md-ref-palette-primary60: #359B61;
    --md-ref-palette-primary70: #3cb371;
    --md-ref-palette-primary80: #57C587;
    --md-ref-palette-primary90: #7DD2A2;
    --md-ref-palette-primary95: #A3DFBD;
    --md-ref-palette-primary98: #C9ECD8;
    --md-ref-palette-primary99: #DCF3E6;
    --md-ref-palette-primary100: #EFF9F4;
    /* secondary */
    --md-ref-palette-secondary0: #000000;
    --md-ref-palette-secondary10: #0d1d29;
    --md-ref-palette-secondary20: #22323f;
    --md-ref-palette-secondary25: #2d3d4b;
    --md-ref-palette-secondary30: #394856;
    --md-ref-palette-secondary35: #445462;
    --md-ref-palette-secondary40: #50606f;
    --md-ref-palette-secondary50: #697988;
    --md-ref-palette-secondary60: #8293a2;
    --md-ref-palette-secondary70: #9dadbd;
    --md-ref-palette-secondary80: #b8c8d9;
    --md-ref-palette-secondary90: #d4e4f6;
    --md-ref-palette-secondary95: #e6f2ff;
    --md-ref-palette-secondary98: #f7f9ff;
    --md-ref-palette-secondary99: #fcfcff;
    --md-ref-palette-secondary100: #ffffff;
    /* tertiary */
    --md-ref-palette-tertiary0: #000000;
    --md-ref-palette-tertiary10: #211634;
    --md-ref-palette-tertiary20: #362b4a;
    --md-ref-palette-tertiary25: #423656;
    --md-ref-palette-tertiary30: #4d4162;
    --md-ref-palette-tertiary35: #594c6e;
    --md-ref-palette-tertiary40: #66587b;
    --md-ref-palette-tertiary50: #7f7195;
    --md-ref-palette-tertiary60: #998ab0;
    --md-ref-palette-tertiary70: #b4a4cb;
    --md-ref-palette-tertiary80: #d0bfe7;
    --md-ref-palette-tertiary90: #ecdcff;
    --md-ref-palette-tertiary95: #f7edff;
    --md-ref-palette-tertiary98: #fef7ff;
    --md-ref-palette-tertiary99: #fffbff;
    --md-ref-palette-tertiary100: #ffffff;
    /* neutral */
    --md-ref-palette-neutral0: #000000;
    --md-ref-palette-neutral10: #1a1c1e;
    --md-ref-palette-neutral20: #2e3133;
    --md-ref-palette-neutral25: #3a3c3e;
    --md-ref-palette-neutral30: #454749;
    --md-ref-palette-neutral35: #515255;
    --md-ref-palette-neutral40: #5d5e61;
    --md-ref-palette-neutral50: #76777a;
    --md-ref-palette-neutral60: #8f9194;
    --md-ref-palette-neutral70: #aaabae;
    --md-ref-palette-neutral80: #c6c6c9;
    --md-ref-palette-neutral90: #e2e2e5;
    --md-ref-palette-neutral95: #f0f0f3;
    --md-ref-palette-neutral98: #f9f9fc;
    --md-ref-palette-neutral99: #fcfcff;
    --md-ref-palette-neutral100: #ffffff;
    /* neutral-variant */
    --md-ref-palette-neutral-variant0: #000000;
    --md-ref-palette-neutral-variant10: #161c22;
    --md-ref-palette-neutral-variant20: #2b3137;
    --md-ref-palette-neutral-variant25: #363c42;
    --md-ref-palette-neutral-variant30: #41474d;
    --md-ref-palette-neutral-variant35: #4d5359;
    --md-ref-palette-neutral-variant40: #595f65;
    --md-ref-palette-neutral-variant50: #72787e;
    --md-ref-palette-neutral-variant60: #8b9198;
    --md-ref-palette-neutral-variant70: #a6acb3;
    --md-ref-palette-neutral-variant80: #c1c7ce;
    --md-ref-palette-neutral-variant90: #dee3ea;
    --md-ref-palette-neutral-variant95: #ecf1f9;
    --md-ref-palette-neutral-variant98: #f7f9ff;
    --md-ref-palette-neutral-variant99: #fcfcff;
    --md-ref-palette-neutral-variant100: #ffffff;
    /* error */
    --md-ref-palette-error0: #000000;
    --md-ref-palette-error10: #410002;
    --md-ref-palette-error20: #690005;
    --md-ref-palette-error25: #7e0007;
    --md-ref-palette-error30: #93000a;
    --md-ref-palette-error35: #a80710;
    --md-ref-palette-error40: #ba1a1a;
    --md-ref-palette-error50: #de3730;
    --md-ref-palette-error60: #ff5449;
    --md-ref-palette-error70: #ff897d;
    --md-ref-palette-error80: #ffb4ab;
    --md-ref-palette-error90: #ffdad6;
    --md-ref-palette-error95: #ffedea;
    --md-ref-palette-error98: #fff8f7;
    --md-ref-palette-error99: #fffbff;
    --md-ref-palette-error100: #ffffff;
    /* light */
    --md-sys-color-primary-light: #006495;
    --md-sys-color-on-primary-light: #ffffff;
    --md-sys-color-primary-container-light: #cbe6ff;
    --md-sys-color-on-primary-container-light: #001e30;
    --md-sys-color-secondary-light: #50606f;
    --md-sys-color-on-secondary-light: #ffffff;
    --md-sys-color-secondary-container-light: #2e8b57;
    --md-sys-color-on-secondary-container-light: #0d1d29;
    --md-sys-color-tertiary-light: #66587b;
    --md-sys-color-on-tertiary-light: #ffffff;
    --md-sys-color-tertiary-container-light: #ecdcff;
    --md-sys-color-on-tertiary-container-light: #211634;
    --md-sys-color-error-light: #ba1a1a;
    --md-sys-color-error-container-light: #ffdad6;
    --md-sys-color-on-error-light: #ffffff;
    --md-sys-color-on-error-container-light: #410002;
    --md-sys-color-background-light: #dcdcdc;
    --md-sys-color-on-background-light: #1a1c1e;
    --md-sys-color-surface-light: #fcfcff;
    --md-sys-color-on-surface-light: #1a1c1e;
    --md-sys-color-surface-variant-light: #dee3ea;
    --md-sys-color-on-surface-variant-light: #41474d;
    --md-sys-color-outline-light: #72787e;
    --md-sys-color-inverse-on-surface-light: #f0f0f3;
    --md-sys-color-inverse-surface-light: #2e3133;
    --md-sys-color-inverse-primary-light: #8fcdff;
    --md-sys-color-shadow-light: #000000;
    --md-sys-color-surface-tint-light: #006495;
    --md-sys-color-outline-variant-light: #c1c7ce;
    --md-sys-color-scrim-light: #000000;
    /* dark */
    --md-sys-color-primary-dark: #8fcdff;
    --md-sys-color-on-primary-dark: #ffffff;
    --md-sys-color-primary-container-dark: #004b71;
    --md-sys-color-on-primary-container-dark: #cbe6ff;
    --md-sys-color-secondary-dark: #b8c8d9;
    --md-sys-color-on-secondary-dark: #22323f;
    --md-sys-color-secondary-container-dark: #2e8b57;
    --md-sys-color-on-secondary-container-dark: #d4e4f6;
    --md-sys-color-tertiary-dark: #d0bfe7;
    --md-sys-color-on-tertiary-dark: #362b4a;
    --md-sys-color-tertiary-container-dark: #4d4162;
    --md-sys-color-on-tertiary-container-dark: #ecdcff;
    --md-sys-color-error-dark: #ffb4ab;
    --md-sys-color-error-container-dark: #93000a;
    --md-sys-color-on-error-dark: #690005;
    --md-sys-color-on-error-container-dark: #ffdad6;
    --md-sys-color-background-dark: #1a1c1e;
    --md-sys-color-on-background-dark: #e2e2e5;
    --md-sys-color-surface-dark: #1a1c1e;
    --md-sys-color-on-surface-dark: #e2e2e5;
    --md-sys-color-surface-variant-dark: #41474d;
    --md-sys-color-on-surface-variant-dark: #c1c7ce;
    --md-sys-color-outline-dark: #8b9198;
    --md-sys-color-inverse-on-surface-dark: #1a1c1e;
    --md-sys-color-inverse-surface-dark: #e2e2e5;
    --md-sys-color-inverse-primary-dark: #006495;
    --md-sys-color-shadow-dark: #000000;
    --md-sys-color-surface-tint-dark: #8fcdff;
    --md-sys-color-outline-variant-dark: #41474d;
    --md-sys-color-scrim-dark: #000000;

    --md-sys-color-primary: var(--md-sys-color-primary-light);
    --md-sys-color-on-primary: var(--md-sys-color-on-primary-light);
    --md-sys-color-primary-container: var(--md-sys-color-primary-container-light);
    --md-sys-color-on-primary-container: var(--md-sys-color-on-primary-container-light);
    --md-sys-color-secondary: var(--md-sys-color-secondary-light);
    --md-sys-color-on-secondary: var(--md-sys-color-on-secondary-light);
    --md-sys-color-secondary-container: var(--md-sys-color-secondary-container-light);
    --md-sys-color-on-secondary-container: var(--md-sys-color-on-secondary-container-light);
    --md-sys-color-tertiary: var(--md-sys-color-tertiary-light);
    --md-sys-color-on-tertiary: var(--md-sys-color-on-tertiary-light);
    --md-sys-color-tertiary-container: var(--md-sys-color-tertiary-container-light);
    --md-sys-color-on-tertiary-container: var(--md-sys-color-on-tertiary-container-light);
    --md-sys-color-error: var(--md-sys-color-error-light);
    --md-sys-color-error-container: var(--md-sys-color-error-container-light);
    --md-sys-color-on-error: var(--md-sys-color-on-error-light);
    --md-sys-color-on-error-container: var(--md-sys-color-on-error-container-light);
    --md-sys-color-background: var(--md-sys-color-background-light);
    --md-sys-color-on-background: var(--md-sys-color-on-background-light);
    --md-sys-color-surface: var(--md-sys-color-surface-light);
    --md-sys-color-on-surface: var(--md-sys-color-on-surface-light);
    --md-sys-color-surface-variant: var(--md-sys-color-surface-variant-light);
    --md-sys-color-on-surface-variant: var(--md-sys-color-on-surface-variant-light);
    --md-sys-color-outline: var(--md-sys-color-outline-light);
    --md-sys-color-inverse-on-surface: var(--md-sys-color-inverse-on-surface-light);
    --md-sys-color-inverse-surface: var(--md-sys-color-inverse-surface-light);
    --md-sys-color-inverse-primary: var(--md-sys-color-inverse-primary-light);
    --md-sys-color-shadow: var(--md-sys-color-shadow-light);
    --md-sys-color-surface-tint: var(--md-sys-color-surface-tint-light);
    --md-sys-color-outline-variant: var(--md-sys-color-outline-variant-light);
    --md-sys-color-scrim: var(--md-sys-color-scrim-light);

    --background-color: var(--md-sys-color-background-light);
    --font-color-main: var(--md-sys-color-on-background-light);
    --input-background-color: #ffffff;
    --input-font-color: #212121;
    --input-border-color: #9e9e9e;
}

[theme="dark"] {
    --md-sys-color-primary: var(--md-sys-color-primary-dark);
    --md-sys-color-on-primary: var(--md-sys-color-on-primary-dark);
    --md-sys-color-primary-container: var(--md-sys-color-primary-container-dark);
    --md-sys-color-on-primary-container: var(--md-sys-color-on-primary-container-dark);
    --md-sys-color-secondary: var(--md-sys-color-secondary-dark);
    --md-sys-color-on-secondary: var(--md-sys-color-on-secondary-dark);
    --md-sys-color-secondary-container: var(--md-sys-color-secondary-container-dark);
    --md-sys-color-on-secondary-container: var(--md-sys-color-on-secondary-container-dark);
    --md-sys-color-tertiary: var(--md-sys-color-tertiary-dark);
    --md-sys-color-on-tertiary: var(--md-sys-color-on-tertiary-dark);
    --md-sys-color-tertiary-container: var(--md-sys-color-tertiary-container-dark);
    --md-sys-color-on-tertiary-container: var(--md-sys-color-on-tertiary-container-dark);
    --md-sys-color-error: var(--md-sys-color-error-dark);
    --md-sys-color-error-container: var(--md-sys-color-error-container-dark);
    --md-sys-color-on-error: var(--md-sys-color-on-error-dark);
    --md-sys-color-on-error-container: var(--md-sys-color-on-error-container-dark);
    --md-sys-color-background: var(--md-sys-color-background-dark);
    --md-sys-color-on-background: var(--md-sys-color-on-background-dark);
    --md-sys-color-surface: var(--md-sys-color-surface-dark);
    --md-sys-color-on-surface: var(--md-sys-color-on-surface-dark);
    --md-sys-color-surface-variant: var(--md-sys-color-surface-variant-dark);
    --md-sys-color-on-surface-variant: var(--md-sys-color-on-surface-variant-dark);
    --md-sys-color-outline: var(--md-sys-color-outline-dark);
    --md-sys-color-inverse-on-surface: var(--md-sys-color-inverse-on-surface-dark);
    --md-sys-color-inverse-surface: var(--md-sys-color-inverse-surface-dark);
    --md-sys-color-inverse-primary: var(--md-sys-color-inverse-primary-dark);
    --md-sys-color-shadow: var(--md-sys-color-shadow-dark);
    --md-sys-color-surface-tint: var(--md-sys-color-surface-tint-dark);
    --md-sys-color-outline-variant: var(--md-sys-color-outline-variant-dark);
    --md-sys-color-scrim: var(--md-sys-color-scrim-dark);

    --background-color: var(--md-sys-color-background-dark);
    --font-color-main: var(--md-sys-color-on-background-dark);
    --input-background-color: #2c2c2c;
    --input-font-color: #e2e2e5;
    --input-border-color: #454749;
}

input:not([type]),
input[type=text]:not(.browser-default),
input[type=password]:not(.browser-default),
input[type=email]:not(.browser-default),
input[type=url]:not(.browser-default),
input[type=time]:not(.browser-default),
input[type=date]:not(.browser-default),
input[type=datetime]:not(.browser-default),
input[type=datetime-local]:not(.browser-default),
input[type=tel]:not(.browser-default),
input[type=number]:not(.browser-default),
input[type=search]:not(.browser-default),
textarea.materialize-textarea {
    background-color: var(--input-background-color);
    color: var(--input-font-color);
    border-bottom: 1px solid var(--input-border-color);
    padding: 0 10px;
    box-sizing: border-box;
}

input:not([type]):focus:not([readonly]),
input[type=text]:not(.browser-default):focus:not([readonly]),
input[type=password]:not(.browser-default):focus:not([readonly]),
input[type=email]:not(.browser-default):focus:not([readonly]),
input[type=url]:not(.browser-default):focus:not([readonly]),
input[type=time]:not(.browser-default):focus:not([readonly]),
input[type=date]:not(.browser-default):focus:not([readonly]),
input[type=datetime]:not(.browser-default):focus:not([readonly]),
input[type=datetime-local]:not(.browser-default):focus:not([readonly]),
input[type=tel]:not(.browser-default):focus:not([readonly]),
input[type=number]:not(.browser-default):focus:not([readonly]),
input[type=search]:not(.browser-default):focus:not([readonly]),
textarea.materialize-textarea:focus:not([readonly]) {
    background-color: var(--input-background-color);
    color: var(--input-font-color);
    border-bottom: 1px solid var(--md-sys-color-primary);
    box-shadow: 0 1px 0 0 var(--md-sys-color-primary);
}

select {
    background-color: var(--input-background-color);
    color: var(--input-font-color);
    border: 1px solid var(--input-border-color);
}

.select-wrapper input.select-dropdown {
    background-color: var(--input-background-color);
    color: var(--input-font-color);
    border-bottom: 1px solid var(--input-border-color);
    padding: 0 10px;
    box-sizing: border-box;
}

/* Materialize validation fix */
input.valid:not([type]), input.valid:not([type]):focus,
input[type=text].valid:not(.browser-default), input[type=text].valid:not(.browser-default):focus,
input[type=password].valid:not(.browser-default), input[type=password].valid:not(.browser-default):focus,
input[type=email].valid:not(.browser-default), input[type=email].valid:not(.browser-default):focus,
input[type=url].valid:not(.browser-default), input[type=url].valid:not(.browser-default):focus,
input[type=time].valid:not(.browser-default), input[type=time].valid:not(.browser-default):focus,
input[type=date].valid:not(.browser-default), input[type=date].valid:not(.browser-default):focus,
input[type=datetime].valid:not(.browser-default), input[type=datetime].valid:not(.browser-default):focus,
input[type=datetime-local].valid:not(.browser-default), input[type=datetime-local].valid:not(.browser-default):focus,
input[type=tel].valid:not(.browser-default), input[type=tel].valid:not(.browser-default):focus,
input[type=number].valid:not(.browser-default), input[type=number].valid:not(.browser-default):focus,
input[type=search].valid:not(.browser-default), input[type=search].valid:not(.browser-default):focus,
textarea.materialize-textarea.valid, textarea.materialize-textarea.valid:focus {
    border-bottom: 1px solid #4CAF50;
    box-shadow: 0 1px 0 0 #4CAF50;
}

input.invalid:not([type]), input.invalid:not([type]):focus,
input[type=text].invalid:not(.browser-default), input[type=text].invalid:not(.browser-default):focus,
input[type=password].invalid:not(.browser-default), input[type=password].invalid:not(.browser-default):focus,
input[type=email].invalid:not(.browser-default), input[type=email].invalid:not(.browser-default):focus,
input[type=url].invalid:not(.browser-default), input[type=url].invalid:not(.browser-default):focus,
input[type=time].invalid:not(.browser-default), input[type=time].invalid:not(.browser-default):focus,
input[type=date].invalid:not(.browser-default), input[type=date].invalid:not(.browser-default):focus,
input[type=datetime].invalid:not(.browser-default), input[type=datetime].invalid:not(.browser-default):focus,
input[type=datetime-local].invalid:not(.browser-default), input[type=datetime-local].invalid:not(.browser-default):focus,
input[type=tel].invalid:not(.browser-default), input[type=tel].invalid:not(.browser-default):focus,
input[type=number].invalid:not(.browser-default), input[type=number].invalid:not(.browser-default):focus,
input[type=search].invalid:not(.browser-default), input[type=search].invalid:not(.browser-default):focus,
textarea.materialize-textarea.invalid, textarea.materialize-textarea.invalid:focus {
    border-bottom: 1px solid #F44336;
    box-shadow: 0 1px 0 0 #F44336;
}

/* Materialize dropdown fix for dark mode */
[theme="dark"] .dropdown-content {
    background-color: var(--md-sys-color-surface-variant);
}

[theme="dark"] .dropdown-content li > a, [theme="dark"] .dropdown-content li > span {
    color: var(--font-color-main);
}

[theme="dark"] .dropdown-content li:hover, [theme="dark"] .dropdown-content li.active {
    background-color: var(--md-sys-color-primary-container);
}

[theme="dark"] .collapsible-header {
    background-color: transparent;
    color: var(--font-color-main);
}

[theme="dark"] .collapsible-body {
    background-color: transparent;
    color: var(--font-color-main);
}

[theme="dark"] .card {
    background-color: var(--md-sys-color-surface-variant);
    color: var(--font-color-main);
}

[theme="dark"] .modal {
    background-color: var(--md-sys-color-surface);
    color: var(--font-color-main);
}

[theme="dark"] .modal .modal-footer {
    background-color: var(--md-sys-color-surface-variant);
}

[theme="dark"] table.highlight > tbody > tr:hover {
    background-color: var(--md-sys-color-surface-variant);
}

[theme="dark"] .collection {
    border: 1px solid var(--md-sys-color-outline);
}

[theme="dark"] .collection .collection-item {
    background-color: var(--md-sys-color-surface);
    border-bottom: 1px solid var(--md-sys-color-outline);
    color: var(--font-color-main);
}

[theme="dark"] .collection .collection-item.active {
    background-color: var(--md-sys-color-primary-container);
    color: var(--md-sys-color-on-primary-container);
}

[theme="dark"] .btn-flat {
    color: var(--md-sys-color-primary);
}
