﻿/* =========================================================
   GLOBAL SITE STYLES
========================================================= */

/*
input,
select,
textarea,
option,
button {
    outline: none !important;
}
*/

body {
    color: rgb(72, 83, 93);
    background-color: #f7f4eb;

    font-family: G-Roboto-n4, Roboto, Arial, sans-serif;
    font-size: 13pt;
    font-style: normal;
    font-weight: 350;
    font-optical-sizing: auto;
    font-variation-settings: "wdth" 100;
    font-feature-settings: "liga" 0;

    scrollbar-color: #cccccc #999999;
}


/* =========================================================
   SCROLLBARS
========================================================= */

body::-webkit-scrollbar {
    width: 12px;
    background-color: #999999;
}

body::-webkit-scrollbar-thumb {
    background-color: #cccccc;
    border-radius: 10px;

    -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1);
}


/* =========================================================
   NUMBER INPUTS
========================================================= */

/* Chrome, Safari, Edge, Opera */

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    margin: 0;

    -webkit-appearance: none;
}

/* Firefox */

input[type="number"] {
    -moz-appearance: textfield;
}


/* =========================================================
   TYPOGRAPHY
========================================================= */

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
    margin: 0 0 15px;

    font-family: G-Roboto-n4, Roboto, Arial, sans-serif;
    font-size: 25px;
    font-weight: 600;
    letter-spacing: 1px;
    line-height: normal;
}

h1 {
    font-size: 15pt;
}

form {
    color: #000000;
}

footer {
    font-family: G-Roboto-n4, Roboto, Arial, sans-serif;
    font-size: 11px;
}

.font-size-small {
    font-size: 14px;
}

.ws {
    white-space: pre-wrap;
}

.header {
    font-weight: 700;
}

.page-header h1 {
    color: #7a2c37;
    font-size: 2em;
}


/* =========================================================
   TEXT AND BACKGROUND UTILITIES
========================================================= */

.text-white {
    color: #ffffff;
}

.text-darkGray {
    color: #6f7f8f;
}

.text-maroon {
    color: #7a2c37;
}

.text-green {
    color: #2c4d34;
}

.bg-white {
    background-color: #ffffff !important;
}

.bg-maroon,
.table .bg-cat-1 {
    color: #ffffff;
    background-color: #7a2c37;
}

.bg-green,
.table .bg-cat-0,
.table .bg-cat-3,
.table .bg-green {
    color: #ffffff;
    background-color: #2c4d34;
}

.bg-darkGray,
.table .bg-darkGray {
    color: #ffffff;
    background-color: #6f7f8f;
}

.table .bg-cat-2 {
    color: #ffffff;
    background-color: #4682b4;
}


/* =========================================================
   LINKS
========================================================= */

a {
    color: rgb(72, 83, 93);
    text-decoration: none;
}

a:hover {
    color: #333333;
}


/* =========================================================
   HEADER
========================================================= */

header {
    color: #ffffff;
    background-color: #2c4d34;

    font-size: 1rem;
}

header .logo {
    max-height: 100px;
}

.nav-item {
    margin-right: 30px;
}

#header {
    min-height: 50px;
}

#topBar {
    font-weight: 300;
}

#topBar .dropdown-toggle::after {
    display: none;
}

app-header {
    display: block;

    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.6);
}

@media (max-width: 992px) {
    header {
        font-size: 1rem;
    }

    header .logo {
        max-height: 50px;
    }
}


/* =========================================================
   APPLICATION SHELL
========================================================= */

#wrap {
    min-height: 95vh;
    padding: 0;

    overflow: hidden;

    line-height: normal;
}

.mainBodyWrap {
    min-height: 90vh;

    background-position-x: center;
    background-position-y: top;
    background-repeat: no-repeat;
    background-size: cover;
}

app-root {
    min-height: 80vh;
}

app-root .holder {
    display: block;

    padding-top: 40vh;

    font-size: 35px;
    font-weight: 700;
    text-align: center;
}


