﻿/* ReSharper disable RequiresFallbackColor */
:root {
    --app-background-color: white;
    --app-action-button-color: #007bff;
    --app-icon-button-color: #007bff;
    --app-icon-selected-button-color: #009429;
    --app-selected-background-color: #a1fb8e;
    --app-selected-border-color: #007bff;
    --border-color: #e5e5e5;
    --border-color-bold: #808080;
    --fb-btn-action-color: #00ae30;
    --fb-btn-action-shadow-color: rgba(0, 174, 48, 0.5);
    --fb-disabled-background-color: #f0f0f0;
    --fb-disabled-text-color: #a0a0a0;
    --fb-error-color: #dc3545;
    --fb-error-background-color: rgba(220,53,69,0.4);
    --fb-overlay-shield-background: rgba(0,0,0,0.3);
    --fb-row-background: #f0f0f0;
    --selected-color: #007bff;
    --selected-background-color: #ddf3fe;
}

html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

h1:focus {
    outline: none;
}

body {
    padding: 0;
    margin: 0;
}

app {
    width: 100vw;
    height: 100vh;
}

p {
    margin-top: 0;
    margin-bottom: 0;
}

/* text font sizes, also used in ckeditor (Forestbrook.Blazor.Editor) */
.text-tiny {
    font-size: 0.7em;
}

.text-small {
    font-size: 0.85em;
}

.text-larger {
    font-size: 1.1em;
}

.text-big {
    font-size: 1.2em;
}

.text-huge {
    font-size: 1.4em;
}


.fb-app-background-color {
    background-color: var(--app-background-color);
}

.fb-app-container {
    width: 100vw;
    height: 100vh;
    display: grid;
    grid-template-rows: auto 1fr;
}

.fb-app-content {
    display: grid;
    grid-template-columns: auto 1fr;
    overflow: hidden;
}

.fb-app-icon-button-color {
    color: var(--app-icon-button-color);
}

.fb-app-icon-selected-button-color {
    color: var(--app-icon-selected-button-color);
}



.fb-image-sm {
    max-width: 9em;
    max-height: 9em;
    width: auto;
    height: auto;
    vertical-align: top;
    object-fit: scale-down;
}

.fb-image-box {
    width: 9em;
    height: 9em;
    border: 1px solid var(--border-color);
}

.fb-image-button {
    min-width: 9em;
    margin-bottom: 0.5em;
}

.fb-lg-grid-container {
    display: grid;
    grid-template-columns: auto 700px auto;
}

@media (max-width: 700px) {
    .fb-lg-grid-container {
        display: grid;
        grid-template-columns: 0 1fr 0;
    }
}

.fb-sm-grid-container {
    display: grid;
    grid-template-columns: auto 500px auto;
}

@media (max-width: 500px) {
    .fb-sm-grid-container {
        display: grid;
        grid-template-columns: 0 1fr 0;
    }
}

.fb-grid-item {
    border: 1px solid var(--border-color);
    border-top: 0;
    padding: 0.6rem;
    font-size: inherit;
    text-align: inherit;
}

.fb-label-top-left {
    padding-top: calc(0.375rem + 1px);
    padding-bottom: calc(0.375rem + 1px);
    margin-bottom: 0;
    font-size: 1rem;
    display: block;
    width: 100%;
    text-align: left;
}







.fb-action-button {
    cursor: pointer;
    color: var(--app-action-button-color);
}

/* See also: fb-flex-fraction and MarkupString(BlazorHelper.FlexPushRight()) */
/*.fb-align-right-with-grid {
    display: grid;
    grid-template-columns: 1fr auto;
}*/

.fb-alert-danger {
    color: #721c24;
    background-color: #f8d7da;
    border-color: #f5c6cb;
}

.fb-alert-success {
    color: #155724;
    background-color: #d4edda;
    border-color: #c3e6cb;
}

.fb-arrow-selector {
    display: grid;
    grid-template-columns: 2.5em 2.5em;
}

.fb-border-bottom {
    border-bottom: 1px solid var(--border-color);
}

.fb-border-bottom-bold {
    border-bottom: 2px solid var(--border-color-bold);
}

.fb-border-color {
    border: 1px solid var(--border-color);
}

.fb-border-left {
    border-left: 1px solid var(--border-color);
}

.fb-border-left-bold {
    border-left: 2px solid var(--border-color-bold);
}

.fb-border-right {
    border-right: 1px solid var(--border-color);
}

.fb-border-right-bold {
    border-right: 2px solid var(--border-color-bold);
}

.fb-border-top {
    border-top: 1px solid var(--border-color);
}

