/* #region Generic Headers*/
.fpmheader-left {
    display: flex;
    flex: 1 1 33.33%;
    flex-direction: row;
    align-items: center;
    justify-content: start;
    font-size: 1.25rem;
    color: var(--fpm-text-color);
    font-weight: 500;
    gap: .5rem;
}

.fpmheader-middle {
    display: flex;
    flex: 1 1 33.33%;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    color: var(--fpm-text-color);
    font-weight: 400;
    gap: .5rem;
}

.fpmheader-right {
    display: flex;
    flex: 1 1 33.33%;
    flex-direction: row;
    align-items: center;
    justify-content: end;
    font-size: 1rem;
    color: var(--fpm-text-color);
    font-weight: 400;
    gap: .5rem;
}
/* #endregion */

/*#region Generic Accordion, Card, Grid, Listview, Splitter, Tab*/
/*#region Outer Containers for Accordion, Card, Grid, Listview, Splitter, Tab (No Scroll)*/
.fpmaccordion.e-accordion {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    width: 100%;
    height: auto;
    min-height: 0;
    min-width: 0;
    overflow: visible;
    border: 1px solid var(--fpm-lightgray-base);
    border-radius: .25rem;
}

.fpmaccordion.e-accordion > .e-acrdn-item {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    width: 100%;
    height: auto;
    min-height: 0;
    min-width: 0;
    overflow: visible;
    border: 0;
}

.fpmcard.e-card,
.fpmgrid.e-grid,
.fpmlistview.e-listview,
.fpmsidebar.e-sidebar,
.fpmsplitter.e-splitter,
.fpmtab.e-tab {
    display: flex;
    flex: 1 1 100%;
    flex-direction: column;
    border: 1px solid var(--fpm-lightgray-base);
    border-radius: .25rem;
    justify-content: start;
    min-height: 0;
    min-width: 0;
}

.fpmsplitter.e-splitter {
    flex-direction: row;
}
/*#endregion*/

/*#region Header Containers for Accordion, Card, Grid, Listview, Splitter, Tab (No Scroll)*/
.fpmaccordion.e-accordion > .e-acrdn-item > .e-acrdn-header {
    display: flex;
    flex: 0 0 3.75rem;
    flex-direction: row;
    align-items: center;
    box-sizing: border-box;
    width: 100%;
    height: 3.75rem;
    min-height: 3.75rem;
    overflow: hidden;
    padding: 0;
    border: 0;
    border-bottom: 1px solid var(--fpm-lightgray-base);
    background-color: var(--fpm-lightgray-light);
}

.fpmaccordion.e-accordion > .e-acrdn-item > .e-acrdn-header > .e-acrdn-header-content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: row;
    align-items: center;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    min-width: 0;
    padding: .5rem;
    border: 0;
    background-color: var(--fpm-lightgray-light);
}

.fpmaccordion.e-accordion .e-toggle-icon {
    display: none !important;
}

.fpmcard.e-card > .e-card-header,
.fpmlistview.e-listview > .e-list-header,
.fpmsplitter .fpmsplitter-header {
    display: flex;
    flex: 0 0 3.75rem;
    flex-direction: row;
    align-items: center;
    background-color: var(--fpm-lightgray-light);
    border-bottom: 1px solid var(--fpm-lightgray-base);
    padding: .5rem;
}

.fpmgrid.e-grid > .e-gridheader {
    display: flex;
    flex: 0 0 3.75rem;
    flex-direction: row;
    align-items: center;
    border-bottom: 1px solid var(--fpm-lightgray-base);
    padding: .5rem;
    background-color: var(--fpm-lightgray-light);
}

.fpmgrid.no-grid-header > .e-gridheader {
    display: none;
}

.fpmgrid.no-toolbar-header .e-toolbar {
    display: none !important;
}

.fpmlistview.e-listview > .e-list-header > .e-headertemplate-text,
.fpmgrid.e-grid > .e-gridheader > .e-headercontent {
    display: flex;
    width: 100%;
    background-color: var(--fpm-lightgray-light);
}