/* =========================================================
   HEIGHT UTILITIES
========================================================= */

.h-80 {
    height: 80%;
}

.h-20 {
    height: 20%;
}

@media (max-width: 992px) {
    .h-80 {
        height: 88%;
    }

    .h-20 {
        height: 12%;
    }
}


/* =========================================================
   VALIDATION
========================================================= */

input.form-control.ng-touched.ng-invalid,
select.form-control.ng-touched.ng-invalid,
select.form-select.ng-touched.ng-invalid {
    border: 2px solid red;
}

input.form-control.ng-touched.ng-invalid {
    padding-right: calc(1.5em + 0.75rem);

    border-color: #dc3545;

    background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/></svg>");
    background-repeat: no-repeat;
    background-position: right calc(0.375em + 0.1875rem) center;
    background-size:
        calc(0.75em + 0.375rem)
        calc(0.75em + 0.375rem);
}

.form-check-input.input-validation-error {
    border: 1px solid red;
}


/* =========================================================
   FORM CONTROLS
========================================================= */

.form-control {
    min-width: 3rem;

    padding-top: 3px;
    padding-bottom: 3px;

    font-family: G-Roboto-n4, Roboto, Arial, sans-serif;
    font-size: 14px;
}

.form-select {
    min-width: 5rem;

    padding-top: 3px;
    padding-bottom: 3px;

    font-family: G-Roboto-n4, Roboto, Arial, sans-serif;
    font-size: 14px;
}

.input-group {
    align-items: center;
}

.input-group-text,
.control-label,
.col-form-label {
    font-size: 14px;
}

.input-group-text-transparent {
    background-color: transparent;
    border-color: transparent;
}

