/* ==========================================================================
   ERP WEB PRO — Utilitários
   --------------------------------------------------------------------------
   Conjunto enxuto e previsível. Prefixo `u-` para evitar colisão com o
   Bootstrap 3 / AdminLTE / plugins legados.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Layout flex
   -------------------------------------------------------------------------- */
.u-flex        { display: flex !important; }
.u-inline-flex { display: inline-flex !important; }
.u-flex-col    { flex-direction: column !important; }
.u-flex-wrap   { flex-wrap: wrap !important; }
.u-items-center     { align-items: center !important; }
.u-items-start      { align-items: flex-start !important; }
.u-items-end        { align-items: flex-end !important; }
.u-justify-between  { justify-content: space-between !important; }
.u-justify-center   { justify-content: center !important; }
.u-justify-end      { justify-content: flex-end !important; }
.u-grow             { flex: 1 1 auto !important; }
.u-shrink-0         { flex-shrink: 0 !important; }

.u-gap-1 { gap: 4px !important; }
.u-gap-2 { gap: 8px !important; }
.u-gap-3 { gap: 12px !important; }
.u-gap-4 { gap: 16px !important; }
.u-gap-5 { gap: 24px !important; }

/* --------------------------------------------------------------------------
   Espaçamento
   -------------------------------------------------------------------------- */
.u-mt-0 { margin-top: 0 !important; }
.u-mt-1 { margin-top: 8px !important; }
.u-mt-2 { margin-top: 16px !important; }
.u-mt-3 { margin-top: 24px !important; }
.u-mb-0 { margin-bottom: 0 !important; }
.u-mb-1 { margin-bottom: 8px !important; }
.u-mb-2 { margin-bottom: 16px !important; }
.u-mb-3 { margin-bottom: 24px !important; }
.u-ml-auto { margin-left: auto !important; }
.u-mr-auto { margin-right: auto !important; }
.u-p-0 { padding: 0 !important; }
.u-p-2 { padding: 16px !important; }
.u-p-3 { padding: 24px !important; }

/* --------------------------------------------------------------------------
   Tipografia
   -------------------------------------------------------------------------- */
.u-text-muted   { color: var(--erp-text-muted) !important; }
.u-text-faint   { color: var(--erp-text-faint) !important; }
.u-text-strong  { color: var(--erp-text) !important; font-weight: var(--erp-fw-semibold) !important; }
.u-text-sm      { font-size: var(--erp-fs-sm) !important; }
.u-text-xs      { font-size: var(--erp-fs-xs) !important; }
.u-text-lg      { font-size: var(--erp-fs-lg) !important; }
.u-text-xl      { font-size: var(--erp-fs-xl) !important; }
.u-text-center  { text-align: center !important; }
.u-text-right   { text-align: right !important; }
.u-text-left    { text-align: left !important; }
.u-nowrap       { white-space: nowrap !important; }
.u-truncate {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.u-uppercase {
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
}
.u-tabular { font-variant-numeric: tabular-nums; }

/* --------------------------------------------------------------------------
   Visibilidade
   -------------------------------------------------------------------------- */
.u-hidden { display: none !important; }

.u-sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* --------------------------------------------------------------------------
   Diversos
   -------------------------------------------------------------------------- */
.u-w-full { width: 100% !important; }
.u-rounded { border-radius: var(--erp-radius-sm) !important; }
.u-shadow  { box-shadow: var(--erp-shadow) !important; }
.u-divider {
    height: 1px;
    width: 100%;
    background: var(--erp-divider);
    margin: 16px 0;
}
