/* Shared index summary cards. Standard operational list flow: header > summary > filters > results. */
.bm-index-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;}
.bm-index-summary-card{display:flex;align-items:center;gap:1rem;min-width:0;padding:1.35rem 1.45rem;background:#fff;border:1px solid var(--bm-border-light,#e3e8f2);border-radius:1rem;box-shadow:0 .45rem 1.25rem rgba(34,52,84,.05);}
.bm-index-summary-icon{width:3rem;height:3rem;flex:0 0 3rem;display:inline-flex;align-items:center;justify-content:center;border-radius:.9rem;font-size:1.2rem;}
.bm-index-summary-icon-primary{color:var(--bm-primary,#4967eb);background:rgba(73,103,235,.11)}
.bm-index-summary-icon-info{color:#27738c;background:#e1f7fb}.bm-index-summary-icon-success{color:#3d8a4e;background:#e8f8eb}
.bm-index-summary-label{display:block;margin-bottom:.2rem;color:var(--bm-text-muted,#66728a);font-size:.76rem;font-weight:800;letter-spacing:.035em;text-transform:uppercase;}
.bm-index-summary-card strong{display:block;color:var(--bm-text,#182033);font-size:1.12rem;font-weight:800;overflow-wrap:anywhere;}
@media(max-width:991.98px){.bm-index-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.bm-index-summary-card{padding:1rem;gap:.75rem}.bm-index-summary-icon{width:2.65rem;height:2.65rem;flex-basis:2.65rem}}
@media(max-width:767.98px){.bm-index-summary-grid{grid-template-columns:1fr;gap:.75rem}.bm-index-summary-card{min-height:76px}}


/* =========================================================
   AUTHORITATIVE INDEX SUMMARY CARD SIZE
   All operational three-card summary strips use the same
   dimensions regardless of the module's legacy class names.
   Loaded globally after module styles from _Layout.cshtml.
   ========================================================= */
:root {
    --bm-index-summary-card-min-height: 112px;
    --bm-index-summary-card-padding: 1.2rem;
    --bm-index-summary-card-gap: 1rem;
    --bm-index-summary-icon-size: 48px;
    --bm-index-summary-icon-radius: 14px;
    --bm-index-summary-label-size: .70rem;
    --bm-index-summary-value-size: 1.25rem;
}

/* Three-column operational summary strips. */
.bm-index-summary-grid,
.customer-summary-grid,
.employee-summary-grid,
.estimate-summary-grid,
.expense-summary-grid,
.operations-info-grid,
.report-summary-grid-three {
    gap: 1rem !important;
}

/* Normalize the card box itself. */
.bm-index-summary-card,
.customer-summary-card,
.employee-summary-card,
.estimate-summary-card,
.expense-summary-card,
.operations-info-card,
.report-summary-grid-three > .report-summary-card {
    box-sizing: border-box;
    min-width: 0;
    min-height: var(--bm-index-summary-card-min-height) !important;
    height: var(--bm-index-summary-card-min-height);
    padding: var(--bm-index-summary-card-padding) !important;
    align-items: center !important;
}

/* Existing invoice index can contain more than three cards, but its cards
   should still share the exact same physical size. */
.invoice-summary-grid > .invoice-summary-card {
    box-sizing: border-box;
    min-width: 0;
    min-height: var(--bm-index-summary-card-min-height) !important;
    height: var(--bm-index-summary-card-min-height);
    padding: var(--bm-index-summary-card-padding) !important;
}

/* Normalize all operational summary icons. */
.bm-index-summary-icon,
.customer-summary-icon,
.employee-summary-icon,
.estimate-summary-icon,
.expense-summary-icon,
.operations-info-icon,
.invoice-summary-icon,
.report-summary-grid-three .report-summary-icon {
    width: var(--bm-index-summary-icon-size) !important;
    height: var(--bm-index-summary-icon-size) !important;
    flex: 0 0 var(--bm-index-summary-icon-size) !important;
    border-radius: var(--bm-index-summary-icon-radius) !important;
}

/* Normalize label/value typography so cards do not appear visually taller
   simply because a module uses different font sizing. */
.bm-index-summary-label,
.customer-summary-label,
.employee-summary-label,
.estimate-summary-label,
.expense-summary-label,
.operations-info-label,
.invoice-summary-label,
.report-summary-grid-three .report-summary-card small {
    font-size: var(--bm-index-summary-label-size) !important;
    line-height: 1.25;
}

.bm-index-summary-card strong,
.customer-summary-card strong,
.employee-summary-card strong,
.estimate-summary-card strong,
.expense-summary-card strong,
.operations-info-card strong,
.invoice-summary-card strong,
.report-summary-grid-three .report-value {
    font-size: var(--bm-index-summary-value-size) !important;
    line-height: 1.2;
}

/* Tablet retains the same visual height so adjacent modules feel identical. */
@media (max-width: 991.98px) {
    :root {
        --bm-index-summary-card-min-height: 104px;
        --bm-index-summary-card-padding: 1rem;
        --bm-index-summary-icon-size: 44px;
    }
}

/* On phones cards stack and use a smaller, consistent touch-friendly height. */
@media (max-width: 767.98px) {
    :root {
        --bm-index-summary-card-min-height: 84px;
        --bm-index-summary-card-padding: .9rem 1rem;
        --bm-index-summary-icon-size: 42px;
    }

    .bm-index-summary-grid,
    .customer-summary-grid,
    .employee-summary-grid,
    .estimate-summary-grid,
    .expense-summary-grid,
    .operations-info-grid,
    .report-summary-grid-three {
        grid-template-columns: 1fr !important;
        gap: .75rem !important;
    }

    .bm-index-summary-card,
    .customer-summary-card,
    .employee-summary-card,
    .estimate-summary-card,
    .expense-summary-card,
    .operations-info-card,
    .invoice-summary-grid > .invoice-summary-card,
    .report-summary-grid-three > .report-summary-card {
        height: auto;
        min-height: var(--bm-index-summary-card-min-height) !important;
    }
}