.fb-border-top-bold {
    border-top: 2px solid var(--border-color-bold);
}

.fb-bottom-margin-0-1em {
    margin-bottom: 0.1em;
}

.fb-bottom-margin-0-2em {
    margin-bottom: 0.2em;
}

.fb-bottom-margin-0-3em {
    margin-bottom: 0.3em;
}

.fb-bottom-margin-0-5em {
    margin-bottom: 0.5em;
}

.fb-bottom-margin-1em {
    margin-bottom: 1em;
}

.fb-bottom-row {
    display: grid;
    grid-template-columns: auto 1fr max-content;
}

.fb-btn-outline-action {
    color: var(--fb-btn-action-color);
    border-color: var(--fb-btn-action-color);
}

.fb-btn-outline-action:hover {
    color: #fff;
    background-color: var(--fb-btn-action-color);
    border-color: var(--fb-btn-action-color);
}

.fb-btn-outline-action:focus, .fb-btn-outline-action.focus {
    box-shadow: 0 0 0 0.2rem var(--fb-btn-action-shadow-color);
}

.fb-btn-outline-action.disabled, .fb-btn-outline-action:disabled {
    color: var(--fb-btn-action-color);
    background-color: transparent;
}

.fb-btn-outline-action:not(:disabled):not(.disabled):active, .fb-btn-outline-action:not(:disabled):not(.disabled).active,
.show > .fb-btn-outline-action.dropdown-toggle {
    color: #fff;
    background-color: var(--fb-btn-action-color);
    border-color: var(--fb-btn-action-color);
}

.fb-btn-outline-action:not(:disabled):not(.disabled):active:focus, .fb-btn-outline-action:not(:disabled):not(.disabled).active:focus,
.show > .fb-btn-outline-action.dropdown-toggle:focus {
    box-shadow: 0 0 0 0.2rem var(--fb-btn-action-shadow-color);
}

.fb-business-card-container {
    display: grid;
    grid-template-columns: minmax(4rem, 7rem) auto;
    grid-column-gap: 0.5rem;
    grid-row-gap: 0.3rem;
    font-size: 1rem;
    text-align: left;
    word-wrap: break-word;
    padding-bottom: 0.5rem;
}

.fb-business-card-image {
    height: 9em;
    width: auto;
    margin: auto;
    object-fit: scale-down;
}

.fb-business-card-image-container {
    display: flex;
    justify-content: center;
    padding-bottom: 0.3em;
}

.fb-business-card-label {
    font-size: 0.8rem;
    padding-top: 0.1rem;
}

.fb-button-icon {
    font-size: 1.3em;
}

.fb-button-icon-box {
    padding-right: 0.5rem;
}

.fb-button-icon-large {
    font-size: 2em;
}

.fb-button-min-width {
    min-width: 6rem;
}

.fb-button-row {
    display: flex;
    flex-direction: row;
    padding-bottom: 0.5em;
}

.fb-button-row-input {
    width: 10.5em;
    margin-right: 0.3em;
}

.fb-button-row-input-width {
    width: 10.5em;
}

.fb-button-row-with-gap {
    display: flex;
    flex-direction: row;
    gap: 0.3em;
}

@media (max-width: 500px) {
    .fb-button-row-input-width {
        width: 7.5em;
    }
}

.fb-calender-day-box-warning {
    padding-left: 0.2em;
    padding-right: 0.2em;
    border: 1px solid var(--fb-error-color);
    min-width: 2.5em;
}

.fb-calender-day-warning {
    color: var(--fb-error-color);
    font-weight: 600;
    padding-left: 0.2em;
}

.fb-calender-item-borders {
    border-right: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
}

.fb-calender-week-number-borders {
    border-right: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
    border-left: 1px solid var(--border-color);
}

.fb-calender-week-number-borders-selected {
    border-top: 2px solid var(--app-selected-border-color);
    border-bottom: 2px solid var(--app-selected-border-color);
    border-right: 1px solid var(--border-color);
    border-left: 2px solid var(--app-selected-border-color);
}

.fb-calender-sm-week-columns {
    display: grid;
    grid-template-columns: 3em 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
    border-top: 1px solid var(--border-color);
}

.fb-calender-sm-weekday-header {
    height: 2em;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background-color: var(--selected-background-color);
}

