/* Create some padding at bottom of the page for breathing room */
body { padding-bottom: 50px; }

a.skip-nav:not(:focus):not(:hover) {
  transform: translateY(-4em);
  opacity: 0;
}

.skip-nav {
background-color: var(--bs-body-bg);
border: 1px solid var(--evergreen);
color: var(--evergreen);
margin: 0;
padding: 1em;
position: absolute;
z-index: 2000;
left: 0;
top: 0;
width: auto;
transition: transform 0.15s ease-out, opacity 0.15s ease-out;
}

#top-navbar ul.dropdown-menu > li > a {
  display: flex;
  align-items: baseline;
}

#top-navbar ul.dropdown-menu > li > a > kbd {
  margin-inline-start: auto;
}

#top-navbar ul.dropdown-menu li a:has(kbd) > span:not(.glyphicon):last-of-type {
  margin-inline-end: 1rem;
}

#top-navbar ul.dropdown-menu li .glyphicon {
  margin-inline-end: 0.5rem;
}

/* Hatch / WebSockets / Etc. connectivity status indicator */
.connect-status-ok {
  color: rgb(var(--bs-green-rgb)); /* success */
}

body {
    color: var(--bs-body-color); /* note: this is not comprehensive; changing Bootstrap's
                    default text color from #333 to #000 would require
                    more work */
    background-color: var(--bs-body-bg);
}

kbd {
  background-color: var(--bs-body-bg-highlight);
  border-radius: .2rem;
  border: none;
  box-shadow: 1px 1px 1px rgba(var(--box-shadow), 0.2);
  color: var(--bs-body-color);
  margin: 0 .2em;
  /* :first-letter requires a block-level element */
  display: inline-block;
  padding: .3rem .6rem;
}

/* --------------------------------------------------------------------------
 * Structural modifications
 */

#top-content-container {
    /* allow the primary container to occupy most of the page,
     * but leave some narrow gutters along the side, much 
     * narrower than the default Bootstrapp container gutters.
     */
    width: 95%;
    padding-top: 70px;
}


/* --------------------------------------------------------------------------
 * Temporaray local CSS required to make angular-ui-bootstrap
 * version 0.6.0 look right with Bootstrap CSS 3.0
 */
.nav, .pagination, .carousel a { cursor: pointer; }

/* Overwrite Bootstrap's definition so the area around hovered buttons doesn't look bad in dark mode */
.nav>li>a:hover {
  color: var(--primary-hover);
  background-color: var(--bs-gray-200);
}
[data-bs-theme="dark"] .nav>li>a:hover {
  background-color: var(--bs-gray-900);
}
/*
.modal {
    display: block;
    height: 0;
    overflow: visible;
}
.modal-body:before,
.modal-body:after {
    display: table;
    content: " ";
}
.modal-header:before,
.modal-header:after {
    display: table;
    content: " ";
}
*/

.modal-content {
  background-color: var(--bs-body-bg);
}
.modal-header .close,
.modal-header .close:hover {
  color: var(--modal-header-color);
  opacity: 1;
  text-shadow: none;
}

/* --------------------------------------------------------------------------
/* Form Validation CSS - http://docs.angularjs.org/guide/forms
 * TODO: these colors are harsh and don't fit the EG color scheme
 */

 .form-validated .ng-valid.ng-dirty[required]:not(:is(fieldset, form)),
 .form-validated .ng-valid.ng-dirty.required, 
 .form-validated input[formcontrolname].ng-valid.required {
   border-left: 5px solid var(--bs-form-valid-border-color);
 }
 
 .form-validated .ng-invalid.ng-dirty:not(:is(fieldset, form)),
 .form-validated input[formcontrolname].ng-invalid.ng-dirty,
 .form-validated .invalid.ng-dirty:not(:is(form)),
 :user-invalid {
   border-left: 5px solid var(--bs-form-invalid-border-color);
 }
 
/* --------------------------------------------------------------------------
 * Local style
 */

/* change default link color to provide adequate contrast */

a {
   color: var(--primary);
}


/* no bootstrap way to directly disable a link.  */
a.disabled {
  pointer-events: none;
  cursor: default;
  opacity: 0.8;
}
.disabled {
  cursor: not-allowed;
}

#splash-nav .panel-body div {
    padding-bottom: 10px;
}

