/* ===================================
   ErbsUI - Utility Classes
   =================================== */

.erbs-inline-form {
    display: inline;
}

/* Spacing Utilities - Margin */
.erbs-m-0 { margin: var(--erbs-spacing-0); }
.erbs-m-1 { margin: var(--erbs-spacing-1); }
.erbs-m-2 { margin: var(--erbs-spacing-2); }
.erbs-m-3 { margin: var(--erbs-spacing-3); }
.erbs-m-4 { margin: var(--erbs-spacing-4); }
.erbs-m-5 { margin: var(--erbs-spacing-5); }
.erbs-m-6 { margin: var(--erbs-spacing-6); }
.erbs-m-8 { margin: var(--erbs-spacing-8); }

.erbs-mt-0 { margin-top: var(--erbs-spacing-0); }
.erbs-mt-1 { margin-top: var(--erbs-spacing-1); }
.erbs-mt-2 { margin-top: var(--erbs-spacing-2); }
.erbs-mt-3 { margin-top: var(--erbs-spacing-3); }
.erbs-mt-4 { margin-top: var(--erbs-spacing-4); }
.erbs-mt-5 { margin-top: var(--erbs-spacing-5); }
.erbs-mt-6 { margin-top: var(--erbs-spacing-6); }
.erbs-mt-8 { margin-top: var(--erbs-spacing-8); }

.erbs-mb-0 { margin-bottom: var(--erbs-spacing-0); }
.erbs-mb-1 { margin-bottom: var(--erbs-spacing-1); }
.erbs-mb-2 { margin-bottom: var(--erbs-spacing-2); }
.erbs-mb-3 { margin-bottom: var(--erbs-spacing-3); }
.erbs-mb-4 { margin-bottom: var(--erbs-spacing-4); }
.erbs-mb-5 { margin-bottom: var(--erbs-spacing-5); }
.erbs-mb-6 { margin-bottom: var(--erbs-spacing-6); }
.erbs-mb-8 { margin-bottom: var(--erbs-spacing-8); }

.erbs-ml-0 { margin-left: var(--erbs-spacing-0); }
.erbs-ml-1 { margin-left: var(--erbs-spacing-1); }
.erbs-ml-2 { margin-left: var(--erbs-spacing-2); }
.erbs-ml-3 { margin-left: var(--erbs-spacing-3); }
.erbs-ml-4 { margin-left: var(--erbs-spacing-4); }
.erbs-ml-5 { margin-left: var(--erbs-spacing-5); }
.erbs-ml-6 { margin-left: var(--erbs-spacing-6); }
.erbs-ml-8 { margin-left: var(--erbs-spacing-8); }

.erbs-mr-0 { margin-right: var(--erbs-spacing-0); }
.erbs-mr-1 { margin-right: var(--erbs-spacing-1); }
.erbs-mr-2 { margin-right: var(--erbs-spacing-2); }
.erbs-mr-3 { margin-right: var(--erbs-spacing-3); }
.erbs-mr-4 { margin-right: var(--erbs-spacing-4); }
.erbs-mr-5 { margin-right: var(--erbs-spacing-5); }
.erbs-mr-6 { margin-right: var(--erbs-spacing-6); }
.erbs-mr-8 { margin-right: var(--erbs-spacing-8); }

/* Spacing Utilities - Padding */
.erbs-p-0 { padding: var(--erbs-spacing-0); }
.erbs-p-1 { padding: var(--erbs-spacing-1); }
.erbs-p-2 { padding: var(--erbs-spacing-2); }
.erbs-p-3 { padding: var(--erbs-spacing-3); }
.erbs-p-4 { padding: var(--erbs-spacing-4); }
.erbs-p-5 { padding: var(--erbs-spacing-5); }
.erbs-p-6 { padding: var(--erbs-spacing-6); }
.erbs-p-8 { padding: var(--erbs-spacing-8); }

.erbs-pt-0 { padding-top: var(--erbs-spacing-0); }
.erbs-pt-1 { padding-top: var(--erbs-spacing-1); }
.erbs-pt-2 { padding-top: var(--erbs-spacing-2); }
.erbs-pt-3 { padding-top: var(--erbs-spacing-3); }
.erbs-pt-4 { padding-top: var(--erbs-spacing-4); }
.erbs-pt-5 { padding-top: var(--erbs-spacing-5); }
.erbs-pt-6 { padding-top: var(--erbs-spacing-6); }
.erbs-pt-8 { padding-top: var(--erbs-spacing-8); }

