@import "DashboardCardColors.less"; .color-variant(@bg, @border, @text) { background-color: @bg; border: 1px solid @border; color: @text; } .dashboard-card { box-sizing: border-box; padding: .8rem; border-radius: .5rem; border-width: 1px; font-weight: 600; box-shadow: 0 6px 20px rgba(0,0,0,0.08); /* Make all KPI boxes the same size regardless of content/font */ width: 100%; max-width: none; height: 10rem; display: flex; flex-direction: column; &.blue { .color-variant(@color-blue-bg, @color-blue-border, @color-blue-text); } &.orange { .color-variant(@color-orange-bg, @color-orange-border, @color-orange-text); } &.green { .color-variant(@color-green-bg, @color-green-border, @color-green-text); } &.purple { .color-variant(@color-purple-bg, @color-purple-border, @color-purple-text); } &.gray { .color-variant(@color-gray-bg, @color-gray-border, @color-gray-text); } &__header { display: flex; align-items: center; gap: .6rem; /* Keep header from growing content height */ min-height: 2rem; overflow: hidden; } &__icon { border-radius: .6rem; display: grid; place-items: center; } &__title { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } &__content { margin-top: .4rem; font-size: .7rem; flex: 1 1 auto; display: flex; flex-direction: column; justify-content: center; overflow: hidden; } &__value { margin: 0; font-size: 1.5rem; line-height: 1.1; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } &__desc { opacity: .8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } }