.main-menu .navbar-header {
  height: 6rem;
  padding: 1rem 1rem 0.3rem 1.64rem;
}
.main-menu .main-menu-content {
  height: calc(100% - 6rem) !important;
}
.main-menu .navbar-header .navbar-brand {
  margin-top: 0;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.2rem;
}
.dark-layout .form-control[type=file]::-webkit-file-upload-button {
  background-color: #283046;
}
.dark-layout .form-control[type=file]::file-selector-button {
  background-color: #283046;
}

/* ── app__ utilities — shared across modules ────────────────────────────── */

/* Feed / audit-log timeline */
.app__log-label {
  width: clamp(130px, 34%, 200px);
  flex-shrink: 0;
  min-width: 0;
  padding-right: .625rem;
}
.app__log-meta {
  font-size: .72rem;
  padding-left: 21px;   /* lines up under title text: icon-13 + gap-8 */
}

/* Generic feather-icon size helpers */
.app__icon-xs  { width: 13px; height: 13px; flex-shrink: 0; }
.app__icon-xxs { width: 11px; height: 11px; flex-shrink: 0; }

/* Read-only repeater row (settled expense lines during a full edit).
   Marked with a tint and a left rule rather than opacity — the fields are
   already visibly disabled, and fading them on top makes them unreadable. */
.app__row_locked > td {
  background-color: rgba(0, 0, 0, .03);
}
.dark-layout .app__row_locked > td {
  background-color: rgba(255, 255, 255, .04);
}
.app__row_locked > td:first-child {
  box-shadow: inset 3px 0 0 #b9b9c3;   /* theme muted */
}

.text-muted {
    color: #111 !important;
}
