/* ==========================================================================
   AGGROW CustomerBuyProfile (bảng) — class trích từ inline style, theme-aware.
   ========================================================================== */

/* ──────────────────────────────────────────────────────────────────────────
   CustomerBuyProfile.razor — shell (header, control panel, bulk header, fallback)
   ────────────────────────────────────────────────────────────────────────── */

/* ── Loading overlay toàn trang ── */
.cbp-loading-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: var(--ag-surface-sunken);
    display: flex;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(3px);
}
.cbp-loading-box  { text-align: center; }
.cbp-loading-text { color: rgba(var(--ag-fg-rgb), .7); margin-top: 14px; font-size: 14px; font-weight: 500; }

/* ── Page header ── */
.cbp-page-header { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.cbp-header-icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: rgba(var(--mud-palette-info-rgb), .12);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.cbp-header-icon-glyph { color: var(--mud-palette-info); font-size: 26px; }
.cbp-header-main       { flex: 1; min-width: 0; }
.cbp-breadcrumb {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    color: rgba(var(--ag-fg-rgb), .3);
    margin-bottom: 2px;
}
.cbp-breadcrumb-current { color: rgba(var(--ag-fg-rgb), .5); }
.cbp-breadcrumb-code    { font-family: monospace; color: var(--mud-palette-info); font-weight: 600; }
.cbp-breadcrumb-name    { color: rgba(var(--ag-fg-rgb), .6); }
.cbp-breadcrumb-period {
    background: rgba(var(--mud-palette-success-rgb), .15);
    color: var(--mud-palette-success);
    border-radius: 4px;
    padding: 1px 8px;
    font-weight: 600;
}
.cbp-page-title { font-size: 18px; font-weight: 700; color: var(--mud-palette-text-primary); line-height: 1.2; }

.cbp-header-history-btn { align-self: flex-start; margin-top: 6px; flex-shrink: 0; font-weight: 600; white-space: nowrap; }

/* ── Mode toggle (Đơn lẻ / Hàng loạt) ── */
.cbp-mode-toggle  { display: flex; gap: 0; align-self: flex-start; margin-top: 6px; flex-shrink: 0; }
.cbp-mode-btn-l   { border-radius: 6px 0 0 6px; min-width: 78px; font-weight: 600; }
.cbp-mode-btn-r   { border-radius: 0 6px 6px 0; min-width: 108px; font-weight: 600; }

/* ── Control panel ── */
.cbp-panel { border: 1px solid var(--ag-border); border-radius: 12px; margin-bottom: 16px; overflow: hidden; }
.cbp-panel-row    { padding: 12px 16px; display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; }
.cbp-panel-row--2 {
    padding: 10px 16px;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px;
    border-top: 1px solid var(--ag-border);
    background: rgba(var(--ag-fg-rgb), .015);
}
.cbp-row-label {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 72px;
    align-self: center;
}
.cbp-row-label-icon    { color: var(--mud-palette-info); font-size: 16px; }
.cbp-row-label-icon--violet { color: #a78bfa; font-size: 16px; }
.cbp-row-label-text {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.8px;
    color: rgba(var(--ag-fg-rgb), .35);
    text-transform: uppercase;
}

.cbp-field-team   { flex: 1; min-width: 280px; max-width: 420px; }
.cbp-field-window { width: 150px; }
.cbp-field-tier   { width: 104px; }
.cbp-field-strategy { width: 170px; }
.cbp-field-period   { width: 220px; }
.cbp-field-cost     { width: 180px; }
.cbp-field-num-sm   { width: 100px; }

.cbp-team-item      { font-size: 12px; line-height: 1.5; }
.cbp-team-item-code { font-family: monospace; color: var(--mud-palette-info); }
.cbp-team-item-name { color: rgba(var(--ag-fg-rgb), .75); margin-left: 6px; }

.cbp-period-item { display: flex; align-items: center; gap: 8px; font-size: 12px; }
.cbp-period-item-status { width: 52px; font-size: 10px; font-weight: 700; }
.cbp-period-item-dates  { color: rgba(var(--ag-fg-rgb), .35); font-size: 10px; }

.cbp-btn-analyze { height: 40px; padding: 0 20px; font-weight: 600; }

/* ── Menu "Thêm thao tác" ── */
.cbp-actions-group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-left: auto;
    padding-left: 12px;
    border-left: 1px solid var(--ag-border);
    align-items: center;
}
.cbp-actions-hint  { font-size: 11px; color: rgba(var(--ag-fg-rgb), .2); align-self: center; font-style: italic; }
.cbp-actions-menu  { z-index: 10; }
.cbp-actions-btn   { height: 36px; font-weight: 600; white-space: nowrap; }
.cbp-menu-item-title { font-weight: 700; font-size: 13px; }
.cbp-menu-item-title--master { font-weight: 600; font-size: 13px; }
.cbp-menu-item-sub   { font-size: 10px; color: rgba(var(--ag-fg-rgb), .4); }
.cbp-menu-divider    { margin: 4px 0; }
.cbp-menu-form       { padding: 8px 14px 6px; }
.cbp-menu-form--b    { padding: 8px 14px; }
.cbp-menu-form-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .4px;
    text-transform: uppercase;
    color: rgba(var(--ag-fg-rgb), .4);
    margin-bottom: 6px;
}
.cbp-menu-form-row   { display: flex; align-items: flex-end; gap: 6px; }
.cbp-menu-form-btn   { height: 36px; font-weight: 600; white-space: nowrap; }

