:root {
    font-family: "Open Sans", sans-serif;
    font-size: 100%;
    line-height: 110%;
}
html, body {
    background-color: #FFF;
    color: #000;
    font-size: 1.0rem;
}
header {
    font-family: "Proza Libre", serif;
    margin-bottom: 2px;
    padding-bottom: 5px;
    padding-left: .5rem;
    padding-top: 5px;
}
header h1 a, header h1 a:hover {
    color: #000;
    text-decoration: none;
}
header h1 {
    font-size: 1.875rem;
}

.app-button {
    color: #FFF;
    text-decoration: none;
}

footer p {
    color: #333;
    font-size: .9rem;
    margin-bottom: 20px;
    margin-top: 2px;
    text-align: center;
}
footer ul {
    line-height: 1.2;
    list-style: none outside none;
    margin-bottom: 1.25rem;
    margin-left: 1.1rem;
    text-align: center;
}
footer ul li {
    display: inline-block;
    font-size: .9rem;
    margin-right: .5em;
    text-align: -webkit-match-parent;
}


img { margin: 5px; }
p { margin: 5px auto 10px; }
pre { white-space: pre-wrap; }
table { background-color: #FFF; color: #000; }
a, .btn-link { text-decoration: none; }
a:hover:not(.btn), .btn-link:hover { text-decoration: underline; }
blockquote {
    display: block;
    margin: 1em 40px;
}

.font-italic {
    font-style: italic;
}

.element-loaders {
    min-height: 400px; /* Set your minimum height here */
}

/* DASHBOARD HEADER */
.dashboard {
    width: 1400px;
    display: flex;
    align-items: center;
}
.dashboard > div {
    box-sizing: border-box;
    padding: 8px;
    text-align: center;
}

.dashboard .column {
    display: inline-flex;           /* Shrinks/grows to fit its content */
    align-items: center;            /* Vertically center elements like labels/inputs */
    justify-content: center;        /* Optional: center horizontally within its box */
    padding: 0 0.75rem;             /* Left/right padding (≈12px) */
    margin: 0.25rem;                /* Optional spacing between columns */
    flex: 0 0 auto;                 /* Prevents flex-grow so it fits content */
}


/* FORM STUFF TOGETHER! */
form {
    margin-bottom: 1rem;
    margin-top: 0.625rem;
}
fieldset { margin-bottom: 10px; margin-top: 20px; }
input:checked {
    background-color: #C90000;
}
label:not(.custom-file-label):not(.form-check-label) {
    font-weight: bold;
}
legend {
    border-bottom: 1px solid #003 !important;
    font-size: 1.5rem;
    margin-bottom: .5rem;
    padding-bottom: .125rem;
}
legend .modified-box {
    float: right;
    font-size: .8rem;
    margin-bottom: 0;
    padding: 0;
    width: auto;
}
legend .modified-box p {
    margin-bottom: 0 !important;
}

.date-field, .input-group > .month-field { width: 100px; }
.date-field, .input-group > .date-field { width: 200px; }
.input-50, .input-group > .input-50 { width: 50px; }
.input-100, .input-group > .input-100 { width: 100px; }
.input-150, .input-group > .input-150 { width: 150px; }
.input-200, .input-group > .input-200 { width: 200px; }
.input-200, .input-group > .input-250 { width: 250px; }
.input-300, .input-group > .input-300 { width: 300px; }
.input-400, .input-group > .input-400 { width: 400px; }
.input-500, .input-group > .input-500 { width: 500px; }
.input-600, .input-group > .input-600 { width: 600px; }

/* required to override input groups automatically being full width */
.input-group > .date-field,
    .input-group > .input-50,
    .input-group > .input-100,
    .input-group > .input-150,
    .input-group > .input-200,
    .input-group > .input-250,
    .input-group > .input-300,
    .input-group > .input-400,
    .input-group > .input-500,
    .input-group > .input-600 {
        position: unset;
        flex: none;
}

.form-control {
    display: inline-block;
}
.form-check-input {
    border: var(--bs-border-width) solid #000102;
}
.form-check-label {
    font-weight: normal;
    margin-right: 25px;
}
.form-label {
    font-weight: bold;
    font-size: .85rem;
}
.form-error {
    margin-bottom: 5px;
    margin-top: 10px;
}
.form-select {
    font-size: .9rem;
    width: auto;
}


.show-all-options {
      overflow: auto;
}
.custom-file-label { text-align: left; }


.required { color: #E51C23; }

textarea::placeholder {
    color: #888;
    font-style: italic;
    opacity: 1;
    font-size: smaller;
}
input::placeholder {
    color: #888;
    font-style: italic;
    opacity: 1;
    font-size: smaller;
}

.select2-container .select2-selection--single,
.select2-container .select2-selection--multiple,
.select2-container .select2-search__field,
.select2-results__option {
    font-size: 14px;
}


    /* UTILITY CLASSES */
.flash-messages {
    font-weight: 700;
    margin: 10px auto 20px;
    padding: 5px 15px;
}
.flash-messages p { margin-bottom: 0; margin-top: 0; }
.flash-messages p:not(:first-child) { margin-top: 5px; }
.hide-on-load { display: none; }
.text-small-caps { font-variant: small-caps; }
.tooltip-inner { max-width: 400px; text-align: left; }

/* GENERAL LAYOUT CLASSES */
.breadcrumb {
    background-color: #D9EDF7;
    border-radius: .25rem;
    font-size: .9rem;
    font-weight: bold;
    margin: 20px 0;
    padding: .75rem 1rem;
}
.site-header {
    color: #286090;
    text-decoration: none;
}
.page-title {
    color: #500000;
    margin-top: 10px;
    margin-bottom: 0.125rem;
    font-size: 1.125rem;
}
.subtitle {
    font-size: 1.25rem;
    margin-bottom: 30px;
}
.modified-box {
    margin-bottom: 20px;
    margin-top: -10px;
    padding: 5px;
}

/* login buttons */
.btn-login {
    border-color: #A6D3D7;
    font-weight: 700;
    letter-spacing: 1px;
    margin: 5px 20px;
    text-decoration: none;
    text-transform: uppercase;
    white-space: normal;
}
.btn-login img {
    height: 100px;
    margin: 5px;
    width: 100px;
}

/* TABLE TWEAKS */
/* Make sure we have no border spacing for both regular and tig-tables */
table, table.tig-table {
    border-collapse: collapse;
    border-spacing: 0;
    font-size: .90rem;
}
table caption {
    caption-side: top;
    font-family: 'Proza Libre', serif;
    font-size: 1.25rem;
    font-weight: 500;
    margin-top: 10px;
    margin-bottom: 0;
}
table.table > tbody > tr > td,
    .tig-table.table > tbody > tr > td {
    vertical-align: top;
}

.tig-table.dataTable tbody td, th {
    padding: 0.25rem 0.5rem;
    line-height: 1.2;
    font-size: 0.875rem;
}

.tig-table .dropdown-toggle {
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
    line-height: 1.0;
    height: auto;
}

tfoot .no-border-row,
tfoot .no-border-row th,
tfoot .no-border-row td {
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
    background-color: transparent;
}

/* Change hover to yellow */
table.table.dataTable.table-hover > tbody > tr:hover > * {
    background-color: #FF9;
}

/* DATATABLES TWEAKS */
.dataTable thead td, th {
    text-align: left !important;
}
table.dataTable tbody td {
    vertical-align: top;
}

/* reduce the whitespace for the showing */
div.dt-info {
    padding-top: 0 !important;
    white-space: nowrap;
}

div.dt-search label {
    font-size: 0.875rem !important;
    margin-bottom: 0;
}

div.dt-search input {
    padding: 0.25rem 0.5rem !important;
    font-size: 0.875rem !important;
    height: 0.9rem !important;
}

/* Pagination hover/focus background colors a bit bluer */
.pagination > li > a:focus,
.pagination > li > a:hover,
.pagination > li > span:focus,
.pagination > li > span:hover {
    background-color: #E0E6FC;
}
/* Make the various data tables elements bold and smaller */
div.dt-container div.dt-paging,
    div.dt-container div.dt-length,
    div.dt-container div.dt-search,
    div.dt-container div.dt-info,
    div.dt-container div.dt-length label,
    div.dt-container div.dt-search label,
    .dt-empty {
        font-size: 1rem;
        font-weight: 600;
}
div.dt-container div.dt-length select {
    width: 75px;
}

/* Make sorts darker */
table.dataTable thead > tr > th.dt-ordering-asc span.dt-column-order::before,
table.dataTable thead > tr > td.dt-ordering-asc span.dt-column-order::before,
table.dataTable thead > tr > th.dt-ordering-desc span.dt-column-order::after,
table.dataTable thead > tr > td.dt-ordering-desc span.dt-column-order::after {
    opacity: 1;
}

/* Make highlight green so not blocked by hover */
table.dataTable span.highlight { background: #9F0; }

/* override Nav to make colors better */
.navbar {
   border-radius: 0;
    min-height: 35px !important;
    border: none !important;
    padding: 0;
    margin-bottom: 0;
}
.navbar .container-fluid .navbar-toggler {
    font-size: .75rem;
}
.navbar .navbar-nav > li.nav-item > a {
    font-family: "Proza Libre", serif;
    font-variant: small-caps;
    font-size: .85rem;
    font-weight: 600;
    color: #020202 !important;
    letter-spacing: .5px;
    width: 100%;
    justify-content: center;
    text-align: center;
}
.navbar .navbar-nav .nav-item .nav-link span {
    position: relative;
    z-index: 2;
    display: block;
    text-align: center;
}
.navbar .navbar-nav .nav-item {
    border-right: none !important;
    width: 125px;
}
.navbar .navbar-nav .nav-item:last-child {
    border-right: none;
}
.nav-item.active {
    font-weight: bold;
    background: #c4e2ff;
    color: #000 !important;
    border: none;
}
.navbar .navbar-nav  { font-size: 1.0rem; }
.navbar .navbar-nav a:focus,
.navbar .navbar-nav a:hover,
.navbar .navbar-nav > li.nav-item > a:hover,
.navbar .navbar-nav > li.nav-item > a:focus {
    color: #FFF !important;
    background-color: #036;
    text-decoration: none;
}
.navbar .navbar-nav > .active,
.navbar .navbar-nav > li.nav-item > a.active,
.navbar .navbar-nav > li.nav-item > a.active:hover,
.navbar .navbar-nav > li.nav-item > a.active:focus {
    background: #91c8ff;
}

/* BUTTON TWEAKS */
.btn {
    font-family: "Open Sans", sans-serif;
    line-height: 1.5rem;
    font-weight: 600;
}
.btn:not(.btn-sm):not(.btn-lg):not(.btn-xs) { font-size: .85rem; }
td .btn, th .btn { margin: 0 !important; }
.btn.float-right { margin-left: 5px; }

.btn:hover > .far,
.btn:hover > .fas,
.btn:hover.text-danger,
.btn:hover.text-warning,
.btn:hover.text-success,
.btn:hover.text-info,
.btn:hover.text-primary,
.btn:hover.text-dark {
    color: #FFF !important;
}

/* make outline buttons text always black */
[class*="btn-outline-"] {
    color: #000;
    white-space: normal;
    text-decoration: none;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .25px;
}
[class*="btn-outline-"]:hover {
    color: #FFF;
}
.btn-primary,
.btn-secondary,
.btn-success,
.btn-danger,
.btn-warning,
.btn-info,
.btn-light,
.btn-dark {
    white-space: normal;
    text-decoration: none;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .25px;
}

/* Tabs fixes */
.nav-tabs {
    border-bottom: none;
    margin-bottom: 0;
}
.tab-content {
    border: 1px solid #3072AB;
    border-radius: 4px 4px 4px 4px;
    padding: 0.5em;
}
.nav-tabs .nav-item .nav-link {
    margin-right: .5em;
    border: 1px solid #4297d7;
    background: #5c9ccc;
    color: #FFF;
    font-weight: bold;
    border-radius: 4px 4px 0 0;
}
.nav-tabs .nav-item .nav-link:hover, .nav-tabs > .active > a:hover, .nav-tabs > li.active > a, .nav-tabs > li.active > a:focus {
    color: #FFF;
    border: 1px solid #4297d7;
    cursor: default;
    background: #036;
}
.nav-tabs .nav-item .nav-link.active, .nav-tabs .nav-item .nav-link:focus {
    color: #2F71A9;
    background-color: #FFF;
    border: 1px solid #4297d7;
    cursor: default;
}
.nav-tabs .nav-item .active:hover {
    color: #31708f;
    border: 1px solid #4297d7;
    cursor: default;
    background: #D9EDF7;
}

.popover {
    max-width: 400px; /* or auto */
    width: auto;
}