.col-form-label {
    max-width: 100%;

    overflow: hidden;

    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (min-width: 992px) {
    .col-form-label {
        text-align: right;
    }
}

.full-rounded {
    border-top-left-radius: 6px !important;
    border-top-right-radius: 6px !important;
    border-bottom-right-radius: 6px !important;
    border-bottom-left-radius: 6px !important;
}


/* =========================================================
   CHECKBOXES, RADIOS, AND SWITCHES
========================================================= */

.form-check .form-check-input {
    margin-left: -1em;
}

.form-check .form-check-label {
    margin-top: 0.25rem;
    margin-left: 1em;
}

.form-check-input:checked {
    background-color: #2c4d34;
    border-color: #2c4d34;
}

.form-check-input[type="radio"] {
    border-color: #000000;
}

.form-switch .form-check-label {
    margin-top: 0;
    margin-left: 0.5em;

    line-height: 35px;
}

.form-switch .form-check-input[type="checkbox"] {
    width: 50px;
    height: 25px;

    margin-left: -2.5em;

    border-radius: 2em;
}


/* =========================================================
   MULTI-SELECT CONTROLS
========================================================= */

.multi-select-dropdown {
    min-width: 5rem;

    padding-top: 3px;
    padding-bottom: 3px;

    background-color: #ffffff;
    border-width: 1px;
    border-style: solid;
    border-radius: 6px;
}

.multi-select-dropdown .ddl-item {
    color: #6f7f8f;

    font-family: G-Roboto-n4, Roboto, Arial, sans-serif;
    font-size: 14px;
}

.multi-select-placeholder {
    color: #212529;

    font-family: G-Roboto-n4, Roboto, Arial, sans-serif;
    font-size: 14px;
}


/* =========================================================
   DATE PICKER
========================================================= */

ngb-datepicker.dropdown-menu {
    z-index: 100000;
}

div.dpGroup {
    min-width: 8rem;
}

div.dpGroup input.form-control {
    padding-right: 0;
}

div.dpGroup > .btn-secondary {
    padding-right: 8px;
    padding-left: 8px;
}


/* =========================================================
   BUTTONS
========================================================= */

.btn,
a.button,
input.button {
    font-family: G-Roboto-n4, Roboto, Arial, sans-serif;
    font-weight: 300;
}

.btn {
    padding-right: 30px;
    padding-left: 30px;

    font-size: 11pt;
}

.btn-check:checked + .btn,
.btn.active,
.btn.show,
.btn:first-child:active,
:not(.btn-check) + .btn:active,
.btn-primary {
    color: #ffffff;
    background-color: #2c4d34;
    border-color: #2c4d34;
}

.btn-primary:hover,
.btn-primary:active,
.btn-primary:not(:disabled):not(.disabled).active,
.btn-primary:not(:disabled):not(.disabled):active,
.show > .btn-primary.dropdown-toggle {
    background-color: #fe7f41;
    border-color: #fe7f41;
}

.btn-maroon {
    color: #ffffff;
    background-color: #7a2c37;
    border-color: #7a2c37;
}

.btn-maroon:hover,
.btn-maroon:active,
.btn-maroon:not(:disabled):not(.disabled).active,
.btn-maroon:not(:disabled):not(.disabled):active,
.show > .btn-maroon.dropdown-toggle {
    background-color: #ad3e4b;
    border-color: #ad3e4b;
}

.bg-gray,
.btn-gray {
    color: #ffffff;
    background-color: #6f7f8f;
    border-color: #6f7f8f;
}

.btn-gray:hover,
.btn-gray:active,
.btn-gray:not(:disabled):not(.disabled).active,
.btn-gray:not(:disabled):not(.disabled):active,
.show > .btn-gray.dropdown-toggle {
    background-color: #cccccc;
    border-color: #cccccc;
}

.btn-outline-primary,
.btn-check + .btn:hover {
    color: #2c4d34;
    background-color: #ffffff;
    border-color: #2c4d34;
}

.btn-check + .btn-outline-primary:hover,
.btn-outline-primary:hover {
    color: #ffffff;
    background-color: #2c4d34;
    border-color: #2c4d34;
}

.btn-outline-dark {
    color: #ffffff;
    background-color: #cccccc;
    border-color: #cccccc;
}

.btn-outline-dark:not(:disabled):not(.disabled).active,
.btn-outline-dark:not(:disabled):not(.disabled):active,
.btn-check + .btn-outline-dark:hover,
.btn-outline-dark:hover {
    color: #ffffff;
    background-color: #7a2c37;
    border-color: #7a2c37;
}

.btn-check:checked + .btn-outline-success,
.btn-check + .btn-outline-success:hover,
.btn-outline-success:hover {
    color: #ffffff;
    background-color: #198754;
    border-color: #198754;
}

.btn.disabled,
.btn:disabled,
fieldset:disabled .btn {
    color: #ffffff;
    background-color: #cccccc;
    border-color: #cccccc;

    pointer-events: none;
}

.icon-btn {
    margin: 0;
    padding: 0;

    border: none;
}

button.close {
    display: inline-flex;
    align-items: center;

    margin: 0;
    padding: 0;

    background: none;
    border: none;

    font-size: 1.5rem;
}


/* =========================================================
   NAVIGATION
========================================================= */

.nav-link {
    color: #ffffff;
    background-color: #2c4d34;
    border-color: #ffffff;
}

.nav-link:focus,
.nav-link:hover,
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
    color: #ffffff;
    background-color: #2c4d34;
}

.navbar-nav .nav-link,
.navbar-nav .nav-link:focus,
.navbar-nav .nav-link:hover {
    color: #ffffff;
    background-color: #2c4d34;
    border: none;
}


/* =========================================================
   SHARED PANELS
========================================================= */

.infoPanel {
    color: inherit;
    background-color: #f7f4eb;

    border-width: 4px;
    border-style: solid;
    border-color: #2c4d34;
    border-radius: 8px;

    font-size: 11pt;
    line-height: 19pt;
}

.infoPanel h1 {
    font-size: 15pt;
    font-weight: 400;
}

.infoPanel ul > li {
    margin-bottom: 15px;

    font-size: 11pt;
}