table.list tr.selected td { /* deprecated? */
  color: var(--grid-row-selected);
  background-color: var(--grid-row-selected-bg);
  border-color: var(--grid-row-selected-border);
}

.pad-horiz {padding : 0px 10px 0px 10px; }
.pad-vert {padding : 20px 0px 10px 0px;}
.pad-left {padding-left: 10px;}
.pad-right {padding-right: 10px;}
.pad-right-min {padding-right: 5px;}
.pad-all-min {padding : 5px; }
.pad-all-min2 {padding : 2px; }
.pad-all {padding : 10px; }

#print-div { display: none; }

/* by default, give all tab panes some top padding */
.tab-pane { padding-top: 20px; }

.nav-pills-like-tabs {
    border-bottom:1px solid var(--border);
}

.btn-pad {
  /* sometimes you don't want buttons scrunched together -- add some margin */
  margin-left: 10px;
}

/* button styling by Cory LaViska from
   http://www.abeautifulsite.net/whipping-file-inputs-into-shape-with-bootstrap-3/
*/
.btn-file {
    position: relative;
    overflow: hidden;
}
.btn-file input[type=file] {
    position: absolute;
    top: 0;
    right: 0;
    min-width: 100%;
    min-height: 100%;
    font-size: 100px;
    text-align: right;
    filter: alpha(opacity=0);
    opacity: 0;
    outline: none;
    background: var(--bs-body-bg-alt);
    cursor: inherit;
    display: block;
}

.strong-text {
  font-weight: bold;
}
.strong-text-1 {
  font-size: 110%;
  font-weight: bold;
}
.strong-text-2 {
  font-size: 120%;
  font-weight: bold;
}
.strong-text-3 {
  font-size: 130%;
  font-weight: bold;
}
.strong-text-4 {
  font-size: 140%;
  font-weight: bold;
}

.currency-input {
  width: 8em;
}
#show_password {
  border: none;
}
/* barcode inputs are everywhere.  Let's have a consistent style. */
.barcode { width: 16em !important; }

/* use strike-through to mark something that has been acknowledged,
   e.g., a item alert */
.acknowledged { text-decoration: line-through; }

/* eg-help-popover directive doesn't need a border around its <button> */
.no-border.glyphicon-question-sign,
.no-border.glyphicon-info-sign {
  border-color: var(--bs-body-bg);
}

/* bootstrap alerts are heavily padded.  use this to reduce */
.alert-less-pad {padding: 5px;}

/* text displayed inside a <progressbar>, typically the max/progress values */
.progressbar-text {
  color:var(--bs-body-color);
  white-space:nowrap;
}

/* embedded UI iframe */
.eg-embed-frame {
  width: 100%;
}
.eg-embed-frame iframe {
  width: 100%;
  border: none;
  margin: 0px;
  padding: 0px;
}

/* Useful for grid-like things that aren't proper grids.
 * Mimics the grids color scheme. */
.selected-row {
  background-color: var(--bs-light);
}

/* Reduces the vertical space added by form-group's.  Especially useful
 * for tall modal windows.
 */
.tight-vert-form .form-group {
  margin-bottom: 5px;
} 




/* patron bill row-highlighting */
/* background colors are !important because Bootstrap 4 table striping is greedy */
.overdue-row {
  color: var(--bs-body-color);
  background-color: rgba(var(--bs-orange-rgb), 0.10) !important;
  border-color: rgba(var(--bs-orange-rgb), 0.15);
  border-left: 10px solid var(--bs-orange);
  padding-left: 0;
}

.overdue-row a:link, .overdue-row a:visited,
.overdue-row .eg-grid-cell-stock-status {
  color: var(--badge-danger-color);
  border-color: var(--badge-danger-color);
}

.longoverdue-row {
  color: var(--bs-body-color);
  background-color: rgba(var(--bs-orange-rgb), 0.25) !important;
  border-color: rgba(var(--bs-orange-rgb), 0.30);
  border-left: 2px solid var(--bs-orange-600);
  padding-left: 0;
}

.longoverdue-row a:link, .longoverdue-row a:visited,
.longoverdue-row .eg-grid-cell-stock-status {
  color: var(--bs-orange-700);
  border-color: var(--bs-orange-700);
}

[data-bs-theme="dark"] .longoverdue-row a:link, .longoverdue-row a:visited,
[data-bs-theme="dark"] .longoverdue-row .eg-grid-cell-stock-status {
  color: var(--bs-yellow-300);
  border-color: var(--bs-orange-700);
}

