/* Secao 668: classes proprias das telas do grupo b (fazenda-nova.css e a base).
   Manejo, Sanidade, Reproducao, Pesagem, Piquetes e Indices. Tudo prefixado fzb-.
   So usa os tokens --fz-*, entao o tema escuro vem junto (o .fz redefine os tokens). */

/* ---------- Manejo: operacoes em ladrilhos e o diario por dia ---------- */
.fzb-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; }
.fzb-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; text-align: left; padding: 14px; border-radius: 16px; border: 1px solid var(--fz-linha); background: var(--fz-folha); color: var(--fz-tinta); cursor: pointer; transition: border-color .15s, transform .15s; }
.fzb-tile:hover { border-color: var(--fz-verde); transform: translateY(-1px); }
.fzb-tile b { font: 700 15px/1.2 var(--fz-texto); }
.fzb-tile .fz-sub { font-size: 12.5px; line-height: 1.35; }
.fzb-dias { display: flex; flex-direction: column; }
.fzb-dia { padding: 8px 16px; background: var(--fz-fundo2); border-top: 1px solid var(--fz-linha); border-bottom: 1px solid var(--fz-linha); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--fz-tinta3); }
.fzb-dia:first-child { border-top: 0; }
.fzb-mov { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 10px 16px; border-bottom: 1px solid var(--fz-linha2); }
.fzb-mov:last-child { border-bottom: 0; }
.fzb-valor { white-space: nowrap; font-weight: 600; text-align: right; min-width: 90px; }
.fzb-valor.neg { color: var(--fz-vermelho); }
.fzb-valor.pos { color: var(--fz-verde); }
@media (max-width: 700px) {
    .fzb-mov { grid-template-columns: auto minmax(0, 1fr) auto; }
    .fzb-mov > .fz-sub:nth-child(3) { display: none; }
}