.infoPanel:has(+ .infoPanelGrayBottom) {
    border-bottom-style: none;
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;

    -webkit-border-bottom-right-radius: 0;
    -webkit-border-bottom-left-radius: 0;
}

.infoPanelGrayBottom {
    background-color: #6f7f8f;

    border-style: none;
    border-radius: 4px;
    border-top-left-radius: 0;
    border-top-right-radius: 0;

    -webkit-border-top-left-radius: 0;
    -webkit-border-top-right-radius: 0;
}

.popover {
    min-width: fit-content;
}


/* =========================================================
   SITE CARDS
========================================================= */

.siteBlock {
    border-radius: 8px;
}

.siteBlock .siteBlockHeader0 {
    background-image: url("/images/block_background_1.png");
}

.siteBlock .siteBlockHeader1 {
    background-image: url("/images/block_background_2.png");
}

.siteBlock .siteBlockHeader2 {
    background-image: url("/images/block_background_3.png");
}

.siteBlock .siteBlockHeader {
    height: 60px;

    background-position-x: center;
    background-position-y: top;
    background-repeat: no-repeat;
    background-size: cover;

    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
}

.siteBlock .siteBlockHeader .btn-text {
    color: #ffffff;

    font-size: 15pt;
    font-weight: 700;
}

.siteBlock .siteBlockData {
    height: 75px;

    color: #ffffff;
    background-color: #6f7f8f;

    border-bottom-right-radius: 8px;
    border-bottom-left-radius: 8px;

    font-size: 10pt;
}


/* =========================================================
   TABLES
========================================================= */

table > thead > tr > th {
    font-size: 14px;
}

table.table-maroon th {
    color: #ffffff;
    background-color: #7a2c37;
}

.stripedTableHeaderData {
    color: #ffffff;
    background-color: #6f7f8f;

    font-weight: 700;
}

.stickyTableWrapper {
    max-height: 1000px;
}

.stickyTable th {
    position: sticky;
    top: 0;
    z-index: 9;
}

.stickyTable td:nth-child(1),
.stickyTable th:nth-child(1) {
    position: sticky;
    left: 0;
    z-index: 10;

    width: 118px;
}

.stickyTable td:nth-child(2),
.stickyTable th:nth-child(2) {
    position: sticky;
    left: 118px;
    z-index: 10;
}

.stickyTable th:nth-child(1),
.stickyTable th:nth-child(2) {
    z-index: 40;
}

div.stripedTable .table-row:nth-child(odd) {
    background-color: #f0f0f0;
}

div.doubleColumnStripedTable :nth-child(8n + 1),
div.doubleColumnStripedTable :nth-child(8n + 2),
div.doubleColumnStripedTable :nth-child(8n + 3),
div.doubleColumnStripedTable :nth-child(8n + 4) {
    background-color: #f0f0f0;
}

div.doubleColumnStripedTable :nth-child(8n + 5),
div.doubleColumnStripedTable :nth-child(8n + 6),
div.doubleColumnStripedTable :nth-child(8n + 7),
div.doubleColumnStripedTable :nth-child(8n + 8) {
    background-color: initial;
}

th.min-250 {
    min-width: 250px;
}

th.min-200 {
    min-width: 200px;
}

th.min-150 {
    min-width: 150px;
}

th.min-100 {
    min-width: 100px;
}

.dividedRow > div:nth-child(odd),
table.table-divided > tbody > tr > td:not(:last-child) {
    border-right: 1px solid #cccccc;
}


/* =========================================================
   LISTS
========================================================= */

.list .row {
    padding-top: 8px;
    padding-bottom: 8px;
}

.list > .row:nth-child(even) {
    background-color: #cccccc;
}

ol > li {
    margin-top: 7px;
}

dd {
    margin-left: 2rem;
}

dl.numbered-list {
    counter-reset: term;
}

dl.numbered-list dt::before {
    content: counters(term, ".") " ";

    counter-increment: term;

    font-weight: 700;
}

dl.numbered-list dd > dl {
    counter-reset: subterm;
}

