/* Custom styles - keep minimal; Bootstrap handles most styling */
:root { --brand: #0d6efd; --icon-gap: 0.5rem; --icon-gap-sm: 0.375rem; }

.navbar-brand { font-weight: 600; }

.card-balance { min-height: 220px; }

/* Layout: card paddings (balanced) */
.card-body { padding: 1.5rem; }
.card-header { padding: 1.25rem 1.5rem; }
.card-footer { padding: 1.25rem 1.5rem; }

/* Stats card slightly tighter */
.stats-card .card-body { padding: 1.25rem; }

/* Dark mode helpers */
[data-bs-theme="dark"] .card { background-color: #1f1f1f; }

/* Icon spacing system (balanced, consistent) */
.bi { margin: 0; vertical-align: -0.125em; }

/* Generic adjacency spacing for inline text */
.bi + :is(span, small, strong, em, b, i, label) { margin-left: var(--icon-gap); }
:is(span, small, strong, em, b, i, label) + .bi { margin-left: var(--icon-gap); }

/* Buttons */
.btn .bi { margin-right: var(--icon-gap); }
/* Trailing icon inside buttons */
.btn > .bi:not(:first-child) { margin-left: var(--icon-gap); margin-right: 0; }

/* Nav tabs and links */
.nav-link .bi, .nav-tabs .nav-link > .bi { margin-right: var(--icon-gap); }
/* Trailing icon in nav links */
.nav-link > .bi:not(:first-child) { margin-left: var(--icon-gap); margin-right: 0; }

/* Card titles and headers */
.card-title .bi, .card-header .bi { margin-right: 0.75rem; }

/* Form labels */
.form-label .bi, label .bi { margin-right: var(--icon-gap); }

/* Badges and stats summaries */
.badge .bi, .stats-card .bi { margin-right: var(--icon-gap-sm); }
/* Trailing icon inside badges */
.badge > .bi:not(:first-child) { margin-left: var(--icon-gap-sm); margin-right: 0; }

/* Tables */
.table th .bi, .table td .bi { margin-right: var(--icon-gap); }

/* Alerts, dropdowns, and list items */
.alert .bi { margin-right: var(--icon-gap); }
.dropdown-item .bi, .list-group-item .bi { margin-right: var(--icon-gap); }

/* Ensure icons inside decorative containers don't shift */
.icon-circle .bi { margin: 0 !important; }

/* Helper for icon-only buttons/links if needed */
.btn-icon .bi, .nav-icon-only .bi, .badge-icon-only .bi { margin: 0 !important; }

/* Responsive tweaks */
@media (max-width: 768px) {
  .card-body { padding: 1.25rem; }
  .card-header, .card-footer { padding: 1rem 1.25rem; }
}

/* Hero metric watermark on primary card */
.hero-metric { min-height: 72px; }
.hero-watermark {
  position: absolute;
  right: 0.25rem;
  top: -0.25rem;
  font-size: 3rem;
  opacity: 0.2;
  color: #fff;
  pointer-events: none;
}

/* Status tiles: subtle surfaces with clear borders */
.status-tile {
  background-color: var(--bs-body-bg);
  border-color: var(--bs-border-color) !important;
}
[data-bs-theme="dark"] .status-tile {
  background-color: var(--bs-dark-bg-subtle);
}
.status-tile .progress { background-color: var(--bs-secondary-bg); }
