/* Finances page — income/spend breakdown, running costs, distress rules. */

.fin-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--s4);
}

.fin-balance {
  display: flex;
  flex-direction: column;
  gap: var(--s1);
}

.fin-balance-label {
  color: var(--text-3);
  font-size: var(--fs-cap);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.fin-balance-value {
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 700;
  line-height: 1;
}

.fin-balance-value.bad { color: var(--bad); }

.fin-stats {
  display: grid;
  grid-template-columns: repeat(2, auto);
  gap: var(--s3) var(--s5);
}

.fin-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.fin-stat-label {
  color: var(--text-3);
  font-size: var(--fs-cap);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.fin-stat b { font-size: var(--fs-md, 15px); }
.fin-stat .good { color: var(--good); }
.fin-stat .bad { color: var(--bad); }

/* Distress callout */
.fin-alert {
  border: 1px solid var(--line-strong);
  border-radius: var(--r-sm);
  padding: 10px 12px;
  margin: var(--s3) 0 0;
  font-size: var(--fs-sm);
}

.fin-alert.bad { border-color: var(--bad); color: var(--bad); }
.fin-alert.warn { border-color: #e0a000; color: #e0a000; }

/* Money-in / money-out flow panels */
.fin-flows { margin-top: var(--s4); }

.fin-flow h3 {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--s2);
}

.fin-flow-total {
  font-size: var(--fs-sm);
  font-weight: 700;
}

.fin-flow-total.good { color: var(--good); }
.fin-flow-total.bad { color: var(--bad); }

.fin-cat { padding-right: var(--s4); }

.fin-cat-head {
  display: flex;
  justify-content: space-between;
  gap: var(--s2);
  margin-bottom: 5px;
}

.fin-pct { font-size: var(--fs-cap); }

.fin-bar {
  height: 6px;
  border-radius: var(--r-pill);
  background: var(--surface-2);
  overflow: hidden;
}

.fin-bar-fill {
  display: block;
  height: 100%;
  border-radius: var(--r-pill);
}

.fin-bar-fill.in { background: var(--good); }
.fin-bar-fill.out { background: var(--bad); }

.fin-amount {
  font-weight: 600;
  vertical-align: top;
  white-space: nowrap;
}

/* Detail panels: running costs + distress explainer */
.fin-detail { margin-top: var(--s4); }

.fin-total td {
  border-top: 1px solid var(--line);
  font-weight: 700;
  padding-top: var(--s2);
}

.fin-note { margin-top: var(--s3); font-size: var(--fs-sm); }

.fin-rules {
  margin: var(--s2) 0 0;
  padding-left: 1.2em;
  display: flex;
  flex-direction: column;
  gap: var(--s2);
}

.fin-rules li { line-height: 1.5; }

/* Ledger */
.fin-ledger-panel { margin-top: var(--s4); }

.fin-ledger {
  max-height: 340px;
  overflow-y: auto;
}

.fin-ledger-when { white-space: nowrap; }
.fin-ledger-amount { white-space: nowrap; font-weight: 600; }
.fin-ledger-amount.good { color: var(--good); }
.fin-ledger-amount.bad { color: var(--bad); }

@media (max-width: 640px) {
  .fin-stats { grid-template-columns: 1fr; }
}
