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

.childTableRow {
  background-color: var(--clr-tbl-child);
}

.notification-dropdown {
  width: min(420px, 92vw);
}

.login-page .login-box {
  width: 100%;
  max-width: 26rem;
}
.login-page .card {
  border-radius: var(--bs-border-radius-lg, 0.5rem);
  border-width: 0;
  box-shadow: var(--bs-box-shadow);
}
.login-page .card-outline.card-primary {
  border-top: 3px solid var(--bs-primary);
}
.login-page .brand-image {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.app-sidebar .sidebar-brand .brand-link,
.app-sidebar .nav-link {
  color: var(--bs-body-color);
}
.app-sidebar .nav-link-quick {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0;
}
.app-sidebar .nav-link-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  color: inherit;
  text-decoration: none;
  border-radius: 0.35rem;
  padding: 0.5rem 1rem;
}
.app-sidebar .nav-link-main p {
  margin: 0;
}
.app-sidebar .nav-link-main:hover,
.app-sidebar .nav-link-main:focus-visible {
  color: inherit;
}
.app-sidebar .nav-link-new {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 999px;
  color: var(--bs-secondary-color);
  border: 1px solid rgba(var(--bs-secondary-rgb), 0.35);
  background-color: var(--bs-body-bg);
  text-decoration: none;
  opacity: 0;
  transform: translateX(2px);
  pointer-events: none;
  transition: opacity 0.15s ease, transform 0.15s ease, color 0.15s ease, border-color 0.15s ease;
  margin-right: 0.5rem;
}
.app-sidebar .nav-item:hover .nav-link-new,
.app-sidebar .nav-item:focus-within .nav-link-new {
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
}
.app-sidebar .nav-link-new:hover,
.app-sidebar .nav-link-new:focus-visible {
  color: var(--bs-primary);
  border-color: rgba(var(--bs-primary-rgb), 0.55);
}
@media (hover: none) {
  .app-sidebar .nav-link-new {
    opacity: 1;
    transform: none;
    pointer-events: auto;
  }
}
.app-sidebar .nav-link:hover {
  background-color: var(--bs-secondary-bg);
  color: var(--bs-body-color);
}
.app-sidebar .nav-header {
  color: var(--bs-secondary-color);
}

.app-main .app-content:has(> .fpm-home-hero) {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.app-main .app-content > .fpm-home-hero {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 0;
  padding-block: 1rem;
}
.app-main .app-content > .fpm-home-hero #index_logo {
  height: auto;
  width: auto;
  max-height: min(40vh, 12rem);
  max-width: min(90vw, 28rem);
  margin-top: 0;
  margin-bottom: 1rem;
}

.content-card {
  box-shadow: none;
  border: 1px solid var(--bs-border-color);
}
.content-card .card-body {
  padding: 1rem 1.25rem;
}
.content-card .dataTables_wrapper {
  padding-top: 0.5rem;
}
.content-card .dataTables_length,
.content-card .dataTables_filter {
  margin-bottom: 0.75rem;
}
.content-card .dataTables_wrapper .row.dt-toolbar-row {
  align-items: center;
  margin-bottom: 0.75rem;
}
.content-card .dataTables_wrapper .row.dt-toolbar-row .dataTables_length,
.content-card .dataTables_wrapper .row.dt-toolbar-row .dataTables_filter {
  margin-bottom: 0;
}
.content-card .dataTables_info,
.content-card .dataTables_paginate {
  padding-top: 0.75rem;
  margin-top: 0.5rem;
}
.content-card .table {
  margin-bottom: 0;
}
.content-card .table th,
.content-card .table td {
  padding: 0.5rem 0.75rem;
}

body.modal-open .modal-backdrop {
  z-index: 1060 !important;
}

body.modal-open .modal {
  z-index: 1065 !important;
}

#mainTable thead th {
  white-space: nowrap;
}

#mainTable thead th a {
  color: #000 !important;
}
#mainTable thead th a:visited {
  color: #000 !important;
}
#mainTable thead th a:hover, #mainTable thead th a:focus-visible {
  color: #212529 !important;
  text-decoration: underline !important;
}

.addons-popover {
  --bs-popover-max-width: 460px;
}
.addons-popover .popover-body {
  max-height: 320px;
  overflow: auto;
  padding: 0.75rem;
}
.addons-popover h3 {
  margin: 0 0 0.5rem 0;
  font-size: 0.95rem;
}