.erbs-pb-0 { padding-bottom: var(--erbs-spacing-0); }
.erbs-pb-1 { padding-bottom: var(--erbs-spacing-1); }
.erbs-pb-2 { padding-bottom: var(--erbs-spacing-2); }
.erbs-pb-3 { padding-bottom: var(--erbs-spacing-3); }
.erbs-pb-4 { padding-bottom: var(--erbs-spacing-4); }
.erbs-pb-5 { padding-bottom: var(--erbs-spacing-5); }
.erbs-pb-6 { padding-bottom: var(--erbs-spacing-6); }
.erbs-pb-8 { padding-bottom: var(--erbs-spacing-8); }

/* Text Alignment */
.erbs-text-left { text-align: left; }
.erbs-text-center { text-align: center; }
.erbs-text-right { text-align: right; }

/* Display */
.erbs-d-none { display: none; }
.erbs-d-block { display: block; }
.erbs-d-inline { display: inline; }
.erbs-d-inline-block { display: inline-block; }
.erbs-d-flex { display: flex; }
.erbs-d-grid { display: grid; }

/* Flexbox */
.erbs-flex-row { flex-direction: row; }
.erbs-flex-column { flex-direction: column; }
.erbs-flex-wrap { flex-wrap: wrap; }
.erbs-flex-nowrap { flex-wrap: nowrap; }
.erbs-justify-start { justify-content: flex-start; }
.erbs-justify-end { justify-content: flex-end; }
.erbs-justify-center { justify-content: center; }
.erbs-justify-between { justify-content: space-between; }
.erbs-justify-around { justify-content: space-around; }
.erbs-align-start { align-items: flex-start; }
.erbs-align-end { align-items: flex-end; }
.erbs-align-center { align-items: center; }
.erbs-align-stretch { align-items: stretch; }

/* Gap */
.erbs-gap-0 { gap: var(--erbs-spacing-0); }
.erbs-gap-1 { gap: var(--erbs-spacing-1); }
.erbs-gap-2 { gap: var(--erbs-spacing-2); }
.erbs-gap-3 { gap: var(--erbs-spacing-3); }
.erbs-gap-4 { gap: var(--erbs-spacing-4); }
.erbs-gap-5 { gap: var(--erbs-spacing-5); }
.erbs-gap-6 { gap: var(--erbs-spacing-6); }
.erbs-gap-8 { gap: var(--erbs-spacing-8); }

/* Width & Height */
.erbs-w-full { width: 100%; }
.erbs-w-auto { width: auto; }
.erbs-h-full { height: 100%; }
.erbs-h-auto { height: auto; }
.erbs-h-screen { height: 100vh; }

/* Position */
.erbs-static { position: static; }
.erbs-relative { position: relative; }
.erbs-absolute { position: absolute; }
.erbs-fixed { position: fixed; }
.erbs-sticky { position: sticky; }

/* Overflow */
.erbs-overflow-auto { overflow: auto; }
.erbs-overflow-hidden { overflow: hidden; }
.erbs-overflow-visible { overflow: visible; }
.erbs-overflow-scroll { overflow: scroll; }
.erbs-overflow-x-auto { overflow-x: auto; }
.erbs-overflow-y-auto { overflow-y: auto; }

/* Legacy spacing utilities (for backward compatibility) */
.erbs-mb-sm { margin-bottom: var(--erbs-spacing-sm); }
.erbs-mb-md { margin-bottom: var(--erbs-spacing-md); }
.erbs-mb-lg { margin-bottom: var(--erbs-spacing-lg); }
.erbs-mb-xl { margin-bottom: var(--erbs-spacing-xl); }

.erbs-mt-sm { margin-top: var(--erbs-spacing-sm); }
.erbs-mt-md { margin-top: var(--erbs-spacing-md); }
.erbs-mt-lg { margin-top: var(--erbs-spacing-lg); }
.erbs-mt-xl { margin-top: var(--erbs-spacing-xl); }

.erbs-gap-sm { gap: var(--erbs-spacing-sm); }
.erbs-gap-md { gap: var(--erbs-spacing-md); }

