@media print {
  * {
    -webkit-print-color-adjust: exact !important; /* Safari/Chrome */
    print-color-adjust: exact !important; /* Firefox */
    color-adjust: exact !important; /* Compatibilidade */
  }
}

.table-print {
  margin: 0;
}

.table-print tbody tr td,
.table-print tr td {
  padding: 4px 8px;
  line-height: 1.1;
  font-size: 1rem;
}

.table-print thead tr th,
.table-print tr th {
  padding: 4px 8px;
  line-height: 1.1;
  font-size: 0.95rem;
  font-weight: bold;
}

/* ========= FLEX (core) ========= */
.flex {
  display: flex;
}
.flex-1 {
  flex: 1;
}

.flex-row {
  flex-direction: row;
}
.flex-row-reverse {
  flex-direction: row-reverse;
}
.flex-col {
  flex-direction: column;
}
/* alias para compatibilidade */
.flex-column {
  flex-direction: column;
}
.flex-col-reverse {
  flex-direction: column-reverse;
}

.flex-wrap {
  flex-wrap: wrap;
}
.flex-nowrap {
  flex-wrap: nowrap;
}

/* Alinhamento no eixo cruzado */
.items-start {
  align-items: flex-start;
}
.items-center,
.flex-a-center {
  align-items: center;
}
.items-end {
  align-items: flex-end;
}
.items-stretch {
  align-items: stretch;
}
.items-baseline {
  align-items: baseline;
}
/* aliases extras */
.flex-a-start {
  align-items: flex-start;
}
.flex-a-end {
  align-items: flex-end;
}

/* Distribuição no eixo principal */
.justify-start,
.flex-j-start {
  justify-content: flex-start;
}
.justify-center,
.flex-j-center {
  justify-content: center;
}
.justify-end,
.flex-j-end {
  justify-content: flex-end;
}
.justify-between,
.flex-j-space-between {
  justify-content: space-between;
}
.justify-around {
  justify-content: space-around;
}
.justify-evenly {
  justify-content: space-evenly;
}

/* ========= FLEX gaps ========= */
.flex-gap-0-5 {
  gap: 0.5rem;
}
.flex-gap-1 {
  gap: 1rem;
}
.flex-gap-1-5 {
  gap: 1.5rem;
}
.flex-gap-2 {
  gap: 2rem;
}

/* ========= TEXT ========= */
.text-size-base {
  font-size: 1rem;
}

.text-size-subtitle {
  font-size: 1.1rem;
}
.text-size-title {
  font-size: 1.3rem;
}

.text-size-xs {
  font-size: 0.75rem;
  letter-spacing: 0.2px;
}
.text-size-sm {
  font-size: 0.875rem;
  letter-spacing: 0.3px;
}
.text-size-lg {
  font-size: 1.125rem;
}
.text-size-xl {
  font-size: 1.25rem;
}
.text-size-2xl {
  font-size: 1.5rem;
}
.text-size-3xl {
  font-size: 1.875rem;
}
.text-size-4xl {
  font-size: 2.25rem;
}
.text-size-5xl {
  font-size: 3rem;
}

.text-medium {
  font-weight: 500;
}
.text-semibold {
  font-weight: 600;
}
.text-bold {
  font-weight: 700;
}

.text-color-black {
  color: #0c0c0c;
}
.text-color-gray-dark {
  color: #343434;
}
.text-color-gray {
  color: #6a6a6a;
}

.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}

/* ========= SPACING ========= */
.pv-0-1 {
  padding-top: 0.1rem;
  padding-bottom: 0.1rem;
}
.pv-0-2-5 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.pv-0-5 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.pv-1 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.pv-1-5 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.pv-2 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.pv-2-5 {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}
.pv-3 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

.ph-0-1 {
  padding-left: 0.1rem;
  padding-right: 0.1rem;
}
.ph-0-2-5 {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
.ph-0-5 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.ph-1 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.ph-1-5 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.ph-2 {
  padding-left: 2rem;
  padding-right: 2rem;
}
.ph-2-5 {
  padding-left: 2.5rem;
  padding-right: 2.5rem;
}
.ph-3 {
  padding-left: 3rem;
  padding-right: 3rem;
}

.mv-0-1 {
  margin-top: 0.1rem;
  margin-bottom: 0.1rem;
}
.mv-0-2-5 {
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}
.mv-0-5 {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}
.mv-1 {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
.mv-1-5 {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}
.mv-2 {
  margin-top: 2rem;
  margin-bottom: 2rem;
}
.mv-2-5 {
  margin-top: 2.5rem;
  margin-bottom: 2.5rem;
}
.mv-3 {
  margin-top: 3rem;
  margin-bottom: 3rem;
}

.mh-0-1 {
  margin-left: 0.1rem;
  margin-right: 0.1rem;
}
.mh-0-2-5 {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}
.mh-0-5 {
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}
.mh-1 {
  margin-left: 1rem;
  margin-right: 1rem;
}
.mh-1-5 {
  margin-left: 1.5rem;
  margin-right: 1.5rem;
}
.mh-2 {
  margin-left: 2rem;
  margin-right: 2rem;
}
.mh-2-5 {
  margin-left: 2.5rem;
  margin-right: 2.5rem;
}
.mh-3 {
  margin-left: 3rem;
  margin-right: 3rem;
}

.mr-0-1 {
  margin-right: 0.1rem;
}
.mr-0-2-5 {
  margin-right: 0.25rem;
}
.mr-0-5 {
  margin-right: 0.5rem;
}
.mr-1 {
  margin-right: 1rem;
}
.mr-1-5 {
  margin-right: 1.5rem;
}
.mr-2 {
  margin-right: 2rem;
}
.mr-2-5 {
  margin-right: 2.5rem;
}
.mr-3 {
  margin-right: 3rem;
}

.ml-auto {
  margin-left:auto;
}
.ml-0-1 {
  margin-left: 0.1rem;
}
.ml-0-2-5 {
  margin-left: 0.25rem;
}
.ml-0-5 {
  margin-left: 0.5rem;
}
.ml-1 {
  margin-left: 1rem;
}
.ml-1-5 {
  margin-left: 1.5rem;
}
.ml-2 {
  margin-left: 2rem;
}
.ml-2-5 {
  margin-left: 2.5rem;
}
.ml-3 {
  margin-left: 3rem;
}

.mt-0 {
  margin-top: 0;
}
.mt-0-1 {
  margin-top: 0.1rem;
}
.mt-0-2-5 {
  margin-top: 0.25rem;
}
.mt-0-5 {
  margin-top: 0.5rem;
}
.mt-1 {
  margin-top: 1rem;
}
.mt-1-5 {
  margin-top: 1.5rem;
}
.mt-2 {
  margin-top: 2rem;
}
.mt-2-5 {
  margin-top: 2.5rem;
}
.mt-3 {
  margin-top: 3rem;
}

.mb-0 {
  margin-bottom: 0;
}
.mb-0-1 {
  margin-bottom: 0.1rem;
}
.mb-0-2-5 {
  margin-bottom: 0.25rem;
}
.mb-0-5 {
  margin-bottom: 0.5rem;
}
.mb-1 {
  margin-bottom: 1rem;
}
.mb-1-5 {
  margin-bottom: 1.5rem;
}
.mb-2 {
  margin-bottom: 2rem;
}
.mb-2-5 {
  margin-bottom: 2.5rem;
}
.mb-3 {
  margin-bottom: 3rem;
}

/* ========= BORDAS ========= */
.border-black-1 {
  border: 1px solid #333;
}
.border-gray-light {
  border: 1px solid #d9d9d9;
}