#bulk-date-controls {
  border: 1px solid var(--bs-warning-border-subtle);
  background: var(--bs-warning-bg-subtle);
}
#bulk-date-controls .bulk-title {
  font-weight: 600;
}

#bulk-addon-controls {
  border: 1px solid var(--bs-warning-border-subtle);
  background: var(--bs-warning-bg-subtle);
}
#bulk-addon-controls .bulk-title {
  font-weight: 600;
}

.top-action-card {
  height: 100%;
}
.top-action-card .card-section-title {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--bs-secondary-color);
  margin-bottom: 0.5rem;
}

.stage-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.stage-filter-row .btn {
  border-width: 1px;
}
.stage-filter-row .btn-stage-entered,
.stage-filter-row .btn-stage-not-started {
  color: #495057;
  background-color: #f8f9fa;
  border-color: #ced4da;
}
.stage-filter-row .btn-stage-acquired,
.stage-filter-row .btn-stage-in-progress {
  color: #0c5460;
  background-color: #e8f7fa;
  border-color: #9adbe8;
}
.stage-filter-row .btn-stage-cremated,
.stage-filter-row .btn-stage-complete {
  color: #5a4a0b;
  background-color: #fff3cd;
  border-color: #ffe08a;
}
.stage-filter-row .btn-stage-delivered {
  color: #155724;
  background-color: #d4edda;
  border-color: #9dd6ad;
}
.stage-filter-row .btn-stage-entered:hover,
.stage-filter-row .btn-stage-not-started:hover {
  background-color: #e9ecef;
  border-color: #adb5bd;
}
.stage-filter-row .btn-stage-acquired:hover,
.stage-filter-row .btn-stage-in-progress:hover {
  background-color: #d5f1f6;
  border-color: #76ccdd;
}
.stage-filter-row .btn-stage-cremated:hover,
.stage-filter-row .btn-stage-complete:hover {
  background-color: #ffe8a3;
  border-color: #ffd166;
}
.stage-filter-row .btn-stage-delivered:hover {
  background-color: #c3e6cb;
  border-color: #7cc59a;
}

#print-controls .print-controls-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: end;
}
#print-controls .print-type-group {
  min-width: 0;
  flex: 1 1 280px;
}
#print-controls .print-run-btn {
  min-width: 150px;
  flex: 0 0 auto;
}
#print-controls select.form-select,
#print-controls .print-run-btn .btn {
  width: 100%;
}

@media (max-width: 575.98px) {
  #print-controls .print-controls-row {
    align-items: stretch;
  }
  #print-controls .print-type-group,
  #print-controls .print-run-btn {
    flex: 1 1 100%;
    min-width: 0;
  }
}
#newLogForm .section-card {
  border: 1px solid var(--bs-border-color);
  border-radius: 0.5rem;
  padding: 1rem;
  background: var(--bs-body-bg);
}
#newLogForm .field-label {
  font-weight: 600;
  margin-bottom: 0.25rem;
}
#newLogForm .field-label.required::after {
  content: " *";
  color: var(--bs-danger);
}
#newLogForm .qty-input {
  max-width: 5rem;
  text-align: center;
}
#newLogForm .accordion-button {
  font-weight: 600;
}

.messages-layout .messages-sidebar {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.messages-layout .messages-thread-list {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}
.messages-layout .list-group-item {
  overflow: hidden;
}
.messages-layout .thread-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 0.5rem;
  min-width: 0;
}
.messages-layout .thread-text {
  min-width: 0;
}
.messages-layout .thread-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.25rem;
  flex: 0 0 auto;
  white-space: nowrap;
}
.messages-layout .messages-main {
  min-height: 72vh;
}
.messages-layout .messages-body {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1rem;
  max-height: 52vh;
  overflow-y: auto;
  background: var(--bs-tertiary-bg);
}
.messages-layout .message-bubble {
  width: min(100%, 680px);
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 0.75rem;
  padding: 0.6rem 0.75rem;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}
.messages-layout .message-row.justify-content-end .message-bubble {
  background: rgba(var(--bs-primary-rgb), 0.08);
  border-color: rgba(var(--bs-primary-rgb), 0.25);
}
.messages-layout .message-meta {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}
.messages-layout .message-content {
  white-space: pre-line;
  line-height: 1.45;
}

@media (max-width: 991.98px) {
  .messages-layout .messages-main {
    min-height: auto;
  }
}
@media (max-width: 575.98px) {
  .messages-layout .thread-row {
    gap: 0.35rem;
  }
  .messages-layout .thread-meta .small {
    font-size: 0.75rem;
  }
}
