/* =========================================================
   PROFEON — TYPOGRAPHY
   Responsável APENAS por texto
   (fontes, tamanhos, pesos, cores, alinhamentos)
========================================================= */
/* =========================
   Base
========================= */
body {
    font-family: var(--font-family);
    color: var(--text);
    line-height: 1.4;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Remove margens padrão */
h1,
h2,
h3,
h4,
h5,
h6,
p {
    margin: 0;
}

/* =========================
   Headings
   (hierarquia do sistema)
========================= */
/* Headings (trocar fixos por tokens) */
h1 {
    font-size: var(--fs-3xl, 40px);
    font-weight: var(--fw-bold);
    line-height: 1.2;
}

h2 {
    font-size: var(--fs-2xl, 32px);
    font-weight: var(--fw-bold);
    line-height: 1.25;
}

h3 {
    font-size: var(--fs-xl, 24px);
    font-weight: var(--fw-semibold);
    line-height: 1.3;
}

h4 {
    font-size: var(--fs-lg, 20px);
    font-weight: var(--fw-semibold);
    line-height: 1.35;
}

h5 {
    font-size: var(--fs-md, 16px);
    font-weight: var(--fw-semibold);
}

h6 {
    font-size: var(--fs-sm, 14px);
    font-weight: var(--fw-semibold);
}

/* =========================
   Texto padrão
========================= */
/* Texto padrão */
p {
    font-size: var(--fs-md);
    line-height: 1.5;
}

small {
    font-size: var(--fs-xs);
    line-height: 1.3;
}

strong {
    font-weight: var(--fw-semibold);
}

/* =========================
   Text size helpers
   (uso intensivo no layout)
========================= */
.tx-xs {
    font-size: var(--fs-xs);
    line-height: 1.3;
}

.tx-sm {
    font-size: var(--fs-sm);
    line-height: 1.4;
}

.tx-md {
    font-size: var(--fs-md);
    line-height: 1.5;
}

.tx-lg {
    font-size: var(--fs-lg);
    line-height: 1.4;
}

.tx-xl {
    font-size: var(--fs-xl);
    line-height: 1.3;
}

/* =========================
   Font weight helpers
========================= */
.fw-regular {
    font-weight: var(--fw-regular);
}

.fw-medium {
    font-weight: var(--fw-medium);
}

.fw-semibold {
    font-weight: var(--fw-semibold);
}

.fw-bold {
    font-weight: var(--fw-bold);
}

/* =========================
   Text colors (semânticos)
========================= */
.tx-muted {
    color: var(--muted);
}

.tx-primary {
    color: var(--primary);
}

.tx-accent {
    color: var(--accent);
}

.tx-success {
    color: var(--success);
}

.tx-warning {
    color: var(--warning);
}

.tx-danger {
    color: var(--danger);
}

.tx-info {
    color: var(--info);
}

/* =========================
   Text alignment
========================= */
.tx-left {
    text-align: left;
}

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

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

/* =========================
   Casos comuns do layout
   (opcional, mas útil)
========================= */
/* Nome do professor / títulos de destaque */
.user-name {
    font-size: var(--fs-xl);
    font-weight: var(--fw-bold);
    line-height: 1.25;
}

.user-name-sm {
    font-size: var(--fs-xl);
    font-weight: var(--fw-bold);
    line-height: 1.3;
}

/* Labels pequenas (ex: Pontos de experiência) */
.label {
    font-size: var(--fs-xs);
    font-weight: var(--fw-medium);
    color: var(--muted);
}

/* Texto numérico / pontos / rankings */
.tx-mono {
    font-variant-numeric: tabular-nums;
}