/* ===================================
   Typography Utilities
   =================================== */

/* Font sizes */
.erbs-text-3xs { font-size: var(--erbs-text-3xs); }  /* 10px */
.erbs-text-2xs { font-size: var(--erbs-text-2xs); }  /* 11px */
.erbs-text-xs { font-size: var(--erbs-text-xs); }    /* 12px */
.erbs-text-sm { font-size: var(--erbs-text-sm); }    /* 14px */
.erbs-text-base { font-size: var(--erbs-text-base); } /* 16px */
.erbs-text-lg { font-size: var(--erbs-text-lg); }    /* 18px */
.erbs-text-xl { font-size: var(--erbs-text-xl); }    /* 20px */
.erbs-text-2xl { font-size: var(--erbs-text-2xl); }  /* 24px */
.erbs-text-3xl { font-size: var(--erbs-text-3xl); }  /* 30px */

/* Font weights */
.erbs-font-light { font-weight: var(--erbs-font-light); }
.erbs-font-normal { font-weight: var(--erbs-font-regular); }
.erbs-font-medium { font-weight: var(--erbs-font-medium); }
.erbs-font-semibold { font-weight: var(--erbs-font-semibold); }
.erbs-font-bold { font-weight: var(--erbs-font-bold); }

/* Text colors */
.erbs-text-primary { color: var(--erbs-text-primary); }
.erbs-text-secondary { color: var(--erbs-text-secondary); }
.erbs-text-success { color: var(--erbs-success); }
.erbs-text-warning { color: var(--erbs-warning); }
.erbs-text-error { color: var(--erbs-danger); }
.erbs-text-info { color: var(--erbs-info); }

/* Line heights */
.erbs-leading-none { line-height: 1; }
.erbs-leading-tight { line-height: 1.25; }
.erbs-leading-snug { line-height: 1.375; }
.erbs-leading-normal { line-height: 1.5; }
.erbs-leading-relaxed { line-height: 1.625; }
.erbs-leading-loose { line-height: 2; }

/* ===================================
   Button Utilities
   =================================== */

.erbs-btn-block {
    width: 100%;
    display: block;
}

/* ===================================
   Card Utilities
   =================================== */

.erbs-card-no-padding {
    padding: 0;
}

.erbs-card-no-border {
    border: none;
}

.erbs-card-no-radius {
    border-radius: 0;
}

/* ===================================
   Table Utilities
   =================================== */

.erbs-table-no-border {
    border: none;
}

.erbs-table-no-radius {
    border-radius: 0;
}

/* ===================================
   Width Utilities - Replace inline styles
   =================================== */

.erbs-w-25 { width: 25%; }
.erbs-w-33 { width: 33.333%; }
.erbs-w-40 { width: 40%; }
.erbs-w-50 { width: 50%; }
.erbs-w-60 { width: 60%; }
.erbs-w-66 { width: 66.667%; }
.erbs-w-75 { width: 75%; }
.erbs-w-100 { width: 100%; }

/* ===================================
   Flex Utilities
   =================================== */

.erbs-flex-1 { flex: 1; }
.erbs-flex-auto { flex: 1 1 auto; }
.erbs-flex-initial { flex: 0 1 auto; }
.erbs-flex-none { flex: none; }

/* ===================================
   Cursor Utilities
   =================================== */

.erbs-cursor-pointer { cursor: pointer; }
.erbs-cursor-help { cursor: help; }
.erbs-cursor-not-allowed { cursor: not-allowed; }

/* Spinner icon sizes (for font-based spinners) */
.erbs-spinner-icon-lg { font-size: 2rem; }

/* Section spacing — respiro entre seções de conteúdo */
.erbs-section {
    margin-bottom: var(--erbs-spacing-8);
}

.erbs-section:last-child {
    margin-bottom: 0;
}

/* Numeric utilities — tabular-nums para alinhamento de valores */
.erbs-tabular-nums {
    font-variant-numeric: tabular-nums;
}

/* Timestamp / muted text utility */
.erbs-text-muted {
    color: var(--erbs-text-muted);
}

/* Link reset for flex layouts */
.erbs-link-plain {
    text-decoration: none;
    display: flex;
    align-items: center;
}
