.money {
    font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}

.balance-owed { color: #b45309; font-weight: 600; }
.balance-credit { color: #15803d; font-weight: 600; }
.balance-zero { color: #6b7280; }

/* Subtle row separators */
.card { background: #fff; border: 1px solid #e7e5e4; border-radius: 0.5rem; box-shadow: 0 1px 2px rgba(0,0,0,0.03); }
.card-header { padding: 1rem 1.25rem; border-bottom: 1px solid #e7e5e4; font-weight: 600; color: #143028; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.card-body { padding: 1.25rem; }

.btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.5rem 1rem; border-radius: 0.375rem; font-weight: 500; font-size: 0.875rem; transition: all 0.15s; cursor: pointer; border: 1px solid transparent; }
.btn-primary { background: #2a6749; color: #fff; }
.btn-primary:hover { background: #22513b; }
.btn-secondary { background: #fff; color: #143028; border-color: #d6d3d1; }
.btn-secondary:hover { background: #f5f5f4; }
.btn-warn { background: #fbbf24; color: #1c4131; }
.btn-warn:hover { background: #f59e0b; }
.btn-danger { background: #fff; color: #b91c1c; border-color: #fecaca; }
.btn-danger:hover { background: #fef2f2; }
.btn-sm { padding: 0.3rem 0.65rem; font-size: 0.8rem; }

.input, .select, .textarea {
    width: 100%; padding: 0.55rem 0.75rem; border: 1px solid #d6d3d1; border-radius: 0.375rem;
    background: #fff; font-size: 0.9rem;
}
.input:focus, .select:focus, .textarea:focus {
    outline: 2px solid #3b815c; outline-offset: -1px; border-color: #3b815c;
}
.field-label { font-size: 0.8rem; font-weight: 600; color: #44403c; margin-bottom: 0.25rem; display: block; }
.field { margin-bottom: 1rem; }

.table { width: 100%; border-collapse: collapse; }
.table th { text-align: left; padding: 0.6rem 0.75rem; background: #f5f5f4; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: #57534e; border-bottom: 1px solid #e7e5e4; }
.table td { padding: 0.7rem 0.75rem; border-bottom: 1px solid #f5f5f4; font-size: 0.9rem; }
.table tbody tr:hover { background: #fafaf9; }
.table .money { text-align: right; }

.badge { display: inline-block; padding: 0.15rem 0.5rem; border-radius: 9999px; font-size: 0.7rem; font-weight: 600; }
.badge-on { background: #dcfce7; color: #166534; }
.badge-off { background: #fee2e2; color: #991b1b; }
.badge-soft { background: #e7e5e4; color: #44403c; }

.toggle-checkbox { width: 1.1rem; height: 1.1rem; accent-color: #2a6749; }
