:root {
    --aubergine: #815f78;
    --aubergine-dark: #6d566c;
    --coral: #c96555;
    --sage: #4f8064;
    --cream: #f7f3ed;
    --ink: #29262c;
    --muted: #746e77;
}
body {
    background:
        radial-gradient(circle at top right, rgba(201, 101, 85, .09), transparent 32rem),
        var(--cream);
    color: var(--ink);
    font-size: 1.08rem;
    min-height: 100vh;
}
.app-nav {
    background: rgba(109, 86, 108, .96);
    box-shadow: 0 4px 18px rgba(81, 61, 80, .14);
    backdrop-filter: blur(12px);
}
.navbar-brand { letter-spacing: -.03em; }
.app-container { max-width: 720px; }
.card { border: 1px solid rgba(75, 48, 72, .06); border-radius: 1.25rem; box-shadow: 0 10px 35px rgba(53, 40, 51, .08); }
.form-control, .input-group-text, .btn, .form-check-label { font-size: 1.1rem; }
.form-control, .input-group-text { min-height: 3.25rem; }
.form-control:focus { border-color: #a3829f; box-shadow: 0 0 0 .25rem rgba(75, 48, 72, .12); }
.input-group-text { background: #eee6dc; border-color: #ded4ca; color: var(--aubergine); }
.btn { border-radius: .8rem; }
.btn-primary {
    background: var(--aubergine);
    border-color: var(--aubergine);
    min-height: 3.25rem;
    font-weight: 700;
    box-shadow: 0 7px 18px rgba(75, 48, 72, .2);
}
.btn-primary:hover, .btn-primary:focus { background: #6e4d67; border-color: #6e4d67; }
.balance-card {
    color: white;
    background:
        radial-gradient(circle at 88% 18%, rgba(255, 220, 185, .52), transparent 30%),
        linear-gradient(135deg, #846b82, #b57e79);
    overflow: hidden;
}
.balance-value { font-size: clamp(2rem, 9vw, 3.4rem); font-weight: 800; letter-spacing: -.04em; }
.transaction { border-radius: 1rem; border: 1px solid transparent; border-left-width: 6px; box-shadow: 0 4px 15px rgba(53, 40, 51, .045); }
.transaction.income { background: #e8f2ea; border-color: #75a083; color: #254c34; }
.transaction.expense { background: #faebe7; border-color: #d47a68; color: #71352c; }
.transaction-amount { font-size: 1.35rem; font-weight: 800; }
.transaction-date { color: var(--muted); font-size: .95rem; }
.transaction-note { max-width: 28rem; line-height: 1.35; overflow-wrap: anywhere; }
.min-w-0 { min-width: 0; }
.type-picker input:checked + label { color: white; }
.type-picker label { border-radius: .8rem; }
.type-picker label:first-of-type { border-radius: .8rem 0 0 .8rem; }
.type-picker label:last-of-type { border-radius: 0 .8rem .8rem 0; }
.type-picker .income-choice + label { color: var(--sage); border-color: var(--sage); }
.type-picker .expense-choice + label { color: var(--coral); border-color: var(--coral); }
.type-picker .income-choice:checked + label { background: var(--sage); border-color: var(--sage); }
.type-picker .expense-choice:checked + label { background: var(--coral); border-color: var(--coral); }
.badge.text-bg-secondary { background: #ddd2c8 !important; color: #564d56 !important; }
.alert-success { background: #e5f1e7; border-color: #c4ddca; color: #285138; }
.alert-danger { background: #fae8e4; border-color: #edc5bc; color: #74372d; }
label { font-weight: 650; }