/* ──────────────────────────────────────────────────────────────────────────
   Bulk section (Hàng loạt) — CustomerBuyProfile.razor
   ────────────────────────────────────────────────────────────────────────── */
.cbp-bulk-panel { border: 1px solid rgba(var(--mud-palette-success-rgb), .2); border-radius: 12px; margin-bottom: 16px; overflow: hidden; }
.cbp-bulk-head {
    padding: 12px 16px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    background: rgba(var(--mud-palette-success-rgb), .04);
    border-bottom: 1px solid rgba(var(--ag-fg-rgb), .06);
}
.cbp-bulk-head-icon  { color: var(--mud-palette-success); font-size: 18px; flex-shrink: 0; }
.cbp-bulk-head-title { font-weight: 700; font-size: 13px; color: var(--mud-palette-success); }
.cbp-bulk-head-sub   { font-size: 10px; color: rgba(var(--ag-fg-rgb), .35); }
.cbp-bulk-head-actions { margin-left: auto; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cbp-bulk-add-field    { width: 300px; }
.cbp-bulk-add-item     { font-size: 12px; }
.cbp-bulk-add-item-code { font-family: monospace; color: var(--mud-palette-info); }
.cbp-bulk-add-item-name { color: rgba(var(--ag-fg-rgb), .75); margin-left: 6px; }
.cbp-bulk-btn          { height: 36px; font-weight: 600; }
.cbp-bulk-btn--strong  { height: 36px; font-weight: 700; white-space: nowrap; }
.cbp-bulk-wizard       { padding: 12px 16px 0; }

/* ──────────────────────────────────────────────────────────────────────────
   Fallback header + search/badge (CustomerBuyProfile.razor, _quote == null)
   ────────────────────────────────────────────────────────────────────────── */
.cbp-fallback-cards { display: flex; flex-wrap: wrap; gap: 10px; }
.cbp-fb-card {
    flex: 1;
    min-width: 160px;
    border-radius: 10px;
    padding: 12px 14px;
}
.cbp-fb-card--rev { flex: 1; border: 1px solid rgba(var(--mud-palette-info-rgb), .25);    background: rgba(var(--mud-palette-info-rgb), .06); }
.cbp-fb-card--mgn { flex: 1; border: 1px solid rgba(var(--mud-palette-success-rgb), .25); background: rgba(var(--mud-palette-success-rgb), .06); }
.cbp-fb-card--flr { flex: 2; min-width: 240px; border: 1px solid rgba(167, 139, 250, .3); background: rgba(167, 139, 250, .07); }
.cbp-fb-label   { font-size: 11px; color: rgba(var(--ag-fg-rgb), .45); }
.cbp-fb-value   { font-size: 20px; font-weight: 700; color: var(--mud-palette-text-primary); }
.cbp-fb-sub     { font-size: 11px; color: rgba(var(--ag-fg-rgb), .4); }
.cbp-fb-floor-row   { display: flex; align-items: baseline; gap: 10px; }
.cbp-fb-floor-value { font-size: 24px; font-weight: 800; color: #c4b5fd; }
.cbp-fb-floor-note  { font-size: 11px; color: rgba(var(--ag-fg-rgb), .55); margin-top: 2px; }

/* màu điều kiện cho margin thực tế (đạt sàn / chưa đạt) */
.cbp-text-ok  { color: var(--mud-palette-success); }
.cbp-text-bad { color: var(--mud-palette-error); }

.cbp-warn-caption { color: var(--mud-palette-warning); display: block; margin-bottom: 6px; }

.cbp-search-bar    { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; flex-wrap: wrap; }
.cbp-search-field  { max-width: 280px; }
.cbp-search-count  { color: rgba(var(--ag-fg-rgb), .4); margin-left: auto; }
.cbp-badge-bar     { display: flex; gap: 6px; margin-bottom: 8px; flex-wrap: wrap; align-items: center; }
.cbp-badge {
    cursor: pointer;
    padding: 3px 12px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 600;
    user-select: none;
    transition: all .15s;
}

.cbp-empty-hint { color: rgba(var(--ag-fg-rgb), .35); text-align: center; padding: 40px; }

/* ──────────────────────────────────────────────────────────────────────────
   Shared bảng (CustomerBulkTable / CustomerProfileProductsTable / QuotePreview)
   ────────────────────────────────────────────────────────────────────────── */

/* khung scroll + bảng nền */
.cbp-table-wrap       { overflow: auto; max-height: 64vh; }
.cbp-table-wrap--prod { border-radius: 8px; border: 1px solid rgba(var(--ag-fg-rgb), .08); overflow: auto; max-height: calc(100vh - 320px); }
.cbp-table-wrap--prev { border-radius: 8px; border: 1px solid rgba(var(--ag-fg-rgb), .08); overflow: auto; max-height: 46vh; }
.cbp-table        { width: 100%; border-collapse: collapse; font-size: 12px; }
.cbp-table--bulk  { min-width: 880px; }
.cbp-table--prod  { min-width: 1500px; }
.cbp-table--prev  { min-width: 980px; }
.cbp-thead-sticky { position: sticky; top: 0; z-index: 2; }
.cbp-thead-sticky--low { position: sticky; top: 0; z-index: 1; }

/* hàng tiêu đề nền đậm (thay #0d1624) */
.cbp-head-row {
    background: var(--mud-palette-surface);
    color: rgba(var(--ag-fg-rgb), .45);
    text-align: left;
}
.cbp-th         { padding: 7px 8px; font-weight: 600; }
.cbp-th--num    { padding: 7px 4px; font-weight: 600; }
.cbp-th--pad12  { padding: 7px 12px; font-weight: 600; }
.cbp-th--c      { text-align: center; }
.cbp-th--r      { text-align: right; }
.cbp-th-w34     { width: 34px; }
.cbp-th-w30     { width: 30px; }

/* ── CustomerBulkTable.razor ── */
.cbp-bulk-empty  { padding: 32px; text-align: center; color: rgba(var(--ag-fg-rgb), .3); font-size: 13px; font-style: italic; }
.cbp-checkbox-flush { margin: 0; }

.cbp-row { border-bottom: 1px solid rgba(var(--ag-fg-rgb), .05); }
/* màu nền dòng theo trạng thái */
.cbp-row-bg--ok      { background: rgba(var(--mud-palette-success-rgb), .04); }
.cbp-row-bg--error   { background: rgba(var(--mud-palette-error-rgb), .04); }
.cbp-row-bg--sel     { background: rgba(var(--mud-palette-success-rgb), .025); }
.cbp-row-bg--none    { background: transparent; }

.cbp-td        { padding: 6px 8px; text-align: center; }
.cbp-td-chev   { padding: 6px 4px; text-align: center; }
.cbp-td-cell   { padding: 7px 12px; }
.cbp-td-cell--c { padding: 7px 12px; text-align: center; }
.cbp-td-cell--r { padding: 7px 12px; text-align: right; }

.cbp-chevron {
    cursor: pointer;
    display: inline-flex;
    transition: transform .15s;
    color: rgba(var(--ag-fg-rgb), .5);
}
.cbp-chevron-icon { font-size: 18px; }
.cbp-spinner-sm   { width: 13px; height: 13px; color: var(--mud-palette-info); }
.cbp-spinner-md   { width: 14px; height: 14px; color: var(--mud-palette-info); }
.cbp-dash-dim     { color: rgba(var(--ag-fg-rgb), .15); }
.cbp-dash-faint   { color: rgba(var(--ag-fg-rgb), .2); }

.cbp-cell-code  { font-family: monospace; color: var(--mud-palette-info); font-size: 11px; white-space: nowrap; }
.cbp-cell-name  {
    color: var(--mud-palette-text-primary);
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.cbp-cell-strong { font-weight: 700; color: var(--mud-palette-text-primary); white-space: nowrap; }

/* trạng thái markup / dựng nháp / tạo BG */
.cbp-inline-status { display: flex; align-items: center; justify-content: center; gap: 4px; }
.cbp-inline-status--lg { gap: 5px; }
.cbp-status-loading { color: var(--mud-palette-info); font-size: 10px; }
.cbp-status-loading--md { color: var(--mud-palette-info); font-size: 11px; }
.cbp-status-col   { display: flex; flex-direction: column; align-items: center; gap: 1px; }
.cbp-status-ok    { font-size: 10px; font-weight: 700; color: var(--mud-palette-success); }
.cbp-status-ok-sub { font-size: 9px; color: rgba(var(--mud-palette-success-rgb), .55); }
.cbp-status-err   { font-size: 10px; color: var(--mud-palette-error); cursor: default; }
.cbp-status-master--ok { font-size: 10px; font-weight: 700; color: var(--mud-palette-success); }
.cbp-status-master--sug { font-size: 10px; font-weight: 700; color: var(--mud-palette-warning); }
.cbp-status-master-sub { font-size: 9px; color: rgba(var(--mud-palette-success-rgb), .5); }

.cbp-badge-warn {
    display: inline-block;
    margin-left: 6px;
    background: rgba(var(--mud-palette-warning-rgb), .16);
    color: var(--mud-palette-warning);
    border-radius: 4px;
    padding: 1px 7px;
    font-size: 9px;
    font-weight: 700;
}

.cbp-margin-val   { font-weight: 700; }
.cbp-margin-sub   { color: rgba(var(--ag-fg-rgb), .3); font-size: 10px; }
.cbp-target-line  { font-size: 9px; font-weight: 700; }
.cbp-period-cell  { font-size: 11px; color: rgba(var(--ag-fg-rgb), .5); white-space: nowrap; }
.cbp-status-cell  { font-size: 11px; }
.cbp-status-cell--ok    { color: var(--mud-palette-success); font-weight: 700; }
.cbp-status-cell--err   { color: var(--mud-palette-error); }
.cbp-status-cell--info  { color: var(--mud-palette-info); }
.cbp-status-cell--ready { color: #86efac; font-weight: 600; }
.cbp-status-cell--wait  { color: rgba(var(--ag-fg-rgb), .3); }

.cbp-link-bg {
    font-size: 11px;
    color: var(--mud-palette-info);
    text-decoration: none;
    border: 1px solid rgba(var(--mud-palette-info-rgb), .3);
    padding: 3px 10px;
    border-radius: 4px;
}
.cbp-remove-x { cursor: pointer; color: rgba(var(--ag-fg-rgb), .25); font-size: 16px; }

/* hàng bung chi tiết bulk */
.cbp-expand-row  { background: var(--ag-surface-sunken); }
.cbp-expand-cell { padding: 10px 16px 16px 16px; }
.cbp-mini-cards  { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; align-items: stretch; }
.cbp-mini-card {
    flex: 1;
    min-width: 150px;
    border-radius: 8px;
    padding: 8px 12px;
}
.cbp-mini-card--rev   { border: 1px solid rgba(var(--mud-palette-info-rgb), .22);    background: rgba(var(--mud-palette-info-rgb), .05); }
.cbp-mini-card--ok    { border: 1px solid rgba(var(--mud-palette-success-rgb), .25); background: rgba(var(--mud-palette-success-rgb), .05); }
.cbp-mini-card--bad   { border: 1px solid rgba(var(--mud-palette-error-rgb), .3);    background: rgba(var(--mud-palette-error-rgb), .06); }
.cbp-mini-card--tgt   { min-width: 140px; border: 1px solid rgba(167, 139, 250, .28);  background: rgba(167, 139, 250, .06); }
.cbp-mini-label   { font-size: 10px; color: rgba(var(--ag-fg-rgb), .45); }
.cbp-mini-value   { font-size: 16px; font-weight: 700; color: var(--mud-palette-text-primary); }
.cbp-mini-sub     { font-size: 10px; color: rgba(var(--ag-fg-rgb), .4); }
.cbp-mini-mgn-row { display: flex; align-items: baseline; gap: 6px; }
.cbp-mini-mgn-val { font-size: 16px; font-weight: 800; }
.cbp-mini-mgn-floor { font-size: 10px; color: rgba(var(--ag-fg-rgb), .4); }
.cbp-mini-flag    { font-size: 10px; font-weight: 700; }
.cbp-mini-tgt-val { font-size: 16px; font-weight: 800; color: #c4b5fd; }

.cbp-table-footer {
    padding: 8px 16px;
    text-align: right;
    font-size: 12px;
    color: rgba(var(--ag-fg-rgb), .4);
    border-top: 1px solid rgba(var(--ag-fg-rgb), .05);
}
.cbp-footer-ok  { color: var(--mud-palette-success); font-weight: 700; }
.cbp-footer-err { color: var(--mud-palette-error); margin-left: 12px; }

/* ──────────────────────────────────────────────────────────────────────────
   CustomerProfileProductsTable.razor — bảng gộp 4 nhóm cột
   ────────────────────────────────────────────────────────────────────────── */
.cbp-grp-row { text-align: left; color: rgba(var(--ag-fg-rgb), .7); font-size: 10px; letter-spacing: .6px; text-transform: uppercase; }
.cbp-grp-head { padding: 5px 10px; font-weight: 700; border-bottom: 1px solid rgba(var(--ag-fg-rgb), .06); }
.cbp-col-head    { padding: 6px 10px; font-weight: 600; }
.cbp-col-head--r { padding: 6px 10px; font-weight: 600; text-align: right; }
.cbp-col-head--c { padding: 6px 10px; font-weight: 600; text-align: center; }
.cbp-grp-sep-blue  { border-left: 1px solid rgba(var(--ag-fg-rgb), .07); }
.cbp-grp-sep-green { border-left: 1px solid rgba(var(--mud-palette-success-rgb), .35); }
.cbp-grp-label-muted { color: rgba(var(--ag-fg-rgb), .5); }
.cbp-grp-label-blue  { color: var(--mud-palette-info); }
.cbp-grp-label-muted2 { color: rgba(var(--ag-fg-rgb), .55); }
.cbp-grp-label-green { color: var(--mud-palette-success); }

.cbp-col-sep-blue  { border-left: 1px solid rgba(var(--ag-fg-rgb), .05); }
.cbp-cost-source   { font-size: 9px; font-weight: 600; color: #a78bfa; text-transform: none; }

.cbp-prod-row          { border-bottom: 1px solid rgba(var(--ag-fg-rgb), .04); }
.cbp-prod-row--expanded { background: rgba(var(--mud-palette-info-rgb), .04); }

.cbp-td-expand  { padding: 6px 4px; text-align: center; vertical-align: top; }
.cbp-td-top--nowrap { padding: 6px 10px; vertical-align: top; white-space: nowrap; }

.cbp-expand-toggle {
    cursor: pointer;
    display: inline-flex;
    width: 20px;
    height: 20px;
    align-items: center;
    justify-content: center;
    border-radius: 5px;
    transition: transform .15s, background .15s;
    font-size: 12px;
    color: rgba(var(--ag-fg-rgb), .4);
    background: transparent;
}
.cbp-expand-toggle--on { color: var(--mud-palette-info); background: rgba(var(--mud-palette-info-rgb), .14); }

.cbp-item-code   { font-family: monospace; color: var(--mud-palette-info); font-size: 11px; }
.cbp-item-barcode { font-family: monospace; color: rgba(var(--ag-fg-rgb), .35); font-size: 9px; }

.cbp-name-cell { padding: 6px 10px; vertical-align: top; max-width: 300px; }
.cbp-name-row  { display: flex; align-items: center; gap: 6px; min-width: 0; }
.cbp-name-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 200px; }
.cbp-alias-btn { cursor: pointer; font-size: 10px; color: rgba(var(--mud-palette-info-rgb), .55); white-space: nowrap; flex-shrink: 0; }
.cbp-alias-txt {
    font-size: 10px;
    color: #fde68a;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 280px;
}
.cbp-flag-row  { display: flex; flex-wrap: wrap; gap: 2px; margin-top: 3px; }
.cbp-flag-bg {
    border-radius: 4px;
    padding: 1px 7px;
    font-size: 9px;
    font-weight: 600;
}
.cbp-flag-bg--strong { font-weight: 700; }
.cbp-flag-bq {
    background: rgba(167, 139, 250, .15);
    color: #a78bfa;
    border-radius: 4px;
    padding: 1px 7px;
    font-size: 9px;
    font-weight: 600;
}

.cbp-uom-cell { padding: 6px 10px; vertical-align: top; color: rgba(var(--ag-fg-rgb), .5); }

/* nhóm SẢN LƯỢNG (nền nhẹ qua biến --cbp-grp; xem helper class màu nhóm dưới) */
.cbp-qty-cell {
    padding: 6px 10px;
    vertical-align: top;
    text-align: right;
}
.cbp-qty-cell--avg  { color: rgba(var(--ag-fg-rgb), .45); font-size: 11px; border-left: 1px solid rgba(var(--ag-fg-rgb), .05); }
.cbp-qty-cell--last { font-weight: 600; color: rgba(var(--ag-fg-rgb), .85); }
.cbp-qty-prev--has  { color: rgba(var(--ag-fg-rgb), .6); }
.cbp-qty-prev--none { color: rgba(var(--ag-fg-rgb), .2); }
.cbp-qty-proj       { color: var(--mud-palette-info); font-weight: 700; }
.cbp-qty-trend      { font-size: 11px; margin-left: 3px; }

/* nền nhóm cột — thay GrpHistBg / GrpQuoteBg động */
.cbp-grp-hist  { background: rgba(var(--mud-palette-info-rgb), .045); }
.cbp-grp-quote { background: rgba(var(--mud-palette-success-rgb), .045); }

.cbp-price-cell  { padding: 6px 10px; vertical-align: top; text-align: right; white-space: nowrap; }
.cbp-price-sell  { font-weight: 600; color: var(--mud-palette-text-primary); border-left: 1px solid rgba(var(--ag-fg-rgb), .05); }
.cbp-price-cost--has  { color: rgba(var(--ag-fg-rgb), .7); }
.cbp-price-cost--none { color: rgba(var(--ag-fg-rgb), .25); }
.cbp-margin-chip {
    border-radius: 4px;
    padding: 2px 8px;
    font-weight: 700;
    font-size: 11px;
}

.cbp-tier-chip {
    background: rgba(var(--mud-palette-info-rgb), .15);
    color: var(--mud-palette-info);
    border-radius: 4px;
    padding: 1px 6px;
    font-size: 10px;
    font-weight: 600;
}
.cbp-quote-tier-cell { padding: 6px 10px; vertical-align: top; text-align: center; border-left: 1px solid rgba(var(--mud-palette-success-rgb), .18); }
.cbp-quote-price-cell { padding: 6px 10px; vertical-align: top; text-align: right; white-space: nowrap; font-weight: 700; color: var(--mud-palette-text-primary); }
.cbp-quote-price-cell--pulled { background: rgba(var(--mud-palette-warning-rgb), .06); }
.cbp-pull-up   { color: var(--mud-palette-warning); font-size: 10px; margin-left: 2px; }
.cbp-below-floor { color: #fdba74; font-size: 9px; margin-left: 2px; }
.cbp-price-delta { font-size: 9px; font-weight: 600; margin-top: 1px; }
.cbp-gp-flag     { font-size: 9px; font-weight: 700; margin-top: 1px; }
.cbp-quote-mgn-cell { padding: 6px 10px; vertical-align: top; text-align: right; white-space: nowrap; }
.cbp-quote-gp-cell  { padding: 6px 10px; vertical-align: top; text-align: right; white-space: nowrap; }
.cbp-gp--pos { color: #86efac; }
.cbp-gp--neg { color: var(--mud-palette-error); }
.cbp-quote-empty {
    padding: 6px 10px;
    vertical-align: top;
    text-align: center;
    border-left: 1px solid rgba(var(--mud-palette-success-rgb), .18);
    color: rgba(var(--ag-fg-rgb), .18);
    font-style: italic;
}

/* hàng bung bậc số lượng */
.cbp-tier-row  { background: rgba(var(--mud-palette-info-rgb), .04); border-bottom: 1px solid rgba(var(--ag-fg-rgb), .04); }
.cbp-tier-cell { padding: 0 10px 10px 34px; }
.cbp-tier-inner { border-left: 2px solid rgba(var(--mud-palette-info-rgb), .3); padding: 6px 0 2px 12px; }
.cbp-tier-title {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: rgba(var(--ag-fg-rgb), .4);
    margin-bottom: 5px;
}
.cbp-tier-list { display: flex; flex-wrap: wrap; gap: 8px; }
.cbp-tier-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    border-radius: 7px;
    font-size: 11px;
    white-space: nowrap;
}
.cbp-tier-from  { font-weight: 700; color: rgba(var(--ag-fg-rgb), .85); }
.cbp-tier-arrow { color: rgba(var(--ag-fg-rgb), .3); }
.cbp-tier-price { font-weight: 700; }
.cbp-tier-meta  { color: rgba(var(--ag-fg-rgb), .4); }
.cbp-tier-hit   { color: var(--mud-palette-warning); font-size: 9px; }

.cbp-empty-cell { padding: 24px; text-align: center; color: rgba(var(--ag-fg-rgb), .3); }

/* ──────────────────────────────────────────────────────────────────────────
   CustomerQuotePreviewTable.razor
   ────────────────────────────────────────────────────────────────────────── */
.cbp-prev-th    { padding: 7px 10px; font-weight: 600; }
.cbp-prev-row   { border-bottom: 1px solid rgba(var(--ag-fg-rgb), .04); }
.cbp-prev-row--pulled { background: rgba(var(--mud-palette-warning-rgb), .05); }
.cbp-prev-td    { padding: 6px 10px; }
.cbp-prev-td--r { padding: 6px 10px; text-align: right; }
.cbp-prev-td--c { padding: 6px 10px; text-align: center; }
.cbp-prev-code  { font-family: monospace; color: var(--mud-palette-info); font-size: 11px; white-space: nowrap; }
.cbp-prev-barcode { font-family: monospace; color: rgba(var(--ag-fg-rgb), .45); font-size: 10px; white-space: nowrap; }
.cbp-prev-name  { max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cbp-prev-uom   { color: rgba(var(--ag-fg-rgb), .5); }
.cbp-prev-qty   { color: rgba(var(--ag-fg-rgb), .7); }
.cbp-prev-cost  { color: rgba(var(--ag-fg-rgb), .6); }
.cbp-prev-base  { color: rgba(var(--ag-fg-rgb), .5); }
.cbp-prev-final { font-weight: 700; color: var(--mud-palette-text-primary); white-space: nowrap; }
.cbp-prev-delta-none { color: rgba(var(--ag-fg-rgb), .3); }
.cbp-prev-gp--pos { color: #86efac; }
.cbp-prev-gp--neg { color: var(--mud-palette-error); }
.cbp-prev-note--pulled { color: var(--mud-palette-warning); }
.cbp-prev-note--norm   { color: rgba(var(--ag-fg-rgb), .4); }
.cbp-prev-note-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.cbp-prev-flag {
    border-radius: 4px;
    padding: 1px 6px;
    font-size: 9px;
    font-weight: 700;
}
