:root {
  --brand: #14342b;
  --brand-2: #1f6f50;
  --brand-soft: #e6f0eb;
}
.bg-brand { background: var(--brand) !important; }
.bg-brand-gradient { background: linear-gradient(160deg, var(--brand) 0%, var(--brand-2) 100%); }
.text-brand { color: var(--brand-2) !important; }
.btn-brand { --bs-btn-color: #fff; --bs-btn-bg: var(--brand-2); --bs-btn-border-color: var(--brand-2); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--brand); --bs-btn-hover-border-color: var(--brand); --bs-btn-active-bg: var(--brand); --bs-btn-disabled-bg: var(--brand-2); --bs-btn-disabled-border-color: var(--brand-2); }
.mw-420 { max-width: 420px; }
.mw-900 { max-width: 900px; margin-left: auto; margin-right: auto; }
.mw-1200 { max-width: 1200px; margin-left: auto; margin-right: auto; }
.mw-14 { max-width: 14rem; }

/* Non-production banner (APP_ENV) */
.env-banner { background: #ffc107; color: #000; font-size: .7rem; font-weight: 700; letter-spacing: .05em; text-align: center; padding: .15rem .5rem; }

/* Figures line up */
.num { font-variant-numeric: tabular-nums; white-space: nowrap; }
.company-switch { max-width: 16rem; overflow: hidden; text-overflow: ellipsis; }

/* Column widths */
.w-date { width: 6.5rem; min-width: 6.5rem; }
.w-num { width: 6rem; }
.w-line { width: 3rem; }
.w-amount { width: 9rem; min-width: 7.5rem; }
.w-amount-sm { width: 5.5rem; }
.w-remove { width: 2.5rem; }
.w-check { width: 2rem; }
.w-actions { width: 7rem; }
.w-actions-wide { width: 15rem; }
.w-match { min-width: 16rem; }
.w-payee { min-width: 11rem; }

/* Sub-account indentation */
.indent-1 { padding-left: 1.25rem !important; display: inline-block; }
.indent-2 { padding-left: 2.5rem !important; display: inline-block; }
.indent-3 { padding-left: 3.75rem !important; display: inline-block; }
.indent-4 { padding-left: 5rem !important; display: inline-block; }
.indent-5 { padding-left: 6.25rem !important; display: inline-block; }
td.indent-1, td.indent-2, td.indent-3, td.indent-4, td.indent-5 { display: table-cell; }

/* Dashboard */
.stat { border: 0; box-shadow: 0 1px 2px rgba(0, 0, 0, .06); }
.stat-label { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--bs-secondary-color); }
.stat-value { font-size: 1.6rem; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--bs-body-color); }
.stat-value.text-success { color: var(--bs-success) !important; }
.stat-value.text-danger { color: var(--bs-danger) !important; }
a.stat:hover, a.report-card:hover { box-shadow: 0 0 0 .15rem rgba(31, 111, 80, .35) !important; }
.kind-payment { background: var(--bs-danger-bg-subtle); color: var(--bs-danger-text-emphasis); }
.kind-deposit { background: var(--bs-success-bg-subtle); color: var(--bs-success-text-emphasis); }
.kind-journal { background: var(--bs-secondary-bg-subtle); color: var(--bs-secondary-text-emphasis); }

/* Chart of accounts */
.coa tr { scroll-margin-top: 4.5rem; }
.coa tr:target { background: var(--brand-soft); }
.coa-class th { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; }

/* Transaction form */
.lines-table td { padding-top: .35rem; padding-bottom: .35rem; }
.lines-table tfoot td { border-bottom: 0; }
.balance-ok { color: var(--bs-success); }
.balance-off { color: var(--bs-danger); font-weight: 600; }

/* Bank review */
.review-table .desc { max-width: 22rem; }
.review-table tr.is-matching [data-add-fields] { display: none; }
.review-table tr:target { background: var(--brand-soft); }

/* Reconcile */
.rec-table tr.is-ticked td { background: var(--bs-success-bg-subtle); }
.rec-table tr[data-rec-row] { cursor: pointer; }
@media (min-width: 992px) { .rec-summary { position: sticky; top: 4.5rem; } }

/* Reports */
.rpt th, .rpt td { white-space: nowrap; }
.rpt td:first-child { white-space: normal; }
.rpt thead th { font-size: .8rem; color: var(--bs-secondary-color); font-weight: 600; border-bottom-width: 2px; }
.rpt .rpt-class th { font-size: 1rem; padding-top: 1rem; border-bottom: 2px solid var(--bs-border-color); }
.rpt .rpt-section th { font-weight: 600; padding-top: .75rem; background: transparent; }
.rpt .rpt-heading td { font-weight: 500; }
.rpt .rpt-total td { font-weight: 500; border-top: 1px solid var(--bs-border-color); }
.rpt .rpt-section-total td { font-weight: 600; border-top: 1px solid var(--bs-secondary-color); }
.rpt .rpt-summary td { font-weight: 600; background: var(--bs-tertiary-bg); }
.rpt .rpt-grand td { font-weight: 700; border-top: 2px solid var(--bs-body-color); border-bottom: 3px double var(--bs-body-color); }
.rpt a { text-decoration: none; }
.rpt a:hover { text-decoration: underline; }
.rpt-detail td { font-size: .875rem; }

/* A button whose form takes a moment */
.btn[data-busy].is-busy { pointer-events: none; opacity: .85; }

@media print {
  body { background: #fff !important; }
  main { max-width: none !important; padding: 0 !important; }
  .card { border: 0 !important; box-shadow: none !important; }
  .rpt a { color: inherit; }
  .table-responsive { overflow: visible !important; }
}
.w-access { width: 7rem; }