.lost-row {
  color: var(--bs-body-color);
  background-color: rgba(var(--bs-red-rgb), 0.25) !important;
  border-color: rgba(var(--bs-red-rgb), 0.30);
  border-left: 2px solid var(--bs-red-600);
  padding-left: 0;
}

.lost-row a:link, .lost-row a:visited,
.lost-row .eg-grid-cell-stock-status {
  color: var(--danger-color);
  border-color: var(--bs-red-700);
}


.eg-grid-row-selected.overdue-row {
  color: var(--bs-body-color);
  background-color: rgba(var(--bs-orange-rgb), 0.15) !important;
  border-color: rgba(var(--bs-orange-rgb), 0.20);
  border-left: 2px solid var(--bs-orange);
}
.eg-grid-row-selected.longoverdue-row {
  color: var(--bs-body-color);
  background-color: rgba(var(--bs-orange-rgb), 0.30) !important;
  border-color: rgba(var(--bs-orange-rgb), 0.35);
  border-left: 2px solid var(--bs-orange-600);
}
.eg-grid-row-selected.lost-row {
  color: var(--bs-body-color);
  background-color: rgba(var(--bs-red-rgb), 0.30) !important;
  border-color: rgba(var(--bs-red-rgb), 0.35);
  border-left: 2px solid var(--bs-red-600);
}




/* simple flex container for consistent-width cell-based structures */
.flex-container-striped > .flex-row:nth-child(odd) {
  background-color: var(--row-even-bg);
}
.flex-container-bordered .flex-cell {
  border-bottom: 1px solid var(--border);
}
.flex-row {
  display: flex;
}
.flex-row.padded div {
  padding: 5px;
}
.flex-row.left-anchored > div {
  margin-right: 10px;
}
.flex-cell {
  flex: 1;
  padding: 4px; /* bootstrap default is much bigger */
}
.flex-cell.well {
  min-height: 2.5em; /* don't let empty wells scrunch down */
  margin-bottom: 5px; /* bootstrap default is 20px */
}
.flex-2 { /* meh, convience */
  flex: 2;
}
.flex-3 { /* meh, convience */
  flex: 3;
}
.flex-4 { /* meh, convience */
  flex: 4;
}

/* 768px equals Bootstrap "md" col resizing */
@media all and (max-width: 768px) {
  .flex-row {
    flex-direction: column;
  }
  .eg-grid-row {
    flex-direction: column;
  }
}

/* optional class to make 'lg' Bootstrap modals even wider */
@media (min-width: 768px) {
  .eg-wide-modal .modal-lg {
    width: 95%;
  }
}

@media all and (min-width: 768px) {
    /* scrollable menus for full-size screens */
    .scrollable-menu {
        height: auto;
        max-height: 400px;
        overflow-x: hidden;
    }
}

.eg-modal-progress progress {
  width: 100%;
  height: 25px;
}

.eg-grid-columns-modal-body {
  max-height: 400px;
  overflow: scroll;
}

.eg-grid-columns-modal-body .row {
  padding: 2px 0px 2px 0px;
  border-bottom: 1px solid var(--border);
}

.eg-grid-columns-modal-body .visible {
  color: var(--bs-body-color);
  background-color: var(--bs-body-bg-alt);
  border-bottom: 1px solid var(--border);
}


eg-grid-field {
  display: none;
}

.eg-grid-tooltip .tooltip-inner {
  max-width: 400px;
}

.svg-icon {
  display: inline-block;
  vertical-align: middle;
}

.svg-icon svg {
  max-height: 1lh;
  max-width: 1lh;
  vertical-align: bottom;
  margin-right: .25rem;
}


/* DARK MODE */
/* Bootstrap has some background colors set instead of using their own body
background/text variables. Crash override. We can remove this in Bootstrap 5.3.
/**/
.accordion-item, .accordion-button,
.card,
.eg-grid-content-body > div:nth-child(2n+1):not(.eg-grid-row-selected),
.list-group-item,
.panel, .panel-body,
#patron-fixed-tabs,
.patron-summary-container .row:nth-child(2n+1):not(.alert),
.table {
    background: var(--bs-body-bg);
    border-color: var(--border);
    color: var(--bs-body-color);
}

