.date-range-component { min-width: 0; }
.date-range-component .flatpickr-input { min-width: 0; }
.date-range-component .form-control[readonly] { background-color: var(--bs-body-bg); }
.date-range-field .date-range-icon { position: absolute; right: .8rem; top: 50%; transform: translateY(-50%); color: var(--bs-secondary-color); pointer-events: none; }
.flatpickr-calendar.date-range-calendar {
  --date-range-sidebar-width: 10.5rem;
  --date-range-month-width: 252px;
  width: calc(var(--date-range-sidebar-width) + (var(--date-range-month-width) * 2)) !important;
  min-width: calc(var(--date-range-sidebar-width) + (var(--date-range-month-width) * 2));
  display: none;
  grid-template-columns: var(--date-range-sidebar-width) calc(var(--date-range-month-width) * 2);
  grid-template-areas: "presets months" "presets inner";
  overflow: hidden;
  border: 1px solid var(--bs-border-color);
  border-radius: .65rem;
  background: var(--bs-body-bg);
  box-shadow: 0 .65rem 1.75rem rgba(15, 23, 42, .16), 0 .15rem .45rem rgba(15, 23, 42, .1);
}
.flatpickr-calendar.date-range-calendar.open { display: grid; }
.date-range-calendar .date-range-presets { grid-area: presets; display: flex; flex-direction: column; padding: .75rem; border-right: 1px solid var(--bs-border-color); background: var(--bs-tertiary-bg); }
.date-range-calendar .date-range-preset { border: 0; border-radius: var(--bs-border-radius-sm); padding: .55rem .7rem; background: transparent; color: var(--bs-secondary-color); text-align: left; font-size: .875rem; }
.date-range-calendar .date-range-preset:hover { background: var(--bs-secondary-bg); color: var(--bs-body-color); }
.date-range-calendar .date-range-preset.is-active { background: rgba(var(--bs-primary-rgb), .22); color: var(--bs-primary); font-weight: 600; }
.date-range-calendar .flatpickr-months { grid-area: months; width: calc(var(--date-range-month-width) * 2) !important; min-width: calc(var(--date-range-month-width) * 2); background: var(--bs-body-bg); }
.date-range-calendar .flatpickr-months .flatpickr-month { width: var(--date-range-month-width); flex: 0 0 var(--date-range-month-width); background: transparent; }
.date-range-calendar .flatpickr-innerContainer,
.date-range-calendar .flatpickr-rContainer,
.date-range-calendar .flatpickr-weekdays,
.date-range-calendar .flatpickr-days { width: calc(var(--date-range-month-width) * 2) !important; min-width: calc(var(--date-range-month-width) * 2); max-width: none !important; }
.date-range-calendar .flatpickr-innerContainer { grid-area: inner; background: var(--bs-body-bg); }
.date-range-calendar .flatpickr-weekdays .flatpickr-weekdaycontainer { width: var(--date-range-month-width); flex: 0 0 var(--date-range-month-width); }
.date-range-calendar .dayContainer { width: var(--date-range-month-width) !important; min-width: var(--date-range-month-width); max-width: var(--date-range-month-width); padding: 0 .3rem; }
.date-range-calendar .flatpickr-day { width: 14.2857%; max-width: none; height: 35px; line-height: 35px; flex-basis: 14.2857%; }
.flatpickr-calendar.date-range-calendar.multiMonth .flatpickr-months .flatpickr-prev-month,
.flatpickr-calendar.date-range-calendar.multiMonth .flatpickr-months .flatpickr-next-month {
  top: .42rem;
  width: 1.8rem;
  height: 1.8rem;
  padding: 0;
  border-radius: 50%;
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.flatpickr-calendar.date-range-calendar.multiMonth .flatpickr-months .flatpickr-prev-month { left: calc(var(--date-range-sidebar-width) + .45rem); }
.flatpickr-calendar.date-range-calendar.multiMonth .flatpickr-months .flatpickr-next-month { right: .45rem; }
.date-range-calendar .flatpickr-prev-month:hover,
.date-range-calendar .flatpickr-next-month:hover { background: var(--bs-secondary-bg); color: var(--bs-body-color); }
.date-range-calendar .flatpickr-prev-month svg,
.date-range-calendar .flatpickr-next-month svg { position: static; width: .75rem; height: .75rem; margin: 0; fill: currentColor; }
.date-range-calendar .flatpickr-day.inRange {
  border-color: transparent;
  border-radius: 0;
  background: rgba(var(--bs-primary-rgb), .13);
  box-shadow: none;
}
.date-range-calendar .flatpickr-day.startRange,
.date-range-calendar .flatpickr-day.endRange { border-color: var(--bs-primary); background: var(--bs-primary); color: #fff; box-shadow: none; }
.date-range-calendar .flatpickr-day.startRange { border-radius: 999px 0 0 999px; }
.date-range-calendar .flatpickr-day.endRange { border-radius: 0 999px 999px 0; }
.date-range-calendar .flatpickr-day.startRange.endRange { border-radius: 999px; }
[data-bs-theme="dark"] .flatpickr-calendar.date-range-calendar {
  border-color: #495057;
  background: #212529;
  color: #dee2e6;
  box-shadow: 0 .8rem 2rem rgba(0, 0, 0, .48), 0 .2rem .55rem rgba(0, 0, 0, .35);
}
[data-bs-theme="dark"] .date-range-calendar .date-range-presets { border-color: #495057; background: #252a2f; }
[data-bs-theme="dark"] .date-range-calendar .flatpickr-months,
[data-bs-theme="dark"] .date-range-calendar .flatpickr-innerContainer { background: #212529; }
[data-bs-theme="dark"] .date-range-calendar .flatpickr-weekday { background: #212529; color: #adb5bd; }
[data-bs-theme="dark"] .date-range-calendar .date-range-preset { color: #ced4da; }
[data-bs-theme="dark"] .date-range-calendar .date-range-preset:hover { background: #343a40; color: #fff; }
[data-bs-theme="dark"] .date-range-calendar .date-range-preset.is-active { background: rgba(13, 110, 253, .3); color: #6ea8fe; }
[data-bs-theme="dark"] .date-range-calendar .flatpickr-prev-month,
[data-bs-theme="dark"] .date-range-calendar .flatpickr-next-month { background: #343a40; color: #ced4da; }
[data-bs-theme="dark"] .date-range-calendar .flatpickr-day.inRange {
  border-color: transparent;
  background: rgba(13, 110, 253, .24);
  color: #dee2e6;
  box-shadow: none;
}
@media (max-width: 700px) {
  .flatpickr-calendar.date-range-calendar { width: min(308px, calc(100vw - 1rem)) !important; min-width: 0; grid-template-columns: minmax(0, 1fr); grid-template-areas: "presets" "months" "inner"; max-width: calc(100vw - 1rem); }
  .date-range-calendar .date-range-presets { flex-direction: row; flex-wrap: wrap; border-right: 0; border-bottom: 1px solid var(--bs-border-color); }
  .date-range-calendar .flatpickr-months,
  .date-range-calendar .flatpickr-innerContainer,
  .date-range-calendar .flatpickr-rContainer,
  .date-range-calendar .flatpickr-weekdays,
  .date-range-calendar .flatpickr-days { width: 100% !important; min-width: 0; }
  .date-range-calendar .flatpickr-months,
  .date-range-calendar .flatpickr-innerContainer,
  .date-range-calendar .flatpickr-rContainer,
  .date-range-calendar .flatpickr-weekdays { width: 100% !important; min-width: 0; }
  .date-range-calendar .flatpickr-months .flatpickr-month,
  .date-range-calendar .flatpickr-weekdays .flatpickr-weekdaycontainer,
  .date-range-calendar .dayContainer { width: 100% !important; min-width: 0; max-width: none; flex-basis: 100%; }
  .date-range-calendar .flatpickr-month:nth-child(2),
  .date-range-calendar .dayContainer:nth-child(2) { display: none; }
  .flatpickr-calendar.date-range-calendar.multiMonth .flatpickr-months .flatpickr-prev-month { left: .45rem; }
}

.input-group > .input-group-text.search-icon-addon {
  flex: 0 0 2.75rem;
  width: 2.75rem;
  min-width: 2.75rem;
  padding: .5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.input-group-sm > .input-group-text.search-icon-addon {
  flex-basis: 2.25rem;
  width: 2.25rem;
  min-width: 2.25rem;
  padding: .375rem;
}
.input-group > .input-group-text.search-icon-addon > i {
  display: block;
  line-height: 1;
}

.negatable-filter { display: flex; flex-wrap: nowrap; }
.negatable-filter > .input-group-text { padding-left: .65rem; }
.negatable-filter > .filter-picker-btn {
  flex: 1 1 auto;
  width: auto !important;
  min-width: 0;
}
.negatable-filter > .filter-picker-btn:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

/* Shared filter modal */
.filter-card:has(> .filter-modal) {
  border: 1px solid var(--bs-border-color);
}
.filter-modal-launcher {
  min-height: 3.5rem;
  gap: 1rem;
}
.filter-modal .modal-content {
  border-color: var(--bs-border-color);
  box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, .35);
}
.filter-modal .modal-body {
  padding: 1.5rem;
}
.filter-modal .modal-body form > .row {
  row-gap: 1.25rem !important;
}
.filter-modal .modal-footer {
  padding-inline: 1.5rem;
}
@media (max-width: 575.98px) {
  .filter-modal-launcher {
    align-items: flex-start !important;
    flex-direction: column;
  }
  .filter-modal .modal-body {
    padding: 1rem;
  }
  .filter-modal .modal-footer > * {
    flex: 1 1 auto;
  }
}

@property --filter-glow-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}

@keyframes filterApplyGlow {
  to { --filter-glow-angle: 360deg; }
}

@keyframes filterApplyOrbit {
  to { offset-distance: 100%; }
}

.js-filter-form.is-filter-dirty [data-filter-apply],
form#filter-form.is-filter-dirty button[type="submit"] {
  --filter-glow: #00d26a;
  --filter-glow-hot: #8affc1;
  position: relative;
  isolation: isolate;
  animation: filterApplyGlow 1.6s linear infinite;
  border-color: var(--filter-glow);
  background-color: var(--bs-primary);
  color: #fff;
  box-shadow:
    0 0 .35rem rgba(0, 210, 106, .8),
    0 0 1rem rgba(0, 138, 69, .55);
}

.js-filter-form.is-filter-dirty [data-filter-apply]::before,
form#filter-form.is-filter-dirty button[type="submit"]::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: -.28rem;
  padding: .16rem;
  pointer-events: none;
  border-radius: calc(var(--bs-border-radius-sm) + .25rem);
  background: conic-gradient(
    from var(--filter-glow-angle),
    transparent 0 48%,
    var(--filter-glow) 62%,
    var(--filter-glow-hot) 72%,
    var(--filter-glow) 82%,
    transparent 100%
  );
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
}

.js-filter-form.is-filter-dirty [data-filter-apply]::after,
form#filter-form.is-filter-dirty button[type="submit"]::after {
  content: "";
  position: absolute;
  z-index: 2;
  width: .38rem;
  height: .38rem;
  border-radius: 50%;
  background: #caffdf;
  box-shadow: 0 0 .35rem #fff, 0 0 .7rem var(--filter-glow), 0 0 1rem var(--filter-glow);
  offset-path: inset(-.24rem round calc(var(--bs-border-radius-sm) + .22rem));
  offset-distance: 0%;
  animation: filterApplyOrbit 1.25s linear infinite;
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .js-filter-form.is-filter-dirty [data-filter-apply],
  form#filter-form.is-filter-dirty button[type="submit"] {
    animation: none;
    box-shadow: 0 0 .4rem rgba(0, 210, 106, .85), 0 0 1rem rgba(0, 138, 69, .6);
  }
  .js-filter-form.is-filter-dirty [data-filter-apply]::after,
  form#filter-form.is-filter-dirty button[type="submit"]::after { animation: none; }
}
.modal#detailExportModal { z-index: 1080; }

/* Shared table pagination */
.standard-table-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; min-height: 3.5rem; padding: .75rem 1rem; border-top: 1px solid var(--bs-border-color); background: var(--bs-body-bg); }
.standard-table-footer > [data-table-footer-start],
.standard-table-footer > [data-table-footer-end] { display: flex; align-items: center; min-width: 0; }
.standard-table-footer > [data-table-footer-end] { justify-content: flex-end; margin-left: auto; }
.standard-table-footer .dt-info,
.standard-table-footer .dataTables_info { padding: 0; white-space: nowrap; }
.standard-table-footer .dt-paging,
.standard-table-footer .dataTables_paginate { display: flex; align-items: center; margin: 0; padding: 0; white-space: nowrap; }
.standard-table-card { overflow: hidden; border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius-lg); background: var(--bs-body-bg); box-shadow: var(--bs-box-shadow-sm); }
.standard-table-card .table-toolbar { min-height: 3rem; margin: 0; padding: .45rem 1rem; border-bottom: 1px solid var(--bs-border-color); background: var(--bs-tertiary-bg); flex-wrap: nowrap; }
.standard-table-card .table-toolbar-controls { display: flex; align-items: center; gap: .5rem; flex-wrap: nowrap; }
.standard-table-card .table-toolbar-controls .dt-length,
.standard-table-card .table-toolbar-controls .dataTables_length,
.standard-table-card .table-toolbar-controls .dt-length label,
.standard-table-card .table-toolbar-controls .dataTables_length label { display: flex; align-items: center; gap: .5rem; margin: 0; white-space: nowrap; }
.standard-table-card .table-toolbar-controls .dt-length label,
.standard-table-card .table-toolbar-controls .dataTables_length label { order: 0; }
.standard-table-card .table-toolbar-controls .dt-length select,
.standard-table-card .table-toolbar-controls .dataTables_length select { order: 1; width: auto; margin: 0; }
.standard-table-card .table-toolbar-controls > .btn { display: inline-flex; align-items: center; justify-content: center; align-self: center; min-width: 2rem; min-height: 2rem; padding: .25rem .5rem; }
.standard-table-card .table-scroll-shell { width: 100%; max-width: 100%; max-height: none; min-height: 0; overflow-x: auto; overflow-y: hidden; border: 0; border-radius: 0; box-shadow: none; }
.standard-table-card .dt-container,
.standard-table-card .dataTables_wrapper { width: 100%; max-width: 100%; }
.standard-table-card .dt-layout-row { margin: 0; }
.standard-table-card .dt-layout-row.dt-layout-table { padding: .75rem .75rem 0; }
.standard-table-card .dt-layout-row.dt-layout-table > .dt-layout-cell { padding: 0; }
.standard-table-card table { margin-bottom: 0; box-shadow: none !important; border-radius: 0 !important; }
.standard-table-card table > :not(caption) > * > * { padding-top: .55rem; padding-bottom: .55rem; }
.standard-table-card table thead th,
.insight-card table thead th { border-bottom: 1px solid var(--bs-border-color); background: var(--bs-tertiary-bg); color: var(--bs-emphasis-color); }
.standard-table-card .dt-layout-row:last-child { padding: 0; }
.pagination .pagination-navigation .page-link,
.dt-paging .dt-paging-button.first,
.dt-paging .dt-paging-button.previous,
.dt-paging .dt-paging-button.next,
.dt-paging .dt-paging-button.last,
.dataTables_paginate .paginate_button.first,
.dataTables_paginate .paginate_button.previous,
.dataTables_paginate .paginate_button.next,
.dataTables_paginate .paginate_button.last {
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), .1);
  font-weight: 700;
}
.pagination .pagination-ellipsis .page-link { border-color: transparent; background: transparent; color: var(--bs-secondary-color); }
.searchable-combobox { position: relative; width: 100%; }
.searchable-combobox > input { padding-right: 2.35rem; }
.searchable-combobox-clear {
  position: absolute; z-index: 2; top: 50%; right: .5rem; transform: translateY(-50%);
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.75rem; height: 1.75rem; padding: 0; border: 0; border-radius: 50%;
  background: transparent; color: var(--bs-secondary-color);
}
.searchable-combobox-clear:hover,
.searchable-combobox-clear:focus { background: var(--bs-tertiary-bg); color: var(--bs-body-color); outline: 0; }
.searchable-combobox-clear[hidden] { display: none; }
.searchable-combobox-menu {
  position: absolute; z-index: 1100; top: calc(100% + .25rem); left: 0; right: 0;
  max-height: min(16rem, 40vh); overflow-y: auto; overscroll-behavior: contain;
  padding: .3rem; border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius);
  background: var(--bs-body-bg); box-shadow: var(--bs-box-shadow-lg);
}
.searchable-combobox-option {
  display: block; width: 100%; padding: .5rem .65rem; border: 0;
  border-radius: calc(var(--bs-border-radius) - .15rem);
  background: transparent; color: var(--bs-body-color); text-align: left;
}
.searchable-combobox-option:hover,
.searchable-combobox-option:focus,
.searchable-combobox-option.active { background: var(--bs-primary); color: #fff; outline: 0; }
.searchable-combobox-create {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem;
  margin-top: .3rem; border-top: 1px solid var(--bs-border-color); border-radius: 0 0 calc(var(--bs-border-radius) - .15rem) calc(var(--bs-border-radius) - .15rem);
  color: var(--bs-primary); font-weight: 600;
}
.searchable-combobox-new-label {
  padding: .1rem .4rem; border: 1px solid currentColor; border-radius: 999px;
  font-size: .7rem; line-height: 1.2; text-transform: uppercase;
}
.searchable-combobox-empty { padding: .65rem; color: var(--bs-secondary-color); font-size: .875rem; }
.table-scroll-shell .dt-info,
.table-scroll-shell .dataTables_info { width: max-content; }
.table-scroll-shell .dt-paging,
.table-scroll-shell .dataTables_paginate { width: max-content; margin-left: auto; }
.table-scroll-shell .dt-layout-row:last-child,
.table-scroll-shell .dataTables_wrapper > .row:last-child { min-width: 100%; background: var(--bs-body-bg); }
