html { font-size: 14px; }
@media (min-width: 768px) { html { font-size: 15px; } }

body { background-color: #f4f6f9; margin-bottom: 0; }

/* Navbar */
.navbar-brand { letter-spacing: .03em; }

/* Dropdown menus were inheriting the page background, so the last item or two blended
   into the content behind them — visible only if you knew to click there. An explicit
   dark surface and a lift off the page keep every item readable. */
.navbar .dropdown-menu-dark {
    background-color: #212529;
    border: 1px solid rgba(255,255,255,.15);
    box-shadow: 0 .5rem 1rem rgba(0,0,0,.3);
    z-index: 1050;
}
.navbar .dropdown-menu-dark .dropdown-item { color: #dee2e6; }
.navbar .dropdown-menu-dark .dropdown-item:hover,
.navbar .dropdown-menu-dark .dropdown-item:focus {
    background-color: #0d6efd;
    color: #fff;
}
.navbar .dropdown-menu-dark .dropdown-divider { border-top-color: rgba(255,255,255,.15); }

/* Cards */
.card { border: 1px solid #dee2e6; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.card-header { background-color: #f8f9fa; font-weight: 600; }

/* Tables */
.table-sm td, .table-sm th { padding: .3rem .5rem; }
.table > :not(caption) > * > * { vertical-align: middle; }

/* Sticky table header */
.table thead.sticky-top th { background-color: #f8f9fa; z-index: 1; }

/* Ledger running balance colors */
.balance-positive { color: #dc3545; font-weight: 600; }
.balance-zero     { color: #6c757d; }
.balance-credit   { color: #198754; font-weight: 600; }

/* Ledger grid — subtle stripe on charge rows */
tr.is-charge { background-color: #fff9f9; }

/* Page header */
.bg-light.border-bottom { background-color: #fff !important; }

/* Breadcrumb */
.breadcrumb-item + .breadcrumb-item::before { color: #adb5bd; }

/* Form focus */
.btn:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.15rem rgba(13,110,253,.25);
}

/* Detail modal */
#detailModal .modal-header { background-color: #343a40; color: #fff; }
#detailModal .modal-header .btn-close { filter: invert(1); }

/* Utility */
.text-nowrap { white-space: nowrap; }
.cursor-pointer { cursor: pointer; }