.bg-light, .bg-white,
[data-bs-theme="dark"] .btn-light:active,
[data-bs-theme="dark"] .btn-outline-dark:active {
  background: inherit !important;
  color: inherit !important;
}

legend,
.eg-grid-cell {
    color: var(--bs-body-color);
}

input, textarea, select, option,
.form-control, .form-control:focus, .form-select, .form-check-input {
  background: var(--bs-body-bg);
  border-color: var(--border);
  color: var(--bs-body-color);
}

.accordion-button:not(.collapsed),
.alert-info,
.btn-outline-dark,
.card-header,
.eg-grid-header,
.eg-grid-sticky-header,
.panel-header,
#patron-summary-grid div.row:nth-child(2n+1),
.popover, 
.popover-body,
.popover-body .dropdown-item,
.tooltip-inner,
.well {
    background: var(--bs-body-bg-highlight);
    border-color: var(--border);
    color: var(--bs-body-color);
}

.popover-header {
  background-color: var(--popover-header-bg);
  color: var(--bs-body-color);
}

.bs-popover-auto[data-popper-placement^="top"] .popover-header::before, 
.bs-popover-top .popover-header::before,
.bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after, 
.bs-popover-top > .popover-arrow:after  {
  border-top-color: var(--border);
}

.bs-popover-auto[data-popper-placement^="left"] .popover-header::before, 
.bs-popover-left .popover-header::before,
.bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after, 
.bs-popover-left > .popover-arrow:after {
  border-left-color: var(--border);
}

.bs-popover-auto[data-popper-placement^="right"] .popover-header::before, 
.bs-popover-right .popover-header::before,
.bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after, 
.bs-popover-right > .popover-arrow:after {
  border-right-color: var(--border);
}

.bs-popover-auto[data-popper-placement^="bottom"] .popover-header::before, 
.bs-popover-bottom .popover-header::before,
.bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after, 
.bs-popover-bottom > .popover-arrow:after {
  border-bottom-color: var(--border);
}

[data-bs-theme="dark"] .alert {
  border: none;
}

[data-bs-theme="dark"] .alert-primary:has(h1) {
  background-color: transparent;
  color: var(--bs-body-color);
}

[data-bs-theme="dark"] .text-dark {
  color: var(--bs-body-color) !important;
}

[data-bs-theme="dark"] .text-danger {
  color: var(--danger-color) !important;
}

[data-bs-theme="dark"] .border {
  border: 1px solid var(--border) !important;
}

[data-bs-theme="dark"] .btn-outline-dark:disabled {
  border-color: var(--border);
  color: var(--border);
}


/* Less intense, WCAG AAA-compliant badges */
.badge {
  font-weight: 400;
  font-size: .9em;
  line-height: .9em;
  padding-top: .15em;
}

.alert-primary,
.badge-primary,
.badge.text-bg-primary {
  background: var(--badge-bg);
  color: var(--badge-color);
  border-color: var(--primary-border);
}

.badge-secondary,
.badge.text-bg-secondary {
  background: var(--bs-gray-300);
  color: var(--bs-body-color);
  border-color: var(--border);
}

[data-bs-theme="dark"] .badge-secondary,
[data-bs-theme="dark"] .badge.text-bg-secondary {
  background: var(--bs-gray-700);
}

.alert-success,
.badge-success,
.badge.text-bg-success {
  background: var(--badge-success-bg);
  color: var(--badge-success-color);
  border-color: var(--success-border);
}

.alert-danger,
.badge-danger,
.badge.text-bg-danger {
  background: var(--badge-danger-bg);
  color: var(--badge-danger-color);
  border-color: var(--danger-border);
}

.alert-warning,
.badge-warning,
.badge.text-bg-warning {
  background: var(--badge-warning-bg);
  color: var(--badge-warning-color);
  border-color: var(--warning-border);
}

.alert-info,
.badge-info,
.badge.text-bg-info {
  background: var(--badge-info-bg);
  color: var(--badge-info-color);
  border-color: var(--info-border);
}

.badge-light,
.badge.text-bg-light {
  background: var(---bs-body-bg-highlight);
  color: var(--bs-body-color);
  border-color: var(--border);
}

.badge-dark,
.badge.text-bg-dark {
  background: var(--bs-gray-500);
  color: var(--bs-body-color);
  border-color: var(--border);
}

[data-bs-theme="dark"] .badge-dark,
[data-bs-theme="dark"] .badge.text-bg-dark {
  background: var(--bs-gray-800);
}