.fpmtab.e-tab > .e-tab-header {
    display: flex;
    flex: 0 0 2rem;
    flex-direction: row;
    align-items: end;
    background-color: var(--fpm-lightgray-light);
    border-bottom: 1px solid var(--fpm-lightgray-base);
}

.fpmgrid.e-grid .e-headercell {
    padding: 0;
    background-color: var(--fpm-lightgray-light);
}
/*#endregion*/

/* #region Grid Group Headers*/
.fpmgrid.e-grid .e-groupcaption {
    height: 2rem;
    border-bottom: 1px solid var(--fpm-lightgray-base);
    padding: .5rem;
    background-color: var(--fpm-lightgray-light);
}

.fpmgridgroup-left {
    display: flex;
    flex: 1 1 33.33%;
    flex-direction: row;
    align-items: center;
    justify-content: start;
    font-size: 1rem;
    color: var(--fpm-text-color);
    font-weight: 500;
    gap: .5rem;
}

.fpmgridgroup-middle {
    display: flex;
    flex: 1 1 33.33%;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    color: var(--fpm-text-color);
    font-weight: 400;
    gap: .5rem;
}

.fpmgridgroup-right {
    display: flex;
    flex: 1 1 33.33%;
    flex-direction: row;
    align-items: center;
    justify-content: end;
    font-size: 1rem;
    color: var(--fpm-text-color);
    font-weight: 400;
    gap: .5rem;
}
/* #endregion */

/*#region Toolbar Container for Grid*/
.fpmgrid.e-grid > .e-toolbar {
    display: flex;
    flex: 0 0 3.75rem;
    flex-direction: row;
    justify-content: space-evenly;
    align-content: center;
}

.fpmgrid-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
    width: 100%;
    padding: .5rem;
}

.fpmgrid-toolbar > * {
    flex: 1 1 0;
    min-width: 0;
    width: 100%;
}

.fpmgrid.e-grid .e-headercell {
    padding: 0;
    background-color: var(--fpm-lightgray-light);
}
/*#endregion*/

/*#region Content Accordion, Containers for Card, Grid, Listview, Splitter, Tab (No Scroll)*/
.fpmaccordion.e-accordion > .e-acrdn-item:not(.e-selected) > .e-acrdn-panel {
    display: none !important;
}

.fpmaccordion.e-accordion > .e-acrdn-item.e-selected.e-expand-state > .e-acrdn-panel {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    box-sizing: border-box;
    width: 100%;
    height: auto !important;
    min-height: 0;
    min-width: 0;
    overflow: visible;
    padding: 0;
}

.fpmaccordion.e-accordion > .e-acrdn-item > .e-acrdn-panel > .e-acrdn-content {
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: auto;
    min-height: 0;
    min-width: 0;
    overflow: visible;
    padding: .5rem;
}

.fpmaccordion.e-accordion > .e-acrdn-item:not(.e-selected) > .e-acrdn-header {
    border-bottom-color: transparent;
}

/*Outside, Only Container - Gets .5rem padding*/
.fpmcard.e-card > .e-card-content
{
    display: flex;
    flex: 1 1 100%;
    flex-direction: column;
    justify-content: start;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
    padding: .5rem;
}

.fpmgrid.e-grid > .e-gridcontent,
.fpmsplitter.e-splitter > .e-pane,
.fpmtab.e-tab > .e-content {
    display: flex;
    flex: 1 1 100%;
    flex-direction: column;
    justify-content: start;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
    padding: 0;
}

/*Inside Container, Has Outer Container - Gets .5rem padding*/
.fpmsplitter.e-splitter .fpmsplitter-content,
.fpmtab.e-tab > .e-content > .e-item.e-active {
    display: flex;
    flex: 1 1 100%;
    flex-direction: column;
    gap: .5rem;
    justify-content: start;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
    padding: .5rem;
}

/*Inside Container for Grid, Outside Container for List - Gets 0 padding*/
.fpmgrid.e-grid > .e-gridcontent > .e-content, /*Grid inner container doesn't get padding either*/
.fpmlistview.e-listview > .e-list-container {
    display: flex;
    flex: 1 1 100%;
    flex-direction: column;
    justify-content: start;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
    padding: 0;
}