.fb-calender-sm-weekday-item {
    height: 2.5em;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.fb-calender-sm-weekday-selected {
    width: 2.1em;
    height: 2.1em;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-radius: 50%;
    font-weight: 600;
    background-color: var(--selected-background-color);
}

/* See also: fb-horizontal-center-content fb-vertical-center-content */
.fb-center-content {
    height: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.fb-checkbox-size {
    width: 1.2rem;
    min-width: 1.2rem;
    max-width: 1.2rem;
    height: 1.2rem;
}

.fb-close-icon-box {
    height: inherit;
    width: inherit;
    padding: 0.4em 0.5em;
    cursor: pointer;
    position: absolute;
    right: 0;
    top: 0;
    font-size: 1.3em;
    display: flex;
    align-items: center;
    justify-content: center;
}

.fb-close-icon-color {
    color: #888;
}

.fb-color-box-large {
    width: 1.6em;
    height: 1.6em;
}

.fb-color-box-small {
    height: 1em;
    width: 1em;
}

.fb-color-row {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-column-gap: 0.3em;
    align-items: center;
}

.fb-color-white {
    color: white;
}

.fb-disabled-text-color {
    color: var(--fb-disabled-text-color);
}

.fb-empty-list-message-row {
    display: grid;
    grid-template-columns: auto auto 1fr;
    grid-column-gap: 0.75rem;
    border-top: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
    padding: 0.2rem 0;
    margin-bottom: 0.5rem;
}

.fb-error-background {
    background-color: var(--fb-error-background-color)
}

.fb-error-boundary-background-box {
    background-color: rgba(0,0,0,0.3);
    width: 100vw;
    height: 100vh;
}

.fb-error-boundary-box {
    position: relative;
    background-color: white;
    border: 1px solid black;
}

.fb-error-color {
    color: var(--fb-error-color);
}

.fb-error-message-container {
    position: relative;
    display: inline-block;
    width: inherit;
    height: inherit;
    background-color: #fff;
    border: 1px solid #e5e5e5;
    padding-bottom: 0.5rem;
}

.fb-error-message-text {
    min-height: 7rem;
    width: 20rem;
    padding: 0.5rem;
}

.fb-error-message-title {
    padding-left: 0.75rem;
    padding-top: 0.5rem;
    height: 2.5rem;
    width: 20rem;
    text-align: center;
    background-color: #ff6347;
    border-bottom: 1px solid #e5e5e5;
}

.fb-flex-column {
    display: flex;
    flex-direction: column;
}

.fb-flex-fraction {
    flex: 1;
}

.fb-flex-row {
    display: flex;
    flex-direction: row;
}

.fb-flex-row-align-start {
    display: flex;
    flex-direction: row;
    align-items: start;
}

.fb-flex-row-right-area {
    position: absolute;
    right: 1rem;
    display: flex;
    flex-direction: row;
}

/*.fb-flex-row-spacing {
    margin-top: -0.3rem;
}

.fb-flex-row-spacing > * {
    margin-top: 0.3rem;
}*/

.fb-flex-row-with-wrap {
    display: flex;
    flex-wrap: wrap;
}

.fb-flex-row-wrap-with-spacing {
    display: flex;
    flex-wrap: wrap;
    margin-top: -0.3rem;
}

.fb-flex-row-wrap-with-spacing > * {
    margin-top: 0.3rem;
}

.fb-font-bold {
    font-weight: 600;
}

.fb-form-button {
    min-width: 6em;
    margin-right: 0.3em;
}

.fb-form-checkbox-box {
    margin-bottom: 0.4rem;
}

.fb-form-checkbox-label {
    padding-top: 0.1rem;
    padding-bottom: 0.1rem;
    margin-bottom: 0;
    line-height: 1.3;
}

.fb-form-checkboxes-container {
    display: grid;
    grid-template-columns: auto;
}

.fb-form-control-border {
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
}

.fb-form-date-width {
    max-width: 8rem;
}

.fb-form-edit-box {
    min-height: 6rem;
}

.fb-form-elem-right-margin {
    margin-right: 0.5em;
}

.fb-form-field-box {
    margin-bottom: 0.6rem;
}

.fb-form-field-height {
    height: calc(1.5em + 0.75rem + 2px);
}

.fb-form-field-html-area {
    min-width: 13.5rem;
    max-width: 37.5rem;
}

.fb-form-field-margin {
    margin-top: 0.375rem;
    margin-bottom: 0.375rem;
}

.fb-form-field-message {
    margin-top: -0.3em;
    margin-bottom: 0.6em;
    line-height: 1.3em;
}

.fb-form-field-min-height {
    min-height: calc(1.5em + 0.75rem + 2px);
}

.fb-form-field-label-span {
    grid-column-start: 1;
    grid-column-end: span 2;
}

.fb-form-field-readonly {
    background-color: #e9ecef;
}

.fb-form-fields-container {
    display: grid;
    grid-template-columns: minmax(5rem, max-content) minmax(8rem, 32rem);
    grid-column-gap: 0.5rem;
}

.fb-form-fields-section-header {
    width: 100%;
    margin-top: 0.3em;
    margin-bottom: 0.3em;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.fb-form-html-field-message {
    margin-top: 0.1em;
    margin-bottom: 0.6em;
    line-height: 1.3em;
}

.fb-form-input-row {
    display: -ms-flexbox;
    display: flex;
}

.fb-form-label-min-width {
    min-width: 5rem;
}

.fb-form-number-width {
    min-width: 6rem;
    max-width: 8rem;
    margin-right: 0.75rem;
}

@media (min-width: 769px) {
    .fb-form-split-container {
        display: grid;
        grid-template-columns: minmax(17rem, max-content) auto;
        grid-column-gap: 2rem;
        align-items: start;
    }

    .fb-form-split-container-row {
        grid-column-start: span 2;
    }
}

@media (max-width: 768.98px) {
    .fb-form-split-container {
        display: grid;
        grid-template-columns: auto;
    }

    .fb-form-split-container-row { }
}

.fb-form-text-padding {
    padding-top: calc(0.375rem + 1px);
    padding-bottom: calc(0.375rem + 1px);
}

.fb-form-text-width {
    width: 100%;
    min-width: 8rem;
    max-width: 32rem;
}

.fb-form-text-width-small {
    max-width: 20rem;
}

/* See also: fb-inherit-size, fb-width-100 */
.fb-full-size {
    height: 100%;
    width: 100%;
}

.fb-grid-colspan-2 {
    grid-column-start: span 2;
}

.fb-grid-colspan-4 {
    grid-column-start: span 4;
}

.fb-header-background-color {
    background-color: var(--selected-background-color);
}

.fb-height-1 {
    height: 1rem;
}

.fb-help-icon-box {
    padding-top: 0;
    padding-bottom: 0;
    margin-left: 0.75rem;
    margin-bottom: 0;
    line-height: 1;
}

.fb-help-icon {
    cursor: help;
    text-align: center;
    font-size: 1.3em;
}

.fb-help-icon-color {
    color: #f7961e;
}

.fb-help-text-box {
    width: auto;
    max-width: 40rem;
    font-size: 1rem;
    line-height: 1.3;
    text-align: left;
    background-color: white;
    border: 1px solid black;
    border-radius: 4px;
    padding: 0.5rem 0.75rem;
}

.fb-hide-overflow {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.fb-horizontal-center-content {
    text-align: center;
    /* TODO ??: display: flex; */
    justify-content: center;
}

.fb-icon-field-size {
    text-align: center;
    font-size: 1.3em;
}

.fb-info-box-container-closed {
    display: grid;
    grid-template-columns: 2rem 1fr;
    width: 100%;
    height: 2.1rem;
    margin-bottom: 0.3em;
    border: 1px solid var(--border-color);
    overflow: hidden;
    text-overflow: ellipsis;
}

.fb-info-box-container-open {
    display: grid;
    grid-template-columns: 2rem 1fr;
    width: 100%;
    margin-bottom: 0.3em;
    border: 1px solid var(--border-color);
}

.fb-info-box-icon-container {
    text-align: center;
    padding-top: 0.3rem
}

.fb-info-box-text-area {
    padding: 0.3rem 0.75rem 0.3rem 0;
}

/* See also: fb-full-size */
.fb-inherit-size {
    height: inherit;
    width: inherit;
}

/* Clear bootstrap bottom margin */
.fb-label {
    margin-bottom: 0;
}

.fb-large-page-button-container {
    width: 24rem;
}

@media (max-width: 25rem) {
    .fb-large-page-button-container {
        width: 100%;
    }
}

.fb-legend-body {
    padding: 0.3em 0.3em 0;
}

.fb-legend-box {
    padding: 0.3em;
    border: 1px solid var(--border-color);
    background-color: white;
}

.fb-legend-title {
    display: grid;
    grid-template-columns: max-content auto;
    grid-column-gap: 0.3em;
    font-weight: 600;
    cursor: pointer;
    padding: 0 0.3em;
    background-color: var(--selected-background-color);
    border: 1px solid var(--border-color);
    overflow-x: hidden;
}

/* Use to show <p> rows (created by ckeditor) closer together */
.fb-line-height-1-2 {
    line-height: 1.2em;
}

.fb-main-dropdown-menu-width {
    width: 18rem;
}

.fb-margin-0-5em {
    margin: 0.5em;
}

/* TODO: replace with fb-bottom-margin-0-5em */
.fb-margin-bottom {
    margin-bottom: 0.5em;
}

.fb-margin-bottom-for-inline-editor-bar-height {
    margin-bottom: 2.8em;
}

/* See also: fb-form-elem-right-margin */
.fb-margin-right {
    margin-right: 0.3em;
}

.fb-margin-right-small {
    margin-right: 0.2em;
}

.fb-menu-bar {
    padding: 0 0.5em;
    display: flex;
    flex-direction: row;
}

.fb-menu-bar-button-box {
    margin: 0.3em 0;
}

.fb-menu-bar-icon {
    min-width: 1.3em;
    min-height: 1.3em;
}

.fb-menu-bar-item {
    margin: 0.75em;
    color: white;
}

.fb-menu-bar-item-separator {
    height: 2em;
    width: 1px;
    border-left: 1px solid white;
}

.fb-menu-container {
    display: grid;
    grid-template-columns: auto;
    padding: 0.5rem;
    padding-top: 0;
}

.fb-menu-item {
    min-width: 100%;
    width: 100%;
    text-align: left;
    margin-top: 0.45rem;
    margin-bottom: 0.05rem;
}

.fb-menu-left {
    max-width: 18rem;
    height: 100%;
    border-right: 1px solid var(--border-color);
    overflow-y: auto;
    overflow-x: hidden;
}

.fb-menu-left-only-icons {
    width: 4.2rem;
}

.fb-menu-main-button {
    color: #fff;
    background-color: rgba(0,0,0,0);
    border-color: rgba(0,0,0,0);
}

.fb-menu-main-button-selected {
    color: #fff;
    background-color: rgba(255,255,255,0.3);
    border-color: rgba(255,255,255,0.3);
}

.fb-menu-sub-title {
    margin-top: 0.9rem;
    margin-left: 0.75rem;
}

.fb-menu-sub-title-only-icons {
    margin-top: 0.7rem;
    margin-bottom: 0.3rem;
    white-space: nowrap;
    width: 3em;
}

.fb-month-week-selector-row {
    width: 100%;
    height: 2.8em;
    display: grid;
    grid-template-columns: auto auto 1fr;
    grid-column-gap: 0.3em;
    align-items: center;
}

.fb-move-grid-row-container {
    height: inherit;
    display: flex;
    align-items: center;
    text-align: center;
    justify-content: center;
    font-size: 1.4em;
    cursor: ns-resize;
}

.fb-move-up-0-5 {
    /* To remove 0.5em padding from element above */
    margin-top: -0.5em;
}

.fb-no-text-wrap {
    white-space: nowrap;
}

/* see also fb-single-line */
.fb-no-text-wrap-hide-overflow {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fb-selectable {
    cursor: pointer;
}

.fb-table.table > tbody > tr > td {
    vertical-align: middle;
}

.fb-overlay-container {
    display: block;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 100;
}

.fb-overlay-grid {
    width: 100%;
    height: 100%;
    display: grid;
    position: fixed;
    top: 0;
    left: 0;
    background-color: rgba(0,0,0,0.005);
}

.fb-overlay-shield-background {
    background-color: var(--fb-overlay-shield-background);
}

.fb-overlay-shield-delay {
    background-color: rgba(0,0,0,0.005);
}

.fb-padding-left-small {
    padding-left: 0.5rem;
}

.fb-padding-left-tiny {
    padding-left: 0.2rem;
}

.fb-page-container {
    /* Inner elements can use position: absolute to position absolutely in the page container */
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.fb-page-content {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    overflow: auto;
}

.fb-page-ruler {
    width: 100%;
    margin-top: 0.3em;
    margin-bottom: 0.3em;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.fb-page-section {
    width: 100%;
    padding: 0.5rem;
}

.fb-page-section-with-split {
    display: grid;
    grid-template-rows: auto 1fr;
    width: 100%;
    height: 100%;
    padding: 0.5rem;
    overflow: hidden;
}

.fb-page-with-left-menu {
    width: 100%;
    height: 100%;
    display: grid;
    grid-template-columns: 18rem 1fr;
    overflow: hidden;
}

.fb-period-selector-row {
    align-items: center;
    display: grid;
    grid-template-columns: auto auto 1fr auto;
    grid-column-gap: 0.3em;
    padding-right: 0.5em;
    width: 100%;
}

.fb-period-selector-row-fixed-position {
    position: absolute;
    left: 0;
    top: 0;
    width: calc(100% - 1em);
    background: white;
}

.fb-period-selector-row-height {
    height: 2.8em;
}

.fb-popup-box {
    border: 1px solid var(--border-color);
    background: white;
    z-index: 98;
}

.fb-popup-box-content {
    padding: 0.2em 0.5em;
    white-space: nowrap;
    text-align: left;
}

.fb-popup-list {
    position: relative;
    display: inline-block;
    background-color: white;
    outline: none;
}

.fb-popup-list-item {
    cursor: pointer;
    height: 2rem;
    /* 1.2 left/right padding to prevent scrollbar overlapping list items */
    padding: 0 1.2rem;
    color: black;
    background-color: white;
    display: flex;
    align-items: center;
}

.fb-popup-list-item-selected {
    color: white;
    background-color: var(--selected-color);
}

.fb-popup-menu {
    position: relative;
    display: inline-block;
    height: inherit;
    /* Larger left/right padding to prevent scrollbar overlapping menu items */
    padding: 0.4rem 1.2rem;
    background-color: #fff;
    border: 1px solid #e5e5e5;
}

/* TODO: replace with fb-bottom-margin-1em */
.fb-p-bottom-margin {
    margin-bottom: 1rem;
}

.fb-popup-menu-list {
    height: 100%;
}

.fb-popup-view {
    position: relative;
    /*display: inline-block;*/
    width: inherit;
    height: inherit;
    background-color: #fff;
    border-radius: 4px;
    border: 1px solid #fff;
    cursor: default;
}

.fb-popup-view-border {
    border: 1px solid var(--border-color);
}

.fb-popup-view-padding {
    padding: 1rem 1.5rem 1.5rem;
}

@media (max-width: 768.98px) {
    .fb-popup-view-padding {
        padding: 0.5rem 0.75rem 0.75rem;
    }
}

.fb-popup-view-padding-small {
    padding: 0.5rem 0.75rem 0.75rem;
}

.fb-popup-view-three-button-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-gap: 0.5rem;
}

/* TODO: Replace with fb-two-buttons-row */
.fb-popup-view-two-buttons-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap: 0.5rem;
}

/* REMARK: Insert inner div to resize text box to title size */
/* TODO: Replace with fb-resize-text-box */
.fb-popup-view-text-box {
    display: flex;
    margin: 1rem 0 1.2rem;
}

.fb-popup-view-text-box div {
    flex-grow: 1;
    width: 0;
}

.fb-popup-view-title {
    height: inherit;
    padding-left: 0.5em;
    font-size: 1.2em;
    display: flex;
    align-items: center;
}

.fb-popup-view-title-box {
    height: 2.25em;
    display: grid;
    grid-template-columns: 1fr 2.25em;
    background-color: var(--selected-background-color);
    border-bottom: 1px solid var(--border-color);
}

.fb-position-relative {
    position: relative;
}

.fb-progress-bar {
    width: 100%;
    height: calc(1.5em + 2px);
    border: 1px solid var(--border-color-bold);
}

.fb-progress-bar-background {
    width: 100%;
    height: 1.5em;
    background-color: var(--fb-row-background);
}

.fb-progress-bar-fill {
    height: 1.5em;
    background-color: var(--selected-background-color);
    border-right: 1px solid var(--border-color-bold);
    margin-top: -1.5em;
}

.fb-progress-display {
    font-size: 1em;
    font-style: italic;
    padding: 1em;
}

/* REMARK: Insert inner div to resize text box to parent size */
.fb-resize-text-box {
    display: flex;
    margin: 0.5em;
}

.fb-resize-text-box div {
    flex-grow: 1;
    width: 0;
}

.fb-row-action-button {
    width: 2rem;
    cursor: pointer;
    color: var(--app-action-button-color);
}

.fb-row-background {
    background-color: var(--fb-row-background);
}

.fb-row-button {
    margin-bottom: 0.3rem;
}

.fb-scroll-both {
    width: 100%;
    height: 100%;
    overflow: auto;
}

.fb-scroll-horizontal {
    overflow-x: auto;
}

.fb-scroll-vertical {
    overflow-y: auto;
}

.fb-scroll-top-box {
    position: fixed;
    bottom: 0;
    right: 0;
    margin: 3rem 1.2rem;
    height: 2.4rem;
    width: 2.4rem;
    background-color: rgba(0,123,255,0.85);
    border-radius: 4px;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 2rem;
}

.fb-search_sort-table-grid {
    display: grid;
    border-bottom: 1px solid #e5e5e5;
}

.fb-select-button-color-buttons {
    display: flex;
    height: 2.4rem;
    margin-bottom: 0.3rem;
}

.fb-select-button-color-row {
    display: flex;
    margin-bottom: -0.3rem;
}

@media (max-width: 485px) {
    .fb-select-button-color-buttons {
        display: flex;
        height: 2.4rem;
        margin-bottom: 0.3rem;
        overflow-x: hidden;
    }

    .fb-select-button-color-row {
        display: flex;
        flex-wrap: wrap;
        margin-bottom: -0.3rem;
    }
}

.fb-select-color-button-margin {
    margin-bottom: 0.3rem;
    margin-right: 0.3rem;
}

.fb-select-color-colors {
    min-width: 7.2rem;
    max-width: 18rem;
}

.fb-select-form-field-content {
    cursor: default;
    height: calc(1.5em + 0.75rem);
    /* Overlap bootstrap form-control padding: */
    margin: -0.375rem -0.75rem -0.375rem -0.75rem;
    display: flex;
    align-items: center;
}

.fb-select-form-field-drop-down-content {
    display: grid;
    grid-template-columns: 1fr 0;
}

.fb-select-form-field-inner-content {
    height: inherit;
    padding: 0.375rem 1.2rem 0.375rem 0.75rem;
}

.fb-select-form-field-icon-position {
    position: relative;
    left: -1rem;
}

.fb-select-form-field-open {
    background-color: #fff;
    border-color: #80bdff;
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.fb-select-items-grid {
    display: grid;
    grid-template-columns: 2rem auto;
    grid-auto-rows: 1.5rem;
    grid-row-gap: 0.75rem;
    padding: 0.5rem 0 1.2rem;
}

.fb-select-language-row {
    height: 100%;
    margin-right: 0.75rem;
    display: flex;
    align-items: center;
}

.fb-select-language-small {
    cursor: pointer;
    height: 100%;
    padding: 0 0.5rem;
    display: flex;
    align-items: center;
}

.fb-select-list-row {
    cursor: default;
    height: 2rem;
    color: black;
    display: flex;
    align-items: center;
}

.fb-select-list-row-color {
    color: black;
}

.fb-select-list-row-color-margin {
    margin: 0 0.75rem;
}

.fb-select-list-row-margin {
    margin-right: 0.75rem;
}

.fb-select-list-row-selected {
    color: white;
    background-color: var(--selected-color);
}

.fb-select-list-rows {
    width: 100%;
    border: 1px solid black;
    background-color: white;
    overflow-x: hidden;
    outline: none;
}

.fb-selected-items-box {
    position: relative;
    border-radius: 0.25rem;
    border: 1px solid transparent;
    padding: 0.375rem 0.75rem;
}

.fb-selected-items-box-color {
    background-color: #fafafa;
    border-color: var(--border-color);
}

.fb-selected-items-box-padding-for-close-icon {
    padding-right: 2.25em;
}

.fb-selector-arrow {
    font-size: 1.4em;
    padding-top: 0.1em;
    cursor: pointer;
}

.fb-selector-arrow-container {
    width: 100%;
    padding: 0.3em 0;
    text-align: center;
}

.fb-selector-row-text-large {
    font-size: 1.6em;
}

.fb-selector-row-text-small {
    font-size: 1.3em;
}

.fb-show-top-center {
    /* Use "position: relative;" in parent to show the item on top of its parent. */
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
}

.fb-show-top-left {
    /* Use "position: relative;" in parent to show the item on top of its parent. */
    position: absolute;
    bottom: 100%;
    left: 0;
}

.fb-show-top-right-align-right {
    /* Use "position: relative;" in parent to show the item on top of its parent. */
    position: absolute;
    bottom: 100%;
    right: 0;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
}

/* see also fb-no-text-wrap-hide-overflow */
.fb-single-line {
    overflow-x: hidden;
    white-space: nowrap;
}

.fb-small-action-button-width {
    width: 1.5rem;
}

.fb-spinner {
    border: 0.5rem solid #f3f3f3;
    border-radius: 50%;
    border-top: 0.5rem solid #373737;
    width: 3rem;
    height: 3rem;
    -webkit-animation: fb-spinner-spin 2s linear infinite; /* Safari */
    animation: fb-spinner-spin 2s linear infinite;
}

/* Safari */
@-webkit-keyframes fb-spinner-spin {
    0% {
        -webkit-transform: rotate(0);
    }

    100% {
        -webkit-transform: rotate(360deg);
    }
}

@keyframes fb-spinner-spin {
    0% {
        transform: rotate(0);
    }

    100% {
        transform: rotate(360deg);
    }
}

.fb-sub-title-font {
    font-size: 1.6em;
}

.fb-table-grid {
    display: grid;
    border-bottom: 1px solid var(--border-color);
}

.fb-table-grid-button {
    width: 100%;
    min-width: 6rem;
}

.fb-table-grid-checkbox-border-left {
    border-left: 1px solid var(--border-color);
    padding-left: 0.5rem;
}

.fb-table-grid-checkbox-padding-left {
    padding-left: 0.5rem;
}

.fb-table-grid-error {
    padding-left: 0.5rem;
    display: flex;
    background-color: var(--fb-error-background-color)
}

.fb-table-grid-item {
    height: inherit;
    display: flex;
    align-items: center;
    border-top: 1px solid var(--border-color);
    /* Right padding required (instead of grid-column-gap) to keep the border continuous */
    padding-right: 0.5rem;
    padding-top: 0.2rem;
    padding-bottom: 0.2rem;
}

.fb-table-grid-item-no-right-padding {
    padding-right: 0;
}

.fb-table-grid-label-field {
    /* Right padding already in fb-table-grid-item */
    padding-left: 0.5rem;
}

.fb-table-grid-title-font {
    font-weight: 600;
}

.fb-table-grid-title-icon-container {
    width: 1.2rem;
    text-align: center;
}

.fb-text-center {
    text-align: center;
}

.fb-text-explain-required {
    white-space: nowrap;
}

.fb-text-input-prefix-label {
    top: calc(-1.5em - 0.375rem - 1px);
    left: 0.75rem;
    display: block;
    position: relative;
    z-index: -1;
}

.fb-text-right {
    text-align: right;
}

.fb-timed-message {
    padding: 0.2rem 0.75rem;
    border: 1px solid transparent;
    border-radius: 0.25rem;
}

.fb-timed-message-box {
    position: fixed;
    top: 0;
    right: 0;
    padding: 0.1rem;
    height: auto;
}

.fb-title-font {
    font-size: 2.5rem;
}

.fb-top-bar {
    width: 100%;
    border-bottom: 1px solid var(--border-color);
    display: flex;
    flex-direction: row;
}

.fb-top-bar-field-box {
    height: 1.4rem;
    padding: 0.3rem 0;
    font-size: 0.8rem;
    display: flex;
    flex-direction: row;
}

.fb-top-bar-item {
    height: 5.4rem;
    margin-left: 0.75rem;
    display: flex;
    align-items: center;
}

.fb-top-bar-1row-item {
    height: 3rem;
    margin-left: 0.75rem;
    display: flex;
    align-items: center;
}

.fb-top-bar-label {
    font-weight: 600;
    font-size: 0.8rem;
    margin-right: 0.4rem;
}

.fb-top-bar-image-size {
    max-width: 10rem;
    max-height: 5.4rem;
    width: auto;
    height: auto;
}

.fb-top-bar-right-area {
    position: absolute;
    right: 1rem;
    top: 0;
    display: flex;
    flex-direction: row;
}

.fb-top-bar-section {
    font-weight: 600;
    margin-right: 0.4rem;
}

.fb-top-bar-small {
    width: 100%;
    height: 3rem;
    padding: 0.3rem 0.5rem;
    border-bottom: 1px solid #e5e5e5;
    display: grid;
    grid-template-columns: auto auto 1fr auto auto;
    grid-column-gap: 0.5rem;
}

.fb-top-bar-small-item {
    height: 100%;
    display: flex;
    align-items: center;
}

.fb-top-bar-user-box {
    margin-right: 0.75rem;
    display: flex;
    flex-direction: column;
}

.fb-top-right-popup-view {
    display: grid;
    grid-template-columns: auto 1fr;
}

.fb-two-buttons-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap: 0.5rem;
}

.fb-vertical-center-content {
    height: inherit;
    display: flex;
    align-items: center;
    /* SEE ALSO: align-content: center;*/
}

.fb-vertical-center-content-with-height {
    display: flex;
    align-items: center;
}

.fb-view-title-with-buttons-row {
    display: grid;
    grid-template-columns: auto 0 auto 1fr auto;
    grid-column-gap: 0.3rem;
    width: 100%;
    align-items: center;
}

.fb-white-background-color {
    background-color: white;
}

/* See also: fb-full-size */
.fb-width-100 {
    width: 100%;
}

.fb-zoom-image-icon-box {
    height: 1.5em;
    width: 1.5em;
    position: absolute;
    right: 0;
    bottom: 0;
    font-size: 1.3em;
    display: flex;
    align-items: center;
    justify-content: center;
}