/* Accessible button colors */

.btn {
  color: var(--bs-body-color);
}
.btn:hover {
  color: var(--bs-text-highlight);
  background-color: var(--bs-body-bg-highlight)
}

.btn.btn-link {
  color: inherit;
  background-color: transparent;
}


.btn-default {
  color: var(--btn-gray-color);
  background-color: var(--bs-body-bg);
  border: 1px solid var(--btn-gray-border);
}

.btn-default[disabled] {
  opacity: 0.7;
}

.btn-default:is(:active, :hover, :focus, :focus-visible) {
  color: var(--btn-gray-color);
  background-color: var(--bs-body-bg-highlight);
  border: 1px solid var(--btn-gray-border);
}

.btn-light:is(:hover, :focus, .focus-visible),
.btn-light.dropdown-toggle:is(:hover, :focus, .focus-visible),
.show > .btn-light.dropdown-toggle {
  background-color: var(--bs-body-bg-alt);
  color: var(--bs-secondary-color);
  border-color: var(--bs-secondary-color);
}

.btn-outline-secondary:is(:hover, :focus, :focus-visible) {
  color: var(--bs-secondary-color);
  background-color: transparent;
}

.btn-warning,
.btn-outline-warning {
  background: var(--badge-warning-bg);
  border-color: var(--warning-border);
  color: var(--bs-body-color);
}

/* other colors' focus state shadows do not need to change */
.btn-warning.focus,
.btn-warning:is(:hover, :focus, :focus-visible),
.btn-warning.dropdown-toggle:is(:hover, :focus, :focus-visible),
.show > .btn-warning.dropdown-toggle {
  background-color: var(--badge-warning-hover-bg);
  border-color: var(--warning-border-hover);
  box-shadow: 0 0 0 .2rem var(--warning-shadow);
}

.btn-primary {
  background-color: var(--primary);
  border-color: var(--primary-border);
  color: var(--bs-white);
}

.btn-primary:is(.hover, :hover, .focus, :focus, :focus-visible),
.btn-primary.dropdown-toggle:is(.hover, :hover, .focus, :focus, :focus-visible),
.btn-check:active + .btn-primary, 
.btn-check:checked + .btn-primary, 
.btn-primary.active,
.show > .btn-primary.dropdown-toggle {
  background-color: var(--primary-hover);
  color: var(--bs-white);
  outline-color: var(--primary-border);
  outline-offset: 2px;
  outline-width: 2px;
}

.btn-outline-primary {
  background-color: var(--bs-body-bg);
  border-color: var(--primary-border);
  color: var(--primary-border);
}

.btn-outline-primary:is(.hover, :hover, .focus, :focus, :focus-visible) {
  background-color: var(--bs-body-bg);
  border-color: var(--primary-border);
  color: var(--primary-border);
}

.btn-primary.disabled,
.btn-primary:disabled {
  color: var(--bs-white);
}

.btn-outline-primary.disabled,
.btn-outline-primary:disabled {
  color: var(--primary-disabled);
  background-color: var(--bs-body-bg);
  border-color: var(--primary-disabled);
}

.btn-info {
  background-color: var(--bs-cyan-700);
  border-color: var(--bs-cyan-600);
  color: white;
}

[data-bs-theme="dark"] .btn-info {
  border-color: var(--bs-cyan-800);
}

.btn-info:is(.hover, :hover, .focus, :focus, :focus-visible),
.btn-info.dropdown-toggle:is(.hover, :hover, .focus, :focus, :focus-visible),
.btn-check:active + .btn-info, 
.btn-check:checked + .btn-info, 
.btn-info.active,
.show > .btn-info.dropdown-toggle {
  background-color: var(--bs-cyan-600);
  border-color: var(--bs-cyan-600);
  color: white;
}

[data-bs-theme="dark"] .btn-info:is(.hover, :hover, .focus, :focus, :focus-visible),
[data-bs-theme="dark"] .btn-check:active + .btn-info, 
[data-bs-theme="dark"] .btn-check:checked + .btn-info, 
[data-bs-theme="dark"] .btn-info.active,
[data-bs-theme="dark"] .show > .btn-info.dropdown-toggle {
  border-color: var(--bs-cyan-800);
}

.btn-info.disabled, .btn-info:disabled {
  color: white !important;
}