.fpmcard.e-card.side-by-side-form > .e-card-content {
    flex-direction: row;
    gap: .5rem;
}

.fpmcard.e-card.side-by-side-form .fpmtexteditor.e-richtexteditor {
    flex: 1 1 50%;
}
/*#endregion*/

/*#region Content Items for Grid, ListView*/
.fpmtab.e-tab.add-scroll > .e-content > .e-item.e-active:has(.fpmaccordion) {
    gap: .5rem;
}

.fpmgrid.e-grid .e-headercell {
    padding-left: .5rem;
}

.fpmgrid.e-grid .e-rowcell {
    padding-left: 1rem;
}

.fpmlistview .e-list-item {
    display: flex;
    min-height: var(--fpm-default-height);
    padding: 0 !important;
}

.fpmlistview .e-list-item .fpmlistitem-left {
    align-items: center;
    color: var(--fpm-text-color);
    display: flex;
    flex: 1 1 33.33%;
    flex-direction: row;
    font-size: .875rem;
    font-weight: 400;
    justify-content: start;
    padding: .5rem .25rem .5rem .5rem;
}

.fpmlistview .e-list-item .fpmlistitem-middle {
    align-items: center;
    color: var(--fpm-text-color);
    display: flex;
    flex: 1 1 33.33%;
    flex-direction: row;
    font-size: 1rem;
    font-weight: 400;
    justify-content: center;
    padding: .5rem .25rem .5rem .25rem;
}

.fpmlistview .e-list-item .fpmlistitem-right {
    align-items: center;
    color: var(--fpm-text-color);
    display: flex;
    flex: 1 1 33.33%;
    flex-direction: row;
    font-size: 1rem;
    font-weight: 400;
    gap: .5rem;
    justify-content: end;
    padding: .5rem 0 .5rem .25rem;
}
/*#endregion*/

/*#region Outer Container for Card, Grid, Listview, Splitter, Tab (Scroll)*/
.fpmcard.e-card.add-scroll > .e-card-content,
.fpmgrid.e-grid.add-scroll > .e-gridcontent > .e-content,
.fpmlistview.e-listview.add-scroll > .e-list-container,
.fpmsplitter.e-splitter.add-scroll .fpmsplitter-content,
.fpmtab.e-tab.add-scroll > .e-content > .e-item.e-active {
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding-right: .5rem !important;
}
/*#endregion*/

/*#region Footer Containers for Card*/
.fpmcard.e-card > .e-card-actions {
    display: flex;
    flex: 0 0 3.75rem;
    flex-direction: row;
    align-items: center;
    background-color: var(--fpm-lightgray-light);
    border-top: 1px solid var(--fpm-lightgray-base);
    padding: .5rem;
}
/*#endregion*/
/*#endregion*/

/*#region Generic Form*/
#FpmForm {
    padding: .5rem;
    gap: .25rem;
    display: flex;
    flex: 1 1 100%;
    flex-direction: column;
}

#FpmForm.e-data-form .e-label-position-top {
    margin-top: .5rem !important;
}

#FpmForm.e-data-form .e-button-right {
    margin-top: 0 !important;
}
/*#endregion*/

/*#region Card Fit to Height*/
.fpmcard.fit-height-to-content.e-card {
    flex: 0 0 auto;
    height: auto;
}

.fpmcard.fit-height-to-content.e-card > .e-card-content {
    flex: 0 0 auto;
    height: auto;
}
/* #endregion  */

/* #region Generic Footers*/
.fpmfooter-left {
    display: flex;
    flex: 1 1 33.33%;
    flex-direction: row;
    align-items: center;
    justify-content: start;
}