/* ---------- Sanidade: calendario de 12 meses ---------- */
.fzb-meses { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 6px; }
.fzb-mes { background: var(--fz-folha); border: 1px solid var(--fz-linha); border-radius: 12px; padding: 8px 6px; display: flex; flex-direction: column; gap: 4px; min-height: 92px; min-width: 0; }
.fzb-mes > b { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--fz-tinta3); }
.fzb-mes.agora { border-color: var(--fz-verde); box-shadow: inset 0 0 0 1px var(--fz-verde); }
.fzb-mes.agora > b { color: var(--fz-verde-texto); }
.fzb-pil { display: block; font-size: 11px; font-weight: 600; padding: 2px 6px; border-radius: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 1100px) { .fzb-meses { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (max-width: 560px) { .fzb-meses { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.fzb-nota { margin-top: 10px; padding: 10px 12px; border-radius: 10px; background: var(--fz-ambar-suave); color: var(--fz-ambar-texto); font-size: 13px; }
.fzb-alerta { color: var(--fz-vermelho-texto); font-weight: 700; }

/* ---------- Reproducao: quadro por situacao ---------- */
.fzb-colunas { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(230px, 1fr); gap: 12px; overflow-x: auto; padding-bottom: 4px; }
.fzb-col { background: var(--fz-fundo2); border: 1px solid var(--fz-linha); border-radius: 16px; padding: 10px; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.fzb-col > header { display: flex; justify-content: space-between; align-items: center; padding: 2px 4px; }
.fzb-col > header b { font: 700 14px var(--fz-texto); }
.fzb-cont { font: 600 12px var(--fz-num); padding: 2px 8px; border-radius: 999px; }
.fzb-vaca { background: var(--fz-folha); border: 1px solid var(--fz-linha); border-radius: 12px; padding: 10px; display: flex; flex-direction: column; gap: 4px; }
.fzb-vaca .fz-sub { font-size: 12.5px; }
.fzb-aviso { font-size: 12px; font-weight: 600; color: var(--fz-ambar-texto); }
.fzb-aviso.ruim { color: var(--fz-vermelho-texto); }
.fzb-aviso.bom { color: var(--fz-verde-texto); }
.fzb-passos { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.fzb-mais { background: none; border: 0; padding: 4px; color: var(--fz-verde); font-weight: 600; font-size: 13px; cursor: pointer; text-align: center; }
span.fzb-mais { color: var(--fz-tinta3); cursor: default; }
.fzb-barras { display: flex; align-items: flex-end; gap: 8px; height: 170px; padding-top: 6px; }
.fzb-bar { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 4px; height: 100%; min-width: 0; }
.fzb-bar > i { display: block; width: 100%; max-width: 44px; border-radius: 6px 6px 2px 2px; background: var(--fz-verde); }
.fzb-bar .fz-sub { font-size: 11px; }

/* ---------- Pesagem: modo tronco ---------- */
.fzb-troca { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 13.5px; cursor: pointer; }
.fzb-troca input { width: 18px; height: 18px; accent-color: var(--fz-verde); }
.fzb-combo { display: flex; gap: 6px; align-items: center; }
.fzb-combo select { flex: 1; min-width: 0; }
.fzb-tronco { display: grid; grid-template-columns: minmax(240px, 1fr) 2fr; gap: 16px; padding: 16px; border-radius: 18px; background: var(--fz-verde-escuro); color: #fff; }
[data-theme="dark"] .fz .fzb-tronco, [data-bs-theme="dark"] .fz .fzb-tronco { background: var(--fz-verde-suave); color: var(--fz-tinta); }
.fzb-leitor { display: flex; flex-direction: column; gap: 6px; }
.fzb-leitor label { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; opacity: .85; }
.fzb-leitor input { font-size: 22px; padding: 10px 12px; border-radius: 12px; border: 0; background: rgba(255, 255, 255, .95); color: #17202d; min-height: 52px; }
.fzb-erro-leitura { font-size: 13px; font-weight: 600; color: #ffd2cc; }
[data-theme="dark"] .fz .fzb-erro-leitura, [data-bs-theme="dark"] .fz .fzb-erro-leitura { color: var(--fz-vermelho-texto); }
.fzb-animal { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px 20px; background: var(--fz-folha); color: var(--fz-tinta); border-radius: 14px; padding: 14px; }
.fzb-animal.vazio { align-items: center; justify-content: center; color: var(--fz-tinta3); font-style: italic; min-height: 90px; }
.fzb-brinco-g { font: 800 32px/1 var(--fz-num); }
.fzb-peso { display: flex; flex-direction: column; gap: 4px; }
.fzb-peso input { width: 150px; font-size: 28px; font-weight: 700; padding: 6px 10px; border: 2px solid var(--fz-verde); border-radius: 12px; background: var(--fz-folha); color: var(--fz-tinta); }
.fzb-escore { display: flex; gap: 4px; margin-top: 4px; }
.fzb-escore button { min-width: 38px; height: 38px; border-radius: 10px; border: 1px solid var(--fz-linha); background: var(--fz-folha); color: var(--fz-tinta2); font: 600 13px var(--fz-num); cursor: pointer; }
.fzb-escore button.ativo { background: var(--fz-verde); border-color: var(--fz-verde); color: #fff; }
.fzb-meta { width: 100%; padding: 8px 10px; border-radius: 10px; background: var(--fz-vermelho-suave); color: var(--fz-vermelho-texto); font-size: 13px; font-weight: 600; }
.fz-tabela tr.fzb-alerta-lin td { background: var(--fz-vermelho-suave); }
.fz-tabela tr.fzb-feito td:first-child { box-shadow: inset 3px 0 0 var(--fz-verde); }
.fz-tabela tr.fzb-aqui td { background: var(--fz-azul-suave); }
.fzb-rodape-pes { justify-content: flex-start; gap: 20px; }
@media (max-width: 800px) { .fzb-tronco { grid-template-columns: 1fr; } .fzb-peso input { width: 100%; } }

/* ---------- Piquetes: mapa de cartoes ---------- */
.fzb-legenda { display: flex; flex-wrap: wrap; gap: 14px; font-size: 12.5px; color: var(--fz-tinta2); }
.fzb-legenda > span { display: inline-flex; align-items: center; gap: 6px; }
.fzb-leg { width: 12px; height: 12px; border-radius: 4px; display: inline-block; }
.fzb-leg.cheio { background: var(--fz-vermelho); }
.fzb-leg.uso { background: var(--fz-verde); }
.fzb-leg.descanso { background: var(--fz-linha); }
.fzb-mapa { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.fzb-pq { background: var(--fz-folha); border: 1px solid var(--fz-linha); border-left: 5px solid var(--fz-verde); border-radius: 14px; padding: 12px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.fzb-pq.cheio { border-left-color: var(--fz-vermelho); }
.fzb-pq.descanso { border-left-color: var(--fz-linha); background: var(--fz-fundo2); }
.fzb-pq-cab { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.fzb-pq-nome { font: 800 16px/1.2 var(--fz-titulo); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fzb-notas { display: inline-flex; gap: 2px; flex: none; }
.fzb-notas i { width: 7px; height: 14px; border-radius: 2px; background: var(--fz-linha); }
.fzb-notas i.on { background: var(--fz-verde); }
.fzb-pq-lote { font-weight: 700; font-size: 13.5px; }
.fzb-pq .fz-sub { font-size: 12.5px; }
.fzb-pq .fz-barra { margin: 4px 0 2px; flex: none; }
.fzb-pq-acoes { display: flex; gap: 6px; align-items: center; margin-top: 6px; padding-top: 8px; border-top: 1px solid var(--fz-linha2); }

/* ---------- Indices: conta do rebanho e ladrilhos com meta ---------- */
.fzb-balanco { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 14px 16px; background: var(--fz-folha); border: 1px solid var(--fz-linha); border-radius: 16px; }
.fzb-t { display: flex; flex-direction: column; align-items: center; min-width: 64px; }
.fzb-t b { font-size: 22px; font-weight: 700; }
.fzb-t:last-child b { color: var(--fz-verde-texto); }
.fzb-op { font: 600 20px var(--fz-num); color: var(--fz-tinta3); }
.fzb-indices { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; }
.fzb-ind { background: var(--fz-folha); border: 1px solid var(--fz-linha); border-radius: 16px; padding: 12px 14px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.fzb-ind > b { font: 700 24px/1.15 var(--fz-num); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fzb-ind > b small { font: 500 12px var(--fz-texto); color: var(--fz-tinta2); }
.fzb-ind.bom > b { color: var(--fz-verde); }
.fzb-ind.ruim > b { color: var(--fz-vermelho); }
.fzb-conta { font: 500 11.5px/1.4 var(--fz-num); color: var(--fz-tinta2); }
.fzb-indbarra { position: relative; height: 6px; border-radius: 999px; background: var(--fz-linha2); margin-top: 6px; }
.fzb-indbarra > i { display: block; height: 100%; border-radius: 999px; background: var(--fz-tinta3); }
.fzb-ind.bom .fzb-indbarra > i { background: var(--fz-verde); }
.fzb-ind.ruim .fzb-indbarra > i { background: var(--fz-vermelho); }
.fzb-indbarra > s { position: absolute; top: -4px; width: 2px; height: 14px; margin-left: -1px; background: var(--fz-tinta); border-radius: 1px; }
.fzb-escores { display: flex; align-items: flex-end; gap: 14px; height: 150px; max-width: 420px; }
.fzb-esc { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 4px; height: 100%; }
.fzb-esc > i { display: block; width: 100%; border-radius: 6px 6px 2px 2px; background: var(--fz-verde); }
.fzb-partos { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.fz-tabela tr.fzb-nova-meta td { background: var(--fz-fundo2); }
.fzb-nova-meta .fz-entrada { width: 100%; min-width: 90px; }

/* ---- 502 (secao 669): curva de GMD na lista de animais ---- */
.fz .fzb-gmd { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.fz .fzb-mini { width: 70px; height: 24px; flex: none; }

/* ---- 502 (secao 669): arrastar a vaca entre as colunas da reproducao ---- */
.fz .fzb-arrasta { cursor: grab; }
.fz .fzb-arrasta:active { cursor: grabbing; }
.fz .fzb-col.fzb-alvo { outline: 2px dashed var(--fz-verde); outline-offset: -2px; }