.btn-outline-info {
  background-color: var(--bs-body-bg);
  border-color: var(--info-border);
  color: var(--bs-body-color);
}

.btn-outline-info:is(.hover, :hover, .focus, :focus, :focus-visible),
.btn-outline-info.dropdown-toggle:is(.hover, :hover, .focus, :focus, :focus-visible),
.btn-check:active+.btn-info,
.btn-check:checked+.btn-info,
.btn-info.active,
.btn-info:active,
.show>.btn-info.dropdown-toggle {
  color: var(--bs-body-color);
  background-color: var(--badge-info-bg);
  border-color: var(--info-border);
}

.btn-info.disabled,
.btn-info:disabled {
  color: var(--bs-white);
  background-color: var(--info-disabled);
  border-color: var(--info-disabled);
}

.btn-outline-info.disabled,
.btn-outline-info:disabled {
  color: var(--info-disabled);
  background-color: var(--bs-body-bg);
  border-color: var(--info-disabled);
}

.btn-success {
  background-color: var(--success);
  border-color: var(--success-border);
  color: var(--success-color);
}

.btn-success:is(.hover, :hover, .focus, :focus, :focus-visible),
.btn-success.dropdown-toggle:is(.hover, :hover, .focus, :focus, :focus-visible), 
.btn-check:active + .btn-success, 
.btn-check:checked + .btn-success, 
.btn-success.active,
.show > .btn-success.dropdown-toggle {
  background-color: var(--success-hover);
  border-color: var(--success-hover);
  color: var(--success-hover-color);
}

.btn-outline-success {
  background-color: var(--bs-body-bg);
  border-color: var(--success);
  color: var(--success-color);
}

.btn-outline-success:is(.hover, :hover, .focus, :focus, :focus-visible) {
  background-color: var(--bs-body-bg);
  border-color: var(--success-hover);
  color: var(--success-hover-color);
}

.btn-success.disabled,
.btn-success:disabled {
  color: var(--bs-white);
  background-color: var(--success-disabled);
  border-color: var(--success-disabled);
}

.btn-outline-success.disabled,
.btn-outline-success:disabled {
  color: var(--success-disabled);
  background-color: var(--bs-body-bg);
  border-color: var(--success-disabled);
}

.btn-danger {
  background-color: var(--danger);
  border-color: var(--danger-border);
  color: white;
}

.btn-danger:is(.hover, :hover, .focus, :focus, :focus-visible) {
  background-color: var(--danger-bg-hover);
}

.btn-normal,
.btn-destroy,
.btn-outline-normal:is(:active, :hover, :focus, :focus-visible) {
  color: var(--btn-gray-color);
  background-color: var(--btn-gray-bg);
  border: 1px solid var(--btn-gray-border);
}

.btn-normal:is(:active, :hover, :focus, :focus-visible) {
  color: var(--btn-gray-color);
  background-color: var(--btn-gray-bg-hover);
  border: 1px solid var(--btn-gray-border);
}

.btn-outline-normal,
.btn-outline-destroy {
  color: var(--btn-gray-color);
  background-color: transparent;
  border: 1px solid var(--btn-gray-border);
}

.btn-outline-normal:is(:active, :hover, :focus, :focus-visible) {
  color: var(--btn-gray-color);
  background-color: var(--btn-gray-bg);
  border: 1px solid var(--btn-gray-border);
}

.btn-normal[disabled],
.btn-destroy[disabled] {
  color: var(--bs-body-color);
  background-color: var(--btn-gray-bg);
  border: 1px solid var(--btn-gray-border);
}

.btn-outline-normal[disabled],
.btn-outline-destroy[disabled] {
  color: var(--btn-gray-border);
  background-color: transparent;
  border: 1px solid var(--btn-gray-border);
}

.btn-link.btn-destroy {
  background-color: transparent;
  border-color: transparent;
}

.btn-destroy:is(:active, :hover, :focus, :focus-visible),
.btn-link.btn-destroy:is(:active, :hover, :focus, :focus-visible) {
  color: var(--destroy-color);
  background-color: var(--bs-body-bg-highlight);
  border: 1px solid var(--danger-border);
  box-shadow: 0 0 0 .25rem rgba(var(--bs-red-rgb), .25);
}

.btn-destroy:active {
  color: white;
  background-color: var(--danger);
  border: 1px solid var(--danger-border);
}