.fpmfooter-middle {
    display: flex;
    flex: 1 1 33.33%;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

.fpmfooter-right {
    display: flex;
    flex: 1 1 33.33%;
    flex-direction: row;
    align-items: center;
    justify-content: end;
    gap: .5rem;
}
/* #endregion */

/*#region Grid Filter size increase*/
.fpmgrid.e-grid.add-filter > .e-gridheader {
    flex: 0 0 5rem;
}
/*#endregion*/

/*#region Empty Message for Card, Grid, Splitter*/
.fpmcard-empty-state {
    flex: 1 1 0;
    display: flex;
    margin: .5rem;
    align-items: center;
    justify-content: center;
    min-height: 0;
    color: var(--fpm-gray-dark);
    border: 1px dashed var(--fpm-lightgray-dark);
    border-radius: .35rem;
}
/* ReSharper disable once DeclarationIsEmpty */

.empty-state {
}
/* ReSharper disable once DeclarationIsEmpty */

.fpmsplitter-empty-state {
}

.fpmcombobox-no-records {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    padding: .625rem;
}
/*#endregion*/

/*#region Set 1, 2, 3, 4 Across in Card Content*/
.fpmcard.e-card.one-across > .e-card-content,
.fpmcard.e-card.two-across > .e-card-content,
.fpmcard.e-card.three-across > .e-card-content,
.fpmcard.e-card.four-across > .e-card-content {
    display: grid;
    flex: 1 1 100%;
    grid-auto-flow: row;
    grid-auto-rows: minmax(0, 1fr);
    gap: .5rem;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.fpmcard.e-card.one-across > .e-card-content {
    grid-template-columns: minmax(0, 1fr);
}

.fpmcard.e-card.two-across > .e-card-content {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fpmcard.e-card.three-across > .e-card-content {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fpmcard.e-card.four-across > .e-card-content {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fpmcard.e-card.one-across > .e-card-content > *,
.fpmcard.e-card.two-across > .e-card-content > *,
.fpmcard.e-card.three-across > .e-card-content > *,
.fpmcard.e-card.four-across > .e-card-content > * {
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.fpmcard.e-card.fit-rows-to-content > .e-card-content {
    align-content: start;
    grid-auto-rows: auto;
}

.fpmcard.e-card.fit-rows-to-content > .e-card-content > * {
    height: auto;
}
/*#endregion*/

/* #region Set 1, 2, 3, 4 Across in Accordion Content Across */
.fpmaccordion-top.two-across,
.fpmaccordion-top.three-across,
.fpmaccordion-top.four-across {
    align-items: start;
    display: grid;
    gap: .5rem;
    min-height: 0;
    min-width: 0;
    padding: .5rem;
}

.fpmaccordion-top.two-across {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fpmaccordion-top.three-across {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fpmaccordion-top.four-across {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fpmaccordion-top.two-across > *,
.fpmaccordion-top.three-across > *,
.fpmaccordion-top.four-across > * {
    width: fit-content;
    min-width: 0;
}

.fpmaccordion-top.two-across > label,
.fpmaccordion-top.three-across > label,
.fpmaccordion-top.four-across > label {
    grid-column: 1 / -1;
}
/* #endregion */

/*#region Colors*/
.background-red,
.fpmcard.e-card > .e-card-header:has(.background-red) {
    background: var(--fpm-red-base) !important;
}

.background-orange,
.fpmcard.e-card > .e-card-header:has(.background-orange) {
    background: var(--fpm-orange-base) !important;
}

.background-yellow,
.fpmcard.e-card > .e-card-header:has(.background-yellow) {
    background: var(--fpm-yellow-base) !important;
}

.background-yellow-light {
    background: var(--fpm-yellow-light) !important;
}

.background-gray-light {
    background: var(--fpm-lightgray-light) !important;
}

.background-green {
    background: var(--fpm-green-base) !important;
}

.background-okay,
.fpmcard.e-card > .e-card-header:has(.background-okay) {
    background: var(--fpm-lightgray-light) !important;
}

.text-red {
    color: var(--fpm-red-base) !important;
}
/*#endregion*/

/*#region Generic Formatting*/
.text-muted {
    font-size: .875rem !important;
    color: var(--fpm-gray-dark) !important;
}

.text-bold {
    font-weight: bold;
}

.text-small {
    font-size: .875rem;
}

.text-extra-small {
    font-size: .75rem !important;
}

.text-centered {
    text-align: center;
}

.fit-to-content {
    width: fit-content !important;
}

.gray-background {
    background-color: var(--fpm-lightgray-light);
}

.no-decoration {
    text-decoration: none !important;
}

.is-centered {
    justify-content: center !important;
}

.is-end {
    justify-content: end !important;
}

.fpmcard.no-padding,
.fpmcard.no-padding .e-card-content {
    padding: 0 !important;
}
/*#endregion*/

/* #region Set 2, 3, or 4 Across in Individual Tab Content */
.fpmtab.e-tab > .e-content > .e-item.e-active.two-across,
.fpmtab.e-tab > .e-content > .e-item.e-active.three-across,
.fpmtab.e-tab > .e-content > .e-item.e-active.four-across {
    display: grid;
    align-items: start;
    gap: .5rem;
    min-height: 0;
    min-width: 0;
}

.fpmtab.e-tab > .e-content > .e-item.e-active.two-across {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fpmtab.e-tab > .e-content > .e-item.e-active.three-across {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fpmtab.e-tab > .e-content > .e-item.e-active.four-across {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fpmtab.e-tab > .e-content > .e-item.e-active.two-across > *,
.fpmtab.e-tab > .e-content > .e-item.e-active.three-across > *,
.fpmtab.e-tab > .e-content > .e-item.e-active.four-across > * {
    width: fit-content;
    min-width: 0;
}

.fpmtab.e-tab > .e-content > .e-item.e-active.two-across > label,
.fpmtab.e-tab > .e-content > .e-item.e-active.three-across > label,
.fpmtab.e-tab > .e-content > .e-item.e-active.four-across > label {
    grid-column: 1 / -1;
}
/* #endregion */

/* #region Active/Inactive Switch */

.fpm-activeinactive-switch.e-switch-wrapper {
    border-bottom-left-radius: 0 !important;
    border-top-left-radius: 0 !important;
    box-sizing: border-box;
    height: var(--fpm-default-height) !important;
    max-height: var(--fpm-default-height) !important;
    min-height: var(--fpm-default-height) !important;
    min-width: 6rem;
    max-width: 6rem;
}

.fpm-activeinactive-switch.e-switch-wrapper .e-switch-inner {
    border: 0;
    border-radius: 0 var(--fpm-border-radius) var(--fpm-border-radius) 0 !important;
    display: flex;
    flex: 1 1 100%;
    flex-direction: row;
    height: 100%;
    overflow: hidden;
}

.fpm-activeinactive-switch.all-rounded-switch.e-switch-wrapper .e-switch-inner {
    border-radius: var(--fpm-border-radius) !important;
}

.fpm-activeinactive-switch.e-switch-wrapper .e-switch-inner .e-switch-off {
    background-color: var(--fpm-lightgray-light);
    line-height: 1;
    text-align: center;
    text-indent: 0;
    text-wrap: nowrap;
}

.fpm-activeinactive-switch.e-switch-wrapper .e-switch-inner .e-switch-on {
    background-color: var(--fpm-blue-base);
    line-height: 1;
    text-align: center;
    text-indent: 0;
    text-wrap: nowrap;
}

.fpm-activeinactive-switch .e-switch-handle {
    display: none;
}
/* #endregion */

/*#region Safari Corrections*/
html.safari .fpmautocomplete .span-wrapper {
    flex: 0 0 9rem !important;
}

html.safari .fpmswitch.e-switch-wrapper .e-switch-inner .e-switch-off,
html.safari .fpmswitch.e-switch-wrapper .e-switch-inner .e-switch-on {
    box-sizing: border-box;
    padding-inline: .25rem;
}

html.safari .fpmswitch.e-switch-wrapper .e-switch-inner.e-switch-active .e-switch-off,
html.safari .fpmswitch.e-switch-wrapper .e-switch-inner:not(.e-switch-active) .e-switch-on {
    visibility: hidden;
}

html.safari .e-grid .e-detailheadercell,
html.safari .e-grid .e-detailrowcollapse,
html.safari .e-grid .e-detailrowexpand,
html.safari .e-grid .e-detailindentcell {
    box-sizing: border-box;
    display: table-cell !important;
    width: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow: hidden;
    text-align: center;
}

html.safari .e-grid .e-detailheadercell > .e-emptycell {
    box-sizing: border-box;
    width: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    padding: 0 !important;
}
/*#endregion*/