dl.numbered-list dd > dl dt::before {
    content:
        counters(term, ".")
        "."
        counters(subterm, ".")
        " ";

    counter-increment: subterm;
}


/* =========================================================
   FILE UPLOADS
========================================================= */

.nv-uploader {
    min-height: 100px;

    border: 2px dotted #2c4d34;
}

.nv-file-over {
    border: 3px double #000000 !important;
}


/* =========================================================
   CONTACT PAGE
========================================================= */

.contactUsPage div.messageWriter {
    color: #ffffff;
    background-color: #6f7f8f;

    border-width: 1px;
    border-style: solid;
    border-color: #6f7f8f;
    border-radius: 8px;
}

.contactUsPage .imgHolder div {
    background-position-x: center;
    background-position-y: top;
    background-repeat: no-repeat;
    background-size: cover;

    border-radius: 8px;
}


/* =========================================================
   SHADOW AND BORDER UTILITIES
========================================================= */

.border-primary {
    border-color: #2c4d34 !important;
}

.shadow-bottom-right {
    box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);
}

.dropshadow {
    box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.2);
}

.btn.dropshadow {
    border-color: #5c6976;
}

.noshadow,
.noshadow:focus,
.noshadow:active {
    box-shadow: none;
}

.selectedBorder {
    border: 2px double #2c4d34;
}


/* =========================================================
   DISPLAY AND CONTENT UTILITIES
========================================================= */

.disabledHideText:disabled {
    color: transparent;
}

.createUpdate {
    margin-top: 15em;
}

.text-wrap-truncate {
    overflow: hidden;

    text-overflow: ellipsis;
}

.text-truncate-ellipsis {
    overflow: hidden;

    text-overflow: ellipsis;
    white-space: nowrap;
}

address {
    margin-bottom: 0;
}


/* =========================================================
   RESPONSIVE UTILITIES
========================================================= */

@media (max-width: 992px) {
    button.sm-hide-text,
    a.sm-hide-text {
        font-size: 0;
    }

    button.sm-hide-text .fa,
    a.sm-hide-text .fa {
        margin-top: 4px;
        margin-bottom: 4px;

        font-size: initial;
    }

    .list a.btn,
    .list button.btn {
        font-size: 0;
    }

    .list a.btn .fa,
    .list button.btn .fa {
        margin-top: 4px;
        margin-bottom: 4px;

        font-size: initial;
    }
}

@media (min-width: 768px) {
    .col4Wrap {
        column-count: 2;
    }

    .moveLeftAdjuster {
        margin-right: 125px;
        margin-left: -100px;
    }
}

@media (min-width: 992px) {
    .col4Wrap {
        column-count: 3;
    }
}

@media (min-width: 1200px) {
    .col2Wrap {
        column-count: 2;
    }

    .col4Wrap {
        column-count: 4;
    }

    .moveLeftAdjuster {
        margin-right: 150px;
    }
}


/* =========================================================
   ENTERPRISE ACCOUNT MENU
========================================================= */

.enterpriseNewMenu {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 1000;

    min-width: 170px;

    overflow: hidden;

    background-color: #ffffff;
    border: 1px solid #dddddd;
    border-radius: 6px;

    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.15);
}

.enterpriseNewMenuItem {
    display: block;

    padding: 10px 14px;

    color: #333333;

    text-align: left;
    text-decoration: none;
    white-space: nowrap;
}

.enterpriseNewMenuItem:hover {
    color: #333333;
    background-color: #f5f5f5;
}
.headerLogoWithUpgrade {
	display: inline-flex;
	align-items: center;
	gap: 18px;
}

/* =========================================================
   FORCE DROPDOWNS TO LIGHT MODE
   ========================================================= */


select,
.form-select {
    color-scheme: light;
    background-color: #fff !important;
    color: #212529 !important;
}

select option,
select optgroup,
.form-select option,
.form-select optgroup {
    background-color: #fff !important;
    color: #212529 !important;
}