/* u.css — utilitários compartilhados (v736, item S-22).
 *
 * Nasceu do refactor que tirou o `'unsafe-inline'` do `style-src` da CSP: com nonce na
 * política, TODO atributo `style="..."` escrito em HTML deixa de ser aplicado, e os ~800
 * pontos do repositório precisaram virar classe. Estas são as declarações que se repetiam
 * em MAIS DE UMA tela (medidas em 04/08/2026, `tools/csp/varredura.py`); o que é específico
 * de uma tela só mora no <style> daquela tela, não aqui.
 *
 * REGRA DE USO, e ela importa: estilo que depende de DADO (largura proporcional, cor vinda
 * do tema do cliente, posição calculada) NÃO vira classe · vira `el.style.x = ...` no JS,
 * que a CSP permite. Utilitário aqui é só para valor FIXO.
 *
 * Carregado por templates/base.html (telas Jinja) e static/dashboard.html (SPA).
 */

/* --- layout ------------------------------------------------------------------------- */
.u-flex        { display: flex }
.u-flex-in     { display: inline-flex }
.u-bloco       { display: block }
.u-in-bloco    { display: inline-block }
.u-oculto      { display: none }
.u-col         { flex-direction: column }
.u-centro      { align-items: center }
.u-topo        { align-items: flex-start }
.u-base        { align-items: baseline }
.u-entre       { justify-content: space-between }
.u-fim         { justify-content: flex-end }
.u-quebra      { flex-wrap: wrap }
.u-cresce      { flex: 1 }
.u-esq-auto    { margin-left: auto }

/* --- espaçamento (px, os valores que já existiam nas telas) ------------------------- */
.u-gap-4  { gap: 4px }
.u-gap-5  { gap: 5px }
.u-gap-6  { gap: 6px }
.u-gap-8  { gap: 8px }
.u-gap-10 { gap: 10px }
.u-gap-12 { gap: 12px }
.u-gap-14 { gap: 14px }
.u-gap-16 { gap: 16px }

.u-m-0     { margin: 0 }
.u-mt-0    { margin-top: 0 }
.u-mt-4    { margin-top: 4px }
.u-mt-6    { margin-top: 6px }
.u-mt-8    { margin-top: 8px }
.u-mt-10   { margin-top: 10px }
.u-mt-12   { margin-top: 12px }
.u-mt-14   { margin-top: 14px }
.u-mt-16   { margin-top: 16px }
.u-mt-18   { margin-top: 18px }
.u-mt-20   { margin-top: 20px }
.u-mt-24   { margin-top: 24px }
.u-mb-6    { margin-bottom: 6px }
.u-mb-8    { margin-bottom: 8px }
.u-mb-10   { margin-bottom: 10px }
.u-mb-12   { margin-bottom: 12px }
.u-mb-16   { margin-bottom: 16px }
.u-ml-4    { margin-left: 4px }
.u-ml-6    { margin-left: 6px }
.u-ml-8    { margin-left: 8px }

/* --- dimensão ----------------------------------------------------------------------- */
.u-larg-total { width: 100% }
.u-alt-total  { height: 100% }

/* --- texto -------------------------------------------------------------------------- */
.u-dim    { color: var(--text-dim) }
.u-fraco  { color: var(--text-faint) }
.u-tinta  { color: var(--text) }
.u-dir    { text-align: right }
.u-meio   { text-align: center }
.u-nowrap { white-space: nowrap }
.u-fs-9    { font-size: 9px }
.u-fs-11   { font-size: 11px }
.u-fs-12   { font-size: 12px }
.u-fs-12-5 { font-size: 12.5px }
.u-fs-13   { font-size: 13px }
.u-fs-14   { font-size: 14px }
.u-fs-15   { font-size: 15px }
.u-fs-16   { font-size: 16px }
.u-fs-20   { font-size: 20px }
.u-fw-400  { font-weight: 400 }
.u-fw-500  { font-weight: 500 }
.u-fw-600  { font-weight: 600 }
.u-fw-700  { font-weight: 700 }

/* --- diversos ----------------------------------------------------------------------- */
.u-clique   { cursor: pointer }
.u-vmeio    { vertical-align: middle }
.u-sem-caixa{ text-transform: none }
.u-cobre    { object-fit: cover }
.u-sem-borda{ border: 0 }
