/* ============================================================
   BACFUTURES CRM V2.0 — utilities.css
   Utility classes (Digi-system mục 8)
   Layout nhanh — không phải component
   ============================================================ */

/* ── Text ── */
.bac-u-text-xs { font-size: var(--bac-text-xs); }
.bac-u-text-sm { font-size: var(--bac-text-sm); }
.bac-u-text-base { font-size: var(--bac-text-base); }
.bac-u-text-md { font-size: var(--bac-text-md); }
.bac-u-text-lg { font-size: var(--bac-text-lg); }
.bac-u-text-xl { font-size: var(--bac-text-xl); }
.bac-u-text-muted { color: var(--bac-text-tertiary); }
.bac-u-text-secondary { color: var(--bac-text-secondary); }
.bac-u-text-primary { color: var(--bac-text-primary); }
.bac-u-text-brand { color: var(--bac-brand); }
.bac-u-text-success { color: var(--bac-success); }
.bac-u-text-warning { color: var(--bac-warning); }
.bac-u-text-danger { color: var(--bac-danger); }
.bac-u-text-mono { font-family: var(--bac-font-mono); }
.bac-u-text-uppercase { text-transform: uppercase; letter-spacing: var(--bac-ls-wider); }
.bac-u-text-center { text-align: center; }
.bac-u-text-right { text-align: right; }
.bac-u-text-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bac-u-fw-medium { font-weight: var(--bac-fw-medium); }
.bac-u-fw-semibold { font-weight: var(--bac-fw-semibold); }
.bac-u-fw-bold { font-weight: var(--bac-fw-bold); }

/* ── Flex ── */
.bac-u-flex { display: flex; }
.bac-u-flex-col { display: flex; flex-direction: column; }
.bac-u-flex-center { display: flex; align-items: center; justify-content: center; }
.bac-u-flex-between { display: flex; align-items: center; justify-content: space-between; }
.bac-u-flex-start { display: flex; align-items: center; }
.bac-u-flex-wrap { flex-wrap: wrap; }
.bac-u-flex-1 { flex: 1; }
.bac-u-flex-shrink-0 { flex-shrink: 0; }

/* ── Gap ── */
.bac-u-gap-1 { gap: var(--bac-space-1); }
.bac-u-gap-2 { gap: var(--bac-space-2); }
.bac-u-gap-3 { gap: var(--bac-space-3); }
.bac-u-gap-4 { gap: var(--bac-space-4); }
.bac-u-gap-5 { gap: var(--bac-space-5); }
.bac-u-gap-6 { gap: var(--bac-space-6); }

/* ── Margin ── */
.bac-u-mt-1 { margin-top: var(--bac-space-1); }
.bac-u-mt-2 { margin-top: var(--bac-space-2); }
.bac-u-mt-3 { margin-top: var(--bac-space-3); }
.bac-u-mt-4 { margin-top: var(--bac-space-4); }
.bac-u-mt-5 { margin-top: var(--bac-space-5); }
.bac-u-mt-6 { margin-top: var(--bac-space-6); }
.bac-u-mb-1 { margin-bottom: var(--bac-space-1); }
.bac-u-mb-2 { margin-bottom: var(--bac-space-2); }
.bac-u-mb-3 { margin-bottom: var(--bac-space-3); }
.bac-u-mb-4 { margin-bottom: var(--bac-space-4); }
.bac-u-mb-5 { margin-bottom: var(--bac-space-5); }
.bac-u-mb-6 { margin-bottom: var(--bac-space-6); }
.bac-u-ml-1 { margin-left: var(--bac-space-1); }
.bac-u-ml-2 { margin-left: var(--bac-space-2); }
.bac-u-mr-1 { margin-right: var(--bac-space-1); }
.bac-u-mr-2 { margin-right: var(--bac-space-2); }
.bac-u-m-5-0-3 { margin: var(--bac-space-5) 0 var(--bac-space-3); }

/* ── Width ── */
.bac-u-w-full { width: 100%; }
.bac-u-w-auto { width: auto; }
.bac-u-w-80 { width: 80px; }
.bac-u-w-100 { width: 100px; }
.bac-u-w-120 { width: 120px; }
.bac-u-min-w-100 { min-width: 100px; }
.bac-u-min-w-120 { min-width: 120px; }
.bac-u-min-w-140 { min-width: 140px; }
.bac-u-min-w-160 { min-width: 160px; }
.bac-u-min-w-200 { min-width: 200px; }
.bac-u-min-w-240 { min-width: 240px; }

/* ── Display ── */
.bac-u-hidden { display: none; }
.bac-u-block { display: block; }
.bac-u-inline-block { display: inline-block; }

/* ── Grid ── */
.bac-u-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--bac-space-4); }
.bac-u-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--bac-space-4); }
.bac-u-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--bac-space-4); }

/* ── Misc ── */
.bac-u-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bac-u-nowrap { white-space: nowrap; }
.bac-u-rounded { border-radius: var(--bac-radius-md); }
.bac-u-rounded-lg { border-radius: var(--bac-radius-lg); }
.bac-u-rounded-full { border-radius: var(--bac-radius-full); }
.bac-u-overflow-hidden { overflow: hidden; }
.bac-u-overflow-auto { overflow: auto; }
.bac-u-cursor-pointer { cursor: pointer; }
.bac-u-relative { position: relative; }
.bac-u-p-0 { padding: 0; }
.bac-u-link-plain { color: inherit; text-decoration: none; }
.bac-u-link-plain:hover { color: inherit; text-decoration: none; }
.bac-u-min-vh { min-height: 100vh; }
.bac-u-max-h-300 { max-height: 300px; overflow-y: auto; }
.bac-u-items-center { align-items: center; }
.bac-u-justify-center { justify-content: center; }
.bac-u-flex-grow { flex: 1; }
.bac-u-flex-grow-min-100 { flex: 1; min-width: 100px; }
.bac-u-flex-grow-min-120 { flex: 1; min-width: 120px; }
.bac-u-flex-grow-min-140 { flex: 1; min-width: 140px; }
.bac-u-flex-grow-min-160 { flex: 1; min-width: 160px; }
.bac-u-flex-grow-min-200 { flex: 1; min-width: 200px; }
.bac-u-flex-grow-min-240 { flex: 1; min-width: 240px; }
.bac-u-flex-grow-min-320 { flex: 1; min-width: 320px; max-width: 480px; }
.bac-u-text-info { color: var(--bac-info); }
.bac-u-text-disabled { color: var(--bac-text-disabled); }
.bac-u-bg-danger { background: var(--bac-danger); }
.bac-u-border-card { border: 1px solid var(--bac-outline); border-radius: var(--bac-radius-md); }
.bac-u-border-card-lg { border: 1px solid var(--bac-outline); border-radius: var(--bac-radius-lg); }
.bac-u-mb-3-section { margin-bottom: var(--bac-space-3); padding: var(--bac-space-3); border: 1px solid var(--bac-outline); border-radius: var(--bac-radius-md); background: var(--bac-surface-2); }