/* KPI strip compartido por los módulos Trace (DDS, Suppliers, Relationships, Risks,
   Alerts, Tasks, ParcelsMap…). Estructura: contenedor grid + cards con icono+valor+label.
   Mantener compacto para que no compita con la grilla principal. */

.trace-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: .65rem;
}

.trace-kpi {
    display: flex;
    align-items: center;
    gap: .7rem;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: .8rem .9rem;
    transition: box-shadow .15s ease, transform .15s ease;
}

.trace-kpi:hover {
    box-shadow: 0 4px 12px rgba(15, 23, 42, .06);
    transform: translateY(-1px);
}

.trace-kpi__icon {
    width: 40px; height: 40px;
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.trace-kpi__icon .rzi { font-size: 21px; }

.trace-kpi__body { min-width: 0; }
.trace-kpi__value {
    font-size: 1.35rem; font-weight: 700; color: #0f172a; line-height: 1.05;
}
.trace-kpi__value small {
    font-size: .65rem; color: #64748b; font-weight: 500; margin-left: 2px;
}
.trace-kpi__label {
    font-size: .75rem; color: #64748b; margin-top: .15rem;
    white-space: nowrap; text-overflow: ellipsis; overflow: hidden;
}

/* Filter bar: cuando varios FormFields y botones conviven, alinear todos a la misma
   altura (40px) para evitar el efecto escalonado entre Radzen FormFields y SelectBar. */
.trace-filter-bar .rz-form-field,
.trace-filter-bar .rz-button,
.trace-filter-bar .rz-selectbutton {
    min-height: 40px;
}
