.dashboard { --dashboard-primary: #174a7e; }
.kpi-card { border-left: 4px solid var(--dashboard-primary) !important; transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease; }
.kpi-card:hover { border-left-color: #3f86c6 !important; box-shadow: 0 .75rem 1.5rem rgba(27, 46, 65, .13) !important; transform: translateY(-3px); }
.kpi-card:hover .display-5 { color: var(--dashboard-primary); }
.dashboard-visual-card { margin-bottom: 1rem; }
.dashboard-chart { min-height: 330px; }
.dashboard-detail-scroll { height: 390px; overflow: auto; }
.dashboard-detail-scroll thead th { background: #fff; position: sticky; top: 0; z-index: 1; white-space: nowrap; }
.dashboard-detail-scroll td { vertical-align: middle; }
.multi-filter { position: relative; }
.multi-filter__button { width: 100%; text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.multi-filter__panel { background: #fff; border: 1px solid #ced4da; border-radius: .375rem; box-shadow: 0 .5rem 1rem rgba(0,0,0,.15); display: none; left: 0; max-height: 320px; padding: .75rem; position: absolute; right: 0; top: calc(100% + .25rem); z-index: 1050; }
.multi-filter.is-open .multi-filter__panel { display: block; }
.multi-filter__items { max-height: 190px; overflow-y: auto; }
.multi-filter__item { display: block; padding: .25rem 0; }
.filter-chips { display: flex; flex-wrap: wrap; gap: .35rem; min-height: 38px; align-items: center; }
.filter-chip { align-items: center; background: #e9f1fa; border-radius: 999px; color: #174a7e; display: inline-flex; font-size: .8rem; gap: .35rem; padding: .3rem .55rem; }
.filter-chip button { background: transparent; border: 0; color: inherit; font-size: 1rem; line-height: 1; padding: 0; }
