/* Laboratório v2 — Qualidade e relatórios (prefixo lbq-). Só este grupo edita este arquivo.
   Tokens --p-* herdados de .mm (claro/escuro). Base comum: ../mc-modulo-laboratorio.css (lb-).
   Telas: Controle de Qualidade, Indicadores (TAT), Estatísticas, Relatório Movimentação, Baixa Automática.
   Componentes: LbqPeriodo, LbqRelatorioModal, LbqLeveyJennings, LabCqAviso (este último também no Painel/Resultados). */

/* ---- Período (datas + atalhos) ---- */
.lbq-periodo { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.lbq-periodo .mm-input.sm { width: 134px; }
.lbq-ate { font-size: .7rem; color: var(--p-faint); font-weight: 600; }

/* ---- Folha A4 (pré-visualização num iframe) ---- */
.lbq-a4-modal .mm-mbody { padding: 0; background: #e9edf3; }
[data-theme-mode="dark"] .lbq-a4-modal .mm-mbody { background: #1c2e35; }
.lbq-a4-wrap { height: 100%; min-height: 60vh; display: flex; }
.lbq-a4-frame { flex: 1; width: 100%; border: 0; min-height: 60vh; background: #e9edf3; }

/* ---- Utilidades da página ---- */
.lbq .lbq-erro { margin-top: 12px; }
.mm-layer .lbq-erro { margin-top: 12px; }
.lbq-tr-rej td { background: color-mix(in srgb, var(--p-red-soft) 70%, transparent); }
.lbq-tr-rej:hover td { background: var(--p-red-soft) !important; }
.lbq-tr-sel td { box-shadow: inset 0 1px 0 var(--p-blue-line), inset 0 -1px 0 var(--p-blue-line); background: var(--p-blue-soft) !important; }
.lbq-tr-inativo td { opacity: .6; }
.lbq-regra-tag { background: var(--p-red-soft); color: var(--p-red); margin-right: 3px; font-family: var(--p-mono); }
.lbq-td-acao { max-width: 280px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: .72rem; }
.lbq-nota-fpend { display: flex; align-items: center; gap: 6px; padding: 8px 16px; font-size: .7rem; font-weight: 600; color: var(--p-orange);
    background: var(--p-orange-soft); border-bottom: 1px solid var(--p-orange-line); }
.lbq-limite { padding: 8px 16px; }

/* ---- Controle de Qualidade: lista de pares + gráfico ---- */
.lbq-cq-grid { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 16px; align-items: start; }
.lbq-pares-body { display: flex; flex-direction: column; gap: 10px; max-height: 760px; overflow: auto; }
.lbq-pares-busca { max-width: none; min-width: 0; }
.lbq-par .mm-item-tit .mm-tag { font-size: .6rem; }
.lbq-lj-card .mm-card-head { flex-wrap: wrap; }
.lbq-stats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.lbq-stats .mm-dd-val small { font-size: .68rem; color: var(--p-faint); font-weight: 700; }

/* ---- Levey-Jennings ---- */
.lbq-lj { width: 100%; }
.lbq-lj-svg { width: 100%; height: auto; display: block; font-family: var(--p-font); overflow: visible; }
.lbq-lj-faixa.alerta { fill: var(--p-yellow-soft); }
.lbq-lj-faixa.rejeicao { fill: var(--p-red-soft); }
.lbq-lj-linha { stroke-width: 1; shape-rendering: crispEdges; }
.lbq-lj-linha.media { stroke: var(--p-ink); stroke-width: 1.4; opacity: .7; }
.lbq-lj-linha.sd1 { stroke: var(--p-border-strong); }
.lbq-lj-linha.sd2 { stroke: var(--p-yellow); opacity: .85; }
.lbq-lj-linha.sd3 { stroke: var(--p-red); opacity: .85; }
.lbq-lj-val { font-size: 10px; fill: var(--p-text); font-variant-numeric: tabular-nums; }
.lbq-lj-rot { font-size: 10px; fill: var(--p-faint); font-weight: 600; }
.lbq-lj-rot.media { fill: var(--p-muted); font-weight: 800; }
.lbq-lj-x { font-size: 9.5px; fill: var(--p-faint); }
.lbq-lj-serie { fill: none; stroke: var(--p-blue-light); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; opacity: .55; }
.lbq-lj-marca { stroke: var(--p-surface); stroke-width: 2; paint-order: stroke; }
.lbq-lj-marca.aceito { fill: var(--p-blue); }
.lbq-lj-marca.alerta { fill: var(--p-yellow); }
.lbq-lj-marca.rejeitado { fill: var(--p-red); }
.lbq-lj-hit { fill: transparent; }
.lbq-lj-ponto.click { cursor: pointer; }
.lbq-lj-ponto:hover .lbq-lj-marca { filter: brightness(1.12); }
.lbq-lj-halo { fill: none; stroke: var(--p-blue-light); stroke-width: 2; opacity: .55; }
.lbq-lj-dica rect { fill: var(--p-ink); opacity: .94; }
.lbq-lj-dica text { fill: var(--p-surface); font-size: 10.5px; font-weight: 600; }
.lbq-lj-vazio { fill: var(--p-faint); font-size: 12px; font-weight: 600; }
.lbq-lj-leg { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; margin-top: 4px; font-size: .68rem; font-weight: 600; color: var(--p-muted); }
.lbq-lj-leg span { display: inline-flex; align-items: center; gap: 5px; }
.lbq-lj-leg svg { width: 12px; height: 12px; overflow: visible; }
.lbq-lj-leg .lbq-lj-marca { stroke-width: 0; }
.lbq-lj-leg-linha { width: 16px; height: 0; border-top: 2px solid; }
.lbq-lj-leg-linha.sd2 { border-color: var(--p-yellow); }
.lbq-lj-leg-linha.sd3 { border-color: var(--p-red); }

/* ---- Modais do CQ ---- */
.lbq-regras { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.lbq-regras .mm-check { font-family: var(--p-mono); font-weight: 700; }
.lbq-calc { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; padding: 9px 11px; border-radius: 10px; background: var(--p-soft); border: 1px dashed var(--p-border-strong); font-size: .74rem; color: var(--p-text); }
.lbq-calc b { color: var(--p-ink); }
.lbq-fixo { display: flex; align-items: center; background: var(--p-soft); font-weight: 700; color: var(--p-ink); }
.lbq-alvo-busca { margin-bottom: 6px; }
.lbq-alvo-analito.prmd-field { height: auto; padding: 4px; }
.lbq-alvo-ajuda { margin-bottom: 12px; }
.lbq-lanc-wrap { margin-top: 14px; border: 1px solid var(--p-border); border-radius: 12px; }
.lbq-tbl-lanc .mm-input { width: 120px; text-align: right; font-variant-numeric: tabular-nums; }
.lbq-tbl-lanc td { padding: 8px 12px; }
.lbq-vencido { margin-top: 12px; }
.lbq-regras-expl { display: flex; flex-direction: column; gap: 5px; margin: 12px 0 4px; padding: 9px 11px; border-radius: 10px;
    background: var(--p-red-soft); border: 1px solid var(--p-red-line); color: var(--p-red); font-size: .72rem; font-weight: 600; line-height: 1.45; }
.lbq-regras-expl div { display: flex; gap: 6px; }
.lbq-regras-expl i { margin-top: 2px; }
.lbq-acoes { margin-bottom: 6px; }
.lbq-sugestoes { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.mm-layer .mm-sec { margin-top: 12px; }

/* ---- Aviso de CQ do dia (Painel, Resultados, Liberação) ---- */
.lbq-cqaviso {
    display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px;
    background: var(--p-red-soft); border: 1px solid var(--p-red-line); color: var(--p-red);
    font-size: .76rem; font-weight: 600; line-height: 1.45;
}
.lbq-cqaviso > i { font-size: 19px; flex: none; }
.lbq-cqaviso-txt { flex: 1; min-width: 0; color: var(--p-text); }
.lbq-cqaviso-txt b { color: var(--p-red); font-weight: 800; }
.lbq-cqaviso-sub { display: block; font-size: .68rem; color: var(--p-muted); margin-top: 1px; }
.lbq-cqaviso.compacto { padding: 7px 10px; font-size: .72rem; }
.lbq-cqaviso .lbq-cqaviso-btn { flex: none; }

/* ---- Indicadores (TAT) ---- */
.lbq-etapas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.lbq-etapa { position: relative; background: var(--p-soft); border: 1px solid var(--p-border-soft); border-radius: 12px; padding: 10px 12px; min-width: 0; }
.lbq-etapa-lbl { font-size: .6rem; font-weight: 800; letter-spacing: .8px; color: var(--p-faint); text-transform: uppercase; display: flex; align-items: center; gap: 5px; }
.lbq-etapa-lbl i { font-size: 13px; color: var(--p-blue); }
.lbq-etapa-val { font-size: 1.2rem; font-weight: 800; color: var(--p-ink); margin-top: 3px; letter-spacing: -.3px; }
.lbq-etapa-sub { font-size: .66rem; font-weight: 600; color: var(--p-muted); margin-top: 1px; }
.lbq-etapa.total { background: var(--p-blue-soft); border-color: var(--p-blue-line-soft); }
.lbq-etapa.total .lbq-etapa-val { color: var(--p-blue); }
.lbq-fluxo { display: flex; height: 12px; border-radius: 50px; overflow: hidden; gap: 2px; margin-top: 12px; background: var(--p-surface); }
.lbq-fluxo > div { height: 100%; min-width: 6px; }
.lbq-fluxo .f1 { background: var(--p-teal); }
.lbq-fluxo .f2 { background: var(--p-purple); }
.lbq-fluxo .f3 { background: var(--p-blue-light); }
.lbq-fluxo-leg { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 6px; font-size: .66rem; font-weight: 600; color: var(--p-muted); }
.lbq-fluxo-leg span { display: inline-flex; align-items: center; gap: 5px; }
.lbq-fluxo-leg i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
.lbq-meter { display: flex; align-items: center; gap: 8px; min-width: 120px; }
.lbq-meter .mm-progress { flex: 1; }
.lbq-meter b { font-size: .74rem; color: var(--p-ink); font-variant-numeric: tabular-nums; min-width: 46px; text-align: right; }
.lbq-atraso { font-weight: 800; color: var(--p-red); white-space: nowrap; }
.lbq-g2-top { align-items: start; }
.lbq-bars-wrap { padding: 14px 16px; }
.lbq-mini { font-size: .66rem; color: var(--p-faint); font-weight: 600; }
.lbq-crit-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }

/* ---- Estatísticas / Movimentação ---- */
.lbq-cols-wrap { padding: 14px 16px 8px; }
.lbq-cols2 { display: flex; align-items: flex-end; gap: 10px; height: 170px; padding-top: 8px; }
.lbq-cols2-mes { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 4px; height: 100%; justify-content: flex-end; }
.lbq-cols2-par { display: flex; align-items: flex-end; gap: 2px; height: 100%; width: 100%; justify-content: center; }
.lbq-cols2-bar { width: 42%; max-width: 18px; min-height: 2px; border-radius: 4px 4px 0 0; transition: height .5s var(--p-ease); }
.lbq-cols2-bar.a1 { background: var(--p-border-strong); }
.lbq-cols2-bar.a2 { background: var(--p-blue-light); }
.lbq-cols2-lbl { font-size: .6rem; font-weight: 700; color: var(--p-faint); }
.lbq-legenda { display: flex; gap: 14px; flex-wrap: wrap; font-size: .68rem; font-weight: 600; color: var(--p-muted); padding: 0 16px 12px; }
.lbq-legenda span { display: inline-flex; align-items: center; gap: 5px; }
.lbq-legenda i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
.lbq-var { font-weight: 800; }
.lbq-var.up { color: var(--p-green); }
.lbq-var.down { color: var(--p-red); }
.lbq-tbl-mes th, .lbq-tbl-mes td { padding: 8px 8px; }
.lbq-tbl-mes td.lbq-dif-pos { color: var(--p-green); font-weight: 700; }
.lbq-tbl-mes td.lbq-dif-neg { color: var(--p-red); font-weight: 700; }
.lbq-tbl-alta { max-height: 560px; }
.lbq-tbl-alta thead th { position: sticky; top: 0; z-index: 1; background: var(--p-soft); }
.lbq-paginacao { display: flex; align-items: center; justify-content: flex-end; gap: 6px; padding: 10px 16px; border-top: 1px solid var(--p-border); font-size: .72rem; color: var(--p-muted); font-weight: 600; }

/* ---- Baixa Automática ---- */
.lbq-regra-desc { font-size: .7rem; color: var(--p-muted); font-weight: 500; margin-top: 2px; }
.lbq-regra-invalida { color: var(--p-red); font-weight: 700; }
.lbq-explica { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.lbq-explica-it { display: flex; gap: 10px; padding: 12px; border-radius: 12px; border: 1px solid var(--p-border); background: var(--p-surface); }
.lbq-explica-it > i { font-size: 20px; color: var(--tom, var(--p-blue)); flex: none; margin-top: 1px; }
.lbq-explica-tit { font-size: .78rem; font-weight: 800; color: var(--p-ink); }
.lbq-explica-txt { font-size: .7rem; color: var(--p-muted); line-height: 1.5; margin-top: 2px; }
.lbq-previa-regra { border: 1px solid var(--p-border); border-radius: 12px; overflow: hidden; }
.lbq-previa-regra + .lbq-previa-regra { margin-top: 12px; }
.lbq-previa-head { display: flex; align-items: center; gap: 8px; padding: 10px 12px; background: var(--p-soft); border-bottom: 1px solid var(--p-border); }
.lbq-previa-head b { color: var(--p-ink); font-size: .8rem; }
.lbq-previa-lista { max-height: 56vh; overflow: auto; }
.lbq-opts-baixa { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lbq-spin-sm { width: 18px; height: 18px; border-width: 2px; }
.lbq-urg { margin-left: 6px; }
.lbq-busca-mov, .lbq-busca-tipo { max-width: 340px; }
.lbq-acao-todas { margin-top: 10px; }
