body { min-height: 100vh; }
.stat-card { border: 0; box-shadow: 0 0.5rem 1rem rgba(0,0,0,.05); }
.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.75rem; }
.calendar-day { background:#fff; border:1px solid #dee2e6; border-radius:.75rem; min-height:160px; padding:.75rem; box-shadow:0 .25rem .6rem rgba(0,0,0,.04); }
.calendar-day-muted { opacity:.6; background:#f8f9fa; }
.calendar-date { font-weight:700; margin-bottom:.5rem; }
.calendar-pill { background:#f1f3f5; border-radius:.6rem; padding:.45rem .6rem; margin-bottom:.45rem; cursor:grab; border:1px solid #e9ecef; }
.calendar-pill:hover { background:#e9ecef; }
.income-pill { background:#e8f7ec; }
.drop-hover { outline:2px dashed #0d6efd; outline-offset:2px; }
.simple-chart polyline { fill:none; stroke-width:3; }
.chart-income { stroke:#0d6efd; fill:#0d6efd; }
.chart-expense { stroke:#dc3545; fill:#dc3545; }
.chart-net { stroke:#198754; fill:#198754; }
.chart-label { font-size:11px; fill:#495057; }
.bulk-select { width: 200px; }
@media (max-width: 991px) { .calendar-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 575px) { .calendar-grid { grid-template-columns: 1fr; } }

.weekday-header { margin-bottom: .5rem; }
.calendar-weekday { text-align:center; font-weight:600; color:#6c757d; padding:.35rem 0; }

.group-drop-zone.drop-hover {
    outline: 2px dashed #6f42c1;
    outline-offset: -2px;
    background: #f8f5ff;
}
.budget-draggable {
    cursor: grab;
}
.budget-draggable:hover {
    background: #f8f9fa;
}

.group-drop-zone.drop-hover { outline: 2px dashed #6f42c1; outline-offset: -2px; background: #f8f5ff; }
.budget-draggable { cursor: grab; }
.budget-draggable:hover { background: #f8f9fa; }