.bucket-section { padding-bottom: 18px; }
.bucket-heading { display:flex; justify-content:space-between; gap:16px; align-items:flex-end; margin-bottom:14px; }
.bucket-heading h2 { margin-top:4px; font-size:24px; letter-spacing:-.02em; }
.bucket-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.bucket-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.bucket-card { border:1px solid #ebe4d9; border-radius:16px; padding:14px; background:#fbfaf7; min-width:0; }
.bucket-card.reserve { background:#f7f8f5; }
.bucket-card.over { border-color:#e0b2aa; background:#fff8f6; }
.bucket-top { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
.bucket-name { font-weight:680; line-height:1.25; }
.bucket-kind { font-size:9px; text-transform:uppercase; letter-spacing:.06em; color:#857f77; border:1px solid #e3ddd4; border-radius:999px; padding:3px 6px; white-space:nowrap; }
.bucket-available { font-size:25px; font-weight:730; letter-spacing:-.03em; margin-top:10px; }
.bucket-card.over .bucket-available { color:#a1483f; }
.bucket-caption { margin-top:2px; color:#847e76; font-size:11px; }
.bucket-progress { height:6px; border-radius:99px; background:#eae5dd; overflow:hidden; margin:12px 0 9px; }
.bucket-progress > span { display:block; height:100%; background:#6b8b73; border-radius:inherit; }
.bucket-card.over .bucket-progress > span { background:#b75e53; }
.bucket-meta { display:flex; justify-content:space-between; gap:10px; color:#6f6a63; font-size:11px; font-variant-numeric:tabular-nums; }
.bucket-submeta { margin-top:7px; color:#969087; font-size:10px; line-height:1.35; }
.bucket-unbucketed { font-size:12px; color:#817a71; }
.bucket-unbucketed strong { color:#3d3934; }
.bucket-select { width:190px; border:1px solid #ddd5ca; border-radius:9px; padding:7px 8px; background:white; }
.bucket-select.needs-review { border-color:#d4a13d; background:#fffaf0; }
.source-stack { display:flex; flex-direction:column; align-items:flex-start; gap:4px; }
.source-pill.bucket { background:#f2edf8; color:#68557d; }
.transaction-table { min-width:1080px; }
@media (max-width:1000px) { .bucket-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px) { .bucket-grid { grid-template-columns:1fr; } .bucket-heading { align-items:flex-start; flex-direction:column; } .bucket-actions { justify-content:flex-start; } }