.btn-link.btn-destroy:active {
  color: var(--danger);
  background-color: transparent;
  border: 1px solid var(--danger-border);
}

.btn-outline-destroy:is(:hover, :focus, :focus-visible) {
  color: var(--destroy-color);
  background-color: transparent;
  border: 1px solid var(--danger-border);
  box-shadow: 0 0 0 .25rem rgba(var(--bs-red-rgb), .25);
}

.btn-outline-destroy:active {
  color: var(--destroy-color);
  background-color: transparent;
  border: 1px solid var(--danger-border);
}

/* Also have to overwrite bootstrap for dark mode for these */
.form-control::placeholder {
  color: var(--bs-gray-550);
}

[data-bs-theme="dark"] .form-control::placeholder {
  color: var(--bs-gray-600);
}

.form-control[disabled], .form-control[readonly]{
  background-color: var(--bs-body-bg-highlight);
}

.dropdown-menu:has(li>a){
  background-color: var(--bs-body-bg);
}
.dropdown-menu>li>a,
.dropdown-menu>li>a:hover,
.dropdown-menu>li>a:focus {
  color: var(--bs-dark);
  padding: 1px 8px;
}

.dropdown-menu>li>a:focus,
.dropdown-menu>li>a:hover {
  background-color: var(--bs-body-bg-alt);
}

.open > .dropdown-menu {
  box-shadow: 0 0.1em 0.5em rgba(var(--box-shadow), 0.3);
}

[data-bs-theme="dark"] .open > .dropdown-menu {
box-shadow: 0 0.1em 1em rgba(var(--box-shadow), 0.7);
}

.dropdown-menu.uib-datepicker-popup {
  background-color: var(--bs-white);
}


button.dropdown-toggle:hover,
button.dropdown-toggle:focus,
.open>button.btn-default.dropdown-toggle,
.open>button.btn-default.dropdown-toggle:focus,
.open>button.btn-default.dropdown-toggle:hover{
  color: var(--bs-text-highlight);
  background-color: var(--bs-body-bg-highlight);
}

:is(.nav, .nav-pills, .nav-tabs) > li.active > a:is(a, .active, :active) {
  background-color: var(--bs-body-bg-highlight);
  color: var(--primary);
}

:is(.nav, .nav-pills, .nav-tabs) > li.active > a:is(a, :focus, :focus-visible, :hover) {
  background-color: var(--bs-body-bg-alt);
  color: var(--primary-hover);
  border: 1px solid var(--border);
  border-width: 1px 1px 0;
  border-radius: 4px 4px 0 0;
}

.nav-tabs > li.active > a:is(a, :focus, :focus-visible, :hover) {
  border-width: 1px 1px 0;
  border-radius: 4px 4px 0 0;
}

.input-group-addon,
.input-group-addon button {
  color: var(--bs-text-highlight);
  background-color: var(--bs-body-bg-highlight);
  border-color: var(--border-thick);
  border-right-color: var(--border);
}

.input-group-addon button {
  border: none;
}

/* Use subtle background colors in older interfaces */
.bg-info {
  background-color: var(--badge-info-bg);
}

.bg-success {
  background-color: var(--badge-success-bg);
}

pre {
  color: var(--bs-body-color);
  background-color: var(--bs-body-bg-alt);
  border: 1px solid var(--border);
}

@media (forced-colors: active) or (prefers-contrast: forced) {
  .uib-increment .btn,
  .uib-decrement .btn {
    border: 0;
  }

  #top-navbar.navbar-default .navbar-nav > .dropdown > a:hover .caret,
  #top-navbar.navbar-default .navbar-nav > .dropdown > a:focus .caret,
  #top-navbar.navbar-default .navbar-nav > .dropdown > a .caret,
  .dropdown .caret {
    border: 0;
    height: unset;
    width: unset;
  }

  .dropdown .caret:after,
  #top-navbar.navbar-default .navbar-nav > .dropdown > a .caret:after {
    border: 0;
    content:"\e252"; /* triangle-bottom */
    font-family: "Glyphicons Halflings";
    font-size: 0.9rem;
    line-height: 1;
    margin-inline-start: .5ch;
    vertical-align: middle;
  }

  .dropdown.open .caret:after,
  #top-navbar.navbar-default .navbar-nav > .dropdown.open > a .caret:after {
    border: 0;
    content:"\e253"; /* triangle-top */
  }
}


