.badge { font-weight: 500; }
.table td, .table th { vertical-align: middle; }
.list-group-item { font-size: 0.95rem; }
.navbar-brand { font-weight: 600; }

/* Utilities */
.badge { font-weight: 500; }
.table td, .table th { vertical-align: middle; }
.list-group-item { font-size: 0.95rem; }
.navbar-brand { font-weight: 600; }

/* Long titles with explicit line breaks and very long words */
.title-wrap {
  white-space: pre-line;      /* honor \n in titles */
  overflow-wrap: anywhere;    /* wrap long tokens */
  word-break: break-word;     /* fallback for some browsers */
}

.pagination {
    width: 100%;
}

/* Global bottom spacing */
body { padding-bottom: 3rem; }

:root {
  --bs-primary: #009640;
  --bs-primary-rgb: 0, 150, 64;
  --bs-link-color: #009640;
  --bs-link-hover-color: #007a33;
  --bs-success: #009640; /* align success with brand */
  --bs-success-rgb: 0, 150, 64;
  /* Ensure Bootstrap components use brand colors where relevant */
  --bs-nav-pills-link-active-bg: var(--bs-primary);
  --bs-nav-pills-link-active-color: #fff;
}

/* Primary buttons in brand color */
.btn-primary {
  --bs-btn-bg: var(--bs-primary);
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-bg: #007a33;
  --bs-btn-hover-border-color: #007a33;
  --bs-btn-active-bg: #00652b;
  --bs-btn-active-border-color: #00652b;
}

/* Success buttons to also use brand for uniformity */
.btn-success {
  --bs-btn-bg: var(--bs-success);
  --bs-btn-border-color: var(--bs-success);
  --bs-btn-hover-bg: #007a33;
  --bs-btn-hover-border-color: #007a33;
  --bs-btn-active-bg: #00652b;
  --bs-btn-active-border-color: #00652b;
}

/* Outline primary uses brand color */
.btn-outline-primary {
  --bs-btn-color: var(--bs-primary);
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-bg: var(--bs-primary);
  --bs-btn-hover-border-color: var(--bs-primary);
  --bs-btn-active-bg: #007a33;
  --bs-btn-active-border-color: #007a33;
}

/* Outline success also uses brand color for consistency */
.btn-outline-success {
  --bs-btn-color: var(--bs-success);
  --bs-btn-border-color: var(--bs-success);
  --bs-btn-hover-bg: var(--bs-success);
  --bs-btn-hover-border-color: var(--bs-success);
  --bs-btn-active-bg: #007a33;
  --bs-btn-active-border-color: #007a33;
}

/* Secondary variants aligned to brand to keep uniform look */
.btn-secondary {
  --bs-btn-bg: var(--bs-primary);
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-bg: #007a33;
  --bs-btn-hover-border-color: #007a33;
  --bs-btn-active-bg: #00652b;
  --bs-btn-active-border-color: #00652b;
}
.btn-outline-secondary {
  --bs-btn-color: var(--bs-primary);
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-bg: var(--bs-primary);
  --bs-btn-hover-border-color: var(--bs-primary);
  --bs-btn-active-bg: #007a33;
  --bs-btn-active-border-color: #007a33;
}

/* Active nav link in brand color */
.nav-link.active { color: var(--bs-primary) !important; }
.nav-link:hover { color: var(--bs-primary); }

/* Navbar brand styling and logo size */
.navbar-brand { white-space: normal; }
.navbar-brand .brand-text { color: var(--bs-primary); font-weight: 700; }
.brand-logo { height: 28px; width: auto; display: inline-block; }

/* Allow navbar to wrap on narrow screens to prevent overlap */
.navbar .container-fluid { flex-wrap: wrap; gap: .5rem; }
.navbar .navbar-brand { flex-shrink: 0; }
.navbar .navbar-collapse { flex-basis: 100%; }

/* Stronger brand presence on navbar */
.navbar { border-bottom: 3px solid var(--bs-primary) !important; }

/* Page titles in brand color */
.page-title { color: var(--bs-primary); }

/* Form focus branding */
.form-control:focus, .form-select:focus {
  border-color: #007a33;
  box-shadow: 0 0 0 0.25rem rgba(0, 150, 64, 0.25);
}

/* Card header subtle brand accent */
.card > .card-header { border-left: 4px solid var(--bs-primary); }

/* Table header accent */
.table thead.table-light { border-bottom: 2px solid var(--bs-primary); }

/* Offcanvas specific brand styling */
.offcanvas .nav-pills .nav-link { color: var(--bs-primary); }
.offcanvas .nav-pills .nav-link:hover,
.offcanvas .nav-pills .nav-link:focus { color: #007a33; }
.offcanvas .nav-pills .nav-link.active {
  background-color: var(--bs-primary) !important;
  color: #fff !important;
}
.offcanvas .offcanvas-header { border-left: 4px solid var(--bs-primary); }

/* Responsive brand sizing */
@media (max-width: 576px) {
  .brand-logo { height: 22px; }
  .navbar-brand .brand-text { font-size: 1rem; }
}

/* Compact AI button styling */
.btn-ai {
  text-transform: uppercase;
  letter-spacing: .04em;
  border-radius: 999px !important; /* pill */
  font-weight: 600;
}
.btn-ai.btn-sm {
  padding: .15rem .45rem;
  line-height: 1;
  font-size: .675rem;
}

/* Highlight the best (lowest) price cell with a light green background */
.best-cell { background-color: #e8f6ee; }
/* Ensure Bootstrap table styles (hover/striped) don't override the highlight */
.table td.best-cell, .table th.best-cell { background-color: #e8f6ee !important; }
.table-hover tbody tr:hover > td.best-cell, .table-hover tbody tr:hover > th.best-cell { background-color: #e0f2e7 !important; }

/* Progress bar tweaks for AI modal */
.progress.progress-sm { height: .5rem; }
.progress .progress-bar { transition: width .35s ease, background-color .2s ease; }
.progress .progress-label { font-size: .875rem; }
