/* Laboratório v2 — Cadastros e configurações (prefixo lbg-). Só este grupo edita este arquivo.
   Tokens --p-* herdados de .mm/.mm-layer (claro/escuro). Base comum: ../mc-modulo-laboratorio.css (lb-).
   Telas: Tipos de Exame (+ modal com abas e catálogo padrão), Valores de Referência, Gerenciar Exames,
   Restrições por Unidade, Restrição Operador e Configurações. Sem media query de largura (a escala cuida). */

/* ============================================================ comuns */
:is(.lbg, .mm-layer) .lbg-sub { font-size: .68rem; font-weight: 500; color: var(--p-faint); line-height: 1.4; }
:is(.lbg, .mm-layer) .lbg-sub i { font-size: 13px; vertical-align: -2px; }
:is(.lbg, .mm-layer) .lbg-cod { font-size: .72rem; font-weight: 700; color: var(--p-blue); white-space: nowrap; }
:is(.lbg, .mm-layer) .lbg-ok { display: flex; align-items: center; gap: 6px; font-size: .74rem; font-weight: 700; color: var(--p-green); }
:is(.lbg, .mm-layer) .lbg-ok i { font-size: 16px; }
:is(.lbg, .mm-layer) .lbg-ib {
    width: 24px; height: 24px; border-radius: 7px; border: 1px solid transparent; background: transparent;
    color: var(--p-faint); display: inline-flex; align-items: center; justify-content: center; font-size: 15px; padding: 0; flex: none;
}
:is(.lbg, .mm-layer) .lbg-ib:hover:not(:disabled) { color: var(--p-blue); background: var(--p-blue-soft); border-color: var(--p-blue-line-soft); }
:is(.lbg, .mm-layer) .lbg-ib:disabled { opacity: .3; }
/* tubo de coleta com a cor da tampa */
:is(.lbg, .mm-layer) .lbg-tubo {
    display: inline-block; width: 9px; height: 15px; border-radius: 2px 2px 5px 5px; margin-right: 6px; vertical-align: -3px;
    background: linear-gradient(var(--tampa, #cbd5e1) 0 32%, color-mix(in srgb, var(--p-border-strong) 60%, transparent) 32% 100%);
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.12);
}
/* "!important": custom-tables.css global também usa — mesma regra do mc-page.css */
.lbg .lbg-tbl td { vertical-align: middle !important; }
.lbg .mm-tbl tr.inativo td { opacity: .55; }
.lbg .mm-tbl tr.inativo:hover td { opacity: .9; }

/* ============================================================ Tipos de Exame — lista */
.lbg .lbg-nome { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.lbg .lbg-nome .mm-ink { font-size: .8rem; }
.lbg .lbg-tipos td:nth-child(2) { min-width: 300px; }
.lbg .lbg-tbl-wrap { max-height: calc(100vh - 360px); }

/* ============================================================ modal do exame */
.mm-layer.lbg-tm .mm-mbody.cols > .prmd-side { width: 300px; }
.mm-layer .lbg-tm-side { gap: 10px; }
.mm-layer .lbg-tm-rnome { font-size: .9rem; font-weight: 800; color: var(--p-ink); line-height: 1.25; letter-spacing: -.2px; }
.mm-layer .lbg-tm-rsub { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 4px; font-size: .7rem; color: var(--p-muted); }
.mm-layer .lbg-tm-rlinha { font-size: .7rem; font-weight: 600; color: var(--p-text); margin-top: 8px; }
.mm-layer .lbg-tm-nums { margin-top: 10px; }
.mm-layer .lbg-tm-modelo { display: flex; gap: 8px; align-items: flex-start; font-size: .76rem; color: var(--p-ink); margin-bottom: 8px; }
.mm-layer .lbg-tm-modelo > i { color: var(--p-purple); font-size: 18px; }
.mm-layer .lbg-tm-catalogo .mm-btn { width: 100%; }
.mm-layer .lbg-tm-outro { display: flex; gap: 6px; margin-top: 8px; }
.mm-layer .lbg-tm-outro select { flex: 1; min-width: 0; }
.mm-layer .lbg-tm-catnota { margin-top: 6px; }
.mm-layer .prmd-field.sm { padding: .34rem .45rem; font-size: .74rem; border-radius: 8px; }
.mm-layer .prmd-field.err { border-color: var(--p-red) !important; box-shadow: 0 0 0 3px rgba(220,38,38,.12); }

/* conferência (erros/avisos ao vivo) */
.mm-layer .lbg-conf-item {
    display: flex; gap: 6px; align-items: flex-start; width: 100%; text-align: left; margin-top: 6px;
    padding: 6px 8px; border-radius: 9px; font-size: .68rem; font-weight: 600; line-height: 1.4; border: 1px solid transparent;
}
.mm-layer .lbg-conf-item i { font-size: 14px; flex: none; margin-top: 1px; }
.mm-layer .lbg-conf-item.erro { background: var(--p-red-soft); border-color: var(--p-red-line); color: var(--p-red); }
.mm-layer button.lbg-conf-item.erro:hover { filter: brightness(.97); }
.mm-layer .lbg-conf-item.aviso { background: var(--p-yellow-soft); border-color: var(--p-yellow-line); color: var(--p-yellow); }

/* abas do modal */
.mm-layer .lbg-tabs { display: flex; gap: 2px; border-bottom: 1px solid var(--p-border); margin: -4px 0 2px; flex: none; }
.mm-layer .lbg-tab {
    position: relative; display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 12px;
    border: none; background: transparent; color: var(--p-muted); font-size: .76rem; font-weight: 700;
    border-bottom: 2.5px solid transparent; margin-bottom: -1px; white-space: nowrap;
}
.mm-layer .lbg-tab i { font-size: 15px; }
.mm-layer .lbg-tab:hover { color: var(--p-blue); }
.mm-layer .lbg-tab.on { color: var(--p-blue); border-bottom-color: var(--p-blue-light); font-weight: 800; }
.mm-layer .lbg-tab .mm-count { padding: 0 .42rem; font-size: .6rem; }
.mm-layer .lbg-tab-err { width: 7px; height: 7px; border-radius: 50%; background: var(--p-red); display: inline-block; }

/* grade de analitos */
.mm-layer .lbg-gbar { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.mm-layer .lbg-agrid-wrap { border: 1px solid var(--p-border); border-radius: 12px; overflow: auto; }
.mm-layer .lbg-agrid { font-size: .74rem; }
.mm-layer .lbg-agrid th { padding: 7px 6px !important; }
.mm-layer .lbg-agrid td { padding: 4px 5px !important; vertical-align: middle !important; }
.mm-layer .lbg-agrid .lbg-col-ord { width: 30px; }
.mm-layer .lbg-agrid .lbg-col-cod { width: 108px; }
.mm-layer .lbg-agrid .lbg-col-grp { width: 120px; }
.mm-layer .lbg-agrid .lbg-col-tipo { width: 112px; }
.mm-layer .lbg-agrid .lbg-col-un { width: 92px; }
.mm-layer .lbg-agrid .lbg-col-casas { width: 58px; }
.mm-layer .lbg-agrid td.acoes { width: 92px; }
.mm-layer .lbg-ord { display: flex; flex-direction: column; gap: 0; }
.mm-layer .lbg-ord .lbg-ib { width: 20px; height: 15px; font-size: 14px; border-radius: 4px; }
.mm-layer .lbg-a-cod { text-transform: uppercase; }
.mm-layer .lbg-a-casas { text-align: center; padding-left: .2rem !important; padding-right: .2rem !important; }
.mm-layer .lbg-a-det { font-size: .68rem; max-width: 260px; }
.mm-layer .lbg-a-det > * { margin-right: 4px; }
.mm-layer .lbg-fx { display: inline-flex; align-items: center; gap: 4px; max-width: 250px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .68rem; color: var(--p-teal); }
.mm-layer .lbg-arow.titulo td { background: var(--p-soft); }
.mm-layer .lbg-arow.titulo .lbg-a-nome { font-weight: 800; }
.mm-layer .lbg-arow.removido td { background: color-mix(in srgb, var(--p-red-soft) 70%, var(--p-surface)); }
.mm-layer .lbg-arow.removido input, .mm-layer .lbg-arow.removido select { text-decoration: line-through; opacity: .7; }
.mm-layer .lbg-arow.inativo td { opacity: .6; }
.mm-layer .lbg-arow.erro td:first-child { box-shadow: inset 3px 0 0 var(--p-red); }
.mm-layer .lbg-a-abrir.on { color: var(--p-blue); background: var(--p-blue-soft); }
.mm-layer .lbg-adet-row > td { background: var(--p-soft) !important; padding: 0 !important; }
.mm-layer .lbg-adet { padding: 10px 12px 12px; border-top: 1px dashed var(--p-border); border-bottom: 1px solid var(--p-border); }
.mm-layer .lbg-adet .mm-fgrid { gap: 10px; }
.mm-layer .lbg-adet .mm-f-err { margin: 0 0 6px; }
.mm-layer .lbg-a-flags { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; padding-top: 18px; }
.mm-layer .lbg-a-uso { margin-top: 8px; }
.mm-layer .lbg-ajuda { font-size: .66rem; font-weight: 500; color: var(--p-muted); line-height: 1.55; background: var(--p-surface); border: 1px solid var(--p-border); border-radius: 10px; padding: 8px 10px; align-self: start; }
.mm-layer .lbg-ajuda .mm-mono { font-size: .64rem; color: var(--p-teal); }
.mm-layer .lbg-codes { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.mm-layer .lbg-code {
    font: 700 .62rem var(--p-mono); padding: 2px 6px; border-radius: 6px; border: 1px solid var(--p-border);
    background: var(--p-surface); color: var(--p-muted);
}
.mm-layer .lbg-code:hover { border-color: var(--p-teal-line); color: var(--p-teal); background: var(--p-teal-soft); }

/* referências */
.mm-layer .lbg-ref-nota { margin-top: 0; }
.mm-layer .lbg-rcard { border: 1px solid var(--p-border); border-radius: 12px; background: var(--p-surface); overflow: hidden; }
.mm-layer .lbg-rcard.sem { border-color: var(--p-orange-line); }
.mm-layer .lbg-rcard.antigas { border-style: dashed; }
.mm-layer .lbg-rhead { display: flex; align-items: center; gap: 8px; padding: 8px 12px; background: var(--p-soft); font-size: .76rem; flex-wrap: wrap; }
.mm-layer .lbg-rrow {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 12px; border-top: 1px solid var(--p-border-soft);
}
.mm-layer .lbg-rrow.inativa { opacity: .6; }
.mm-layer .lbg-rrow.erro { box-shadow: inset 3px 0 0 var(--p-red); }
.mm-layer .lbg-rf { display: flex; align-items: center; gap: 5px; }
.mm-layer .lbg-rf .prmd-field { width: 86px; }
.mm-layer .lbg-rf.idade select.prmd-field { width: 80px; }
.mm-layer .lbg-rf.texto { flex: 1; min-width: 180px; font-size: .72rem; }
.mm-layer .lbg-rf.texto .prmd-field { width: 100%; }
.mm-layer .lbg-rf.estado { gap: 8px; margin-left: auto; }
.mm-layer .lbg-rf.vals.fem .lbg-rl { color: var(--p-pink); }
.mm-layer .lbg-rl { font-size: .58rem; font-weight: 800; letter-spacing: .7px; text-transform: uppercase; color: var(--p-faint); min-width: 40px; }
.mm-layer .lbg-sexo {
    height: 28px; padding: 0 9px; border-radius: 8px; border: 1px solid var(--p-border); background: var(--p-surface);
    color: var(--p-muted); font-size: .66rem; font-weight: 700; display: inline-flex; align-items: center; gap: 4px;
}
.mm-layer .lbg-sexo.on { border-color: var(--p-pink-line); background: var(--p-pink-soft); color: var(--p-pink); }
.mm-layer .lbg-aconf { color: var(--p-yellow); font-weight: 800; }
.mm-layer .lbg-rerr { flex-basis: 100%; font-size: .66rem; font-weight: 700; color: var(--p-red); }
.mm-layer .lbg-r-ligar { width: 240px !important; }

/* pré-visualização */
.mm-layer .lbg-pv-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.mm-layer .lbg-pv-idade { width: 70px; }
.mm-layer .lbg-pv .mm-card-body { padding: 10px 12px; }
.mm-layer .lbg-pv-form { display: flex; flex-direction: column; gap: 2px; }
.mm-layer .lbg-pv-linha { display: grid; grid-template-columns: minmax(0, 1.25fr) 116px 64px 18px minmax(0, 1fr); gap: 6px; align-items: center; padding: 2px 0; }
.mm-layer .lbg-pv-nome { font-size: .72rem; font-weight: 600; color: var(--p-ink); }
.mm-layer .lbg-pv-campo .prmd-field.num { text-align: right; }
.mm-layer .lbg-pv-un { font-size: .64rem; color: var(--p-faint); }
.mm-layer .lbg-pv-flag { font-size: .9rem; text-align: center; }
.mm-layer .lbg-pv-ref { font-size: .64rem; color: var(--p-muted); }
.mm-layer .lbg-pv-calc { display: flex; align-items: center; gap: 4px; justify-content: flex-end; font: 700 .76rem var(--p-mono); color: var(--p-teal); padding-right: 6px; }
.mm-layer .lbg-pv-tit, .mm-layer .lbg-pv-grp {
    font-size: .6rem; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; color: var(--p-faint);
    margin: 8px 0 2px; padding-bottom: 3px; border-bottom: 1px solid var(--p-border-soft);
}
.mm-layer .lbg-pv-tit { color: var(--p-blue); }
/* "papel" do laudo */
.mm-layer .lbg-pv-laudo .mm-card-body { background: #fff; color: #111827; border-radius: 0 0 14px 14px; font-family: Arial, Helvetica, sans-serif; }
.mm-layer .lbg-ld-exame { font-size: .82rem; font-weight: 800; letter-spacing: .3px; border-bottom: 2px solid #111827; padding-bottom: 3px; }
.mm-layer .lbg-ld-meta { font-size: .62rem; color: #4b5563; margin: 3px 0 6px; }
.mm-layer .lbg-ld { width: 100%; border-collapse: collapse; font-size: .7rem; }
.mm-layer .lbg-ld th { font-size: .58rem; font-weight: 700; text-transform: uppercase; color: #6b7280; text-align: left; padding: 3px 4px; border-bottom: 1px solid #d1d5db; }
.mm-layer .lbg-ld td { padding: 2px 4px; border-bottom: 1px dotted #e5e7eb; vertical-align: top; }
.mm-layer .lbg-ld .num { text-align: right; white-space: nowrap; }
.mm-layer .lbg-ld-grp td { font-weight: 800; font-size: .66rem; padding-top: 7px; border-bottom: 1px solid #9ca3af; }
.mm-layer .lbg-ld-ref { color: #374151; font-size: .64rem; }
.mm-layer .lbg-ld-par { display: inline-block; margin-left: 10px; color: #374151; }
.mm-layer .lbg-ld-leg { font-size: .58rem; color: #6b7280; margin-top: 8px; }

/* histórico */
.mm-layer .lbg-hist { padding: 4px 2px; }

/* catálogo padrão */
.mm-layer .lbg-cat-op { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.mm-layer .lbg-cat-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mm-layer .lbg-cat-tbl { border: 1px solid var(--p-border); border-radius: 12px; max-height: 420px; }
.mm-layer .lbg-cat-muda { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.mm-layer .lbg-cat-sem summary { cursor: pointer; font-size: .72rem; font-weight: 700; color: var(--p-muted); }
.mm-layer .lbg-cat-sem .lbg-sub { margin-top: 6px; }

/* ============================================================ Configurações (linhas parâmetro → campo) */
.lbg .lbg-param { display: flex; align-items: flex-start; gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--p-border-soft); }
.lbg .lbg-param:last-child { border-bottom: 0; }
.lbg .lbg-param-txt { flex: 1; min-width: 0; }
.lbg .lbg-param-tit { font-size: .8rem; font-weight: 700; color: var(--p-ink); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.lbg .lbg-param-sub { font-size: .7rem; color: var(--p-muted); margin-top: 2px; line-height: 1.45; }
.lbg .lbg-param-campo { flex: none; width: 280px; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.lbg .lbg-param-campo .prmd-field { width: 100%; }
.lbg .lbg-quem { font-size: .62rem; color: var(--p-faint); }
.lbg .lbg-laudo-prev {
    background: #fff; color: #111827; border: 1px solid var(--p-border); border-radius: 10px; padding: 14px 16px;
    font-family: Arial, Helvetica, sans-serif; box-shadow: var(--p-shadow-sm);
}
.lbg .lbg-laudo-cab { display: flex; gap: 12px; align-items: center; border-bottom: 2px solid #111827; padding-bottom: 8px; }
.lbg .lbg-laudo-cab img { max-height: 46px; max-width: 120px; object-fit: contain; }
.lbg .lbg-laudo-tit { font-size: .92rem; font-weight: 800; }
.lbg .lbg-laudo-subt { font-size: .66rem; color: #4b5563; }
.lbg .lbg-laudo-corpo { font-size: .64rem; color: #9ca3af; padding: 18px 0; text-align: center; border-bottom: 1px solid #e5e7eb; }
.lbg .lbg-laudo-ass { text-align: center; font-size: .66rem; margin-top: 14px; }
.lbg .lbg-laudo-ass .linha { width: 220px; border-top: 1px solid #111827; margin: 0 auto 3px; }
.lbg .lbg-laudo-rod { font-size: .58rem; color: #6b7280; margin-top: 10px; text-align: center; white-space: pre-line; }
.lbg .lbg-salvar-bar {
    position: sticky; bottom: 12px; z-index: 5; display: flex; align-items: center; gap: 10px; justify-content: flex-end;
    background: var(--p-surface); border: 1px solid var(--p-orange-line); border-radius: 14px; padding: 10px 14px; box-shadow: var(--p-shadow);
}

/* ============================================================ Valores de Referência */
.lbg .lbg-ref-tbl td:nth-child(2) { min-width: 210px; }
.lbg .lbg-ref-faixa { font-variant-numeric: tabular-nums; font-weight: 700; color: var(--p-ink); white-space: nowrap; }
.lbg .lbg-ref-faixa .f { color: var(--p-pink); }
.lbg .lbg-ref-txt { font-size: .7rem; color: var(--p-muted); max-width: 260px; }
.lbg .lbg-grupo-row td { background: var(--p-soft) !important; font-size: .7rem; font-weight: 800; color: var(--p-ink); }
.lbg .lbg-teste { display: flex; flex-direction: column; gap: 8px; }
.lbg .lbg-teste-row { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.lbg .lbg-teste-res { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; font-size: .74rem; }
.lbg .lbg-teste-res .v { font-weight: 800; color: var(--p-ink); text-align: right; }
.lbg .lbg-chk { width: 16px; height: 16px; accent-color: var(--p-blue-light); cursor: pointer; }
.lbg .lbg-selbar { display: flex; align-items: center; gap: 6px; margin-left: auto; flex-wrap: wrap; }
.lbg .lbg-selbar-n { font-size: .72rem; font-weight: 800; color: var(--p-blue); display: inline-flex; align-items: center; gap: 4px; }

/* ============================================================ Restrições por Unidade (matriz) */
.lbg .lbg-mx-wrap { overflow: auto; max-height: calc(100vh - 330px); border-radius: 0 0 14px 14px; }
.lbg .lbg-mx { border-collapse: separate; border-spacing: 0; font-size: .74rem; }
.lbg .lbg-mx th, .lbg .lbg-mx td { border-right: 1px solid var(--p-border-soft); border-bottom: 1px solid var(--p-border-soft); }
.lbg .lbg-mx thead th {
    position: sticky; top: 0; z-index: 3; background: var(--p-soft); padding: 6px 4px; vertical-align: bottom;
    font-size: .6rem; font-weight: 800; color: var(--p-muted); text-transform: uppercase; letter-spacing: .4px; min-width: 74px; max-width: 96px;
}
.lbg .lbg-mx thead th .u { display: block; white-space: normal; line-height: 1.2; text-align: center; }
.lbg .lbg-mx thead th .acts { display: flex; justify-content: center; gap: 2px; margin-top: 4px; }
.lbg .lbg-mx th.ex, .lbg .lbg-mx td.ex {
    position: sticky; left: 0; z-index: 2; background: var(--p-surface); text-align: left; min-width: 280px; max-width: 280px; padding: 6px 10px;
}
.lbg .lbg-mx thead th.ex { z-index: 4; background: var(--p-soft); }
.lbg .lbg-mx td.ex .acts { display: none; gap: 2px; float: right; }
.lbg .lbg-mx tr:hover td.ex .acts { display: inline-flex; }
.lbg .lbg-mx td.cel { padding: 0; text-align: center; height: 34px; }
.lbg .lbg-cel {
    width: 100%; height: 34px; border: none; background: transparent; font-size: 16px; color: color-mix(in srgb, var(--p-green) 45%, transparent);
    display: flex; align-items: center; justify-content: center;
}
.lbg .lbg-cel:hover { background: var(--p-blue-soft); color: var(--p-blue); }
.lbg .lbg-cel.bloq { background: var(--p-red-soft); color: var(--p-red); }
.lbg .lbg-cel.bloq:hover { filter: brightness(.96); }
.lbg .lbg-mx tr:hover td { background-color: color-mix(in srgb, var(--p-blue-soft) 45%, var(--p-surface)); }

/* ============================================================ Restrição Operador */
.lbg .lbg-op-lista { max-height: calc(100vh - 360px); overflow-y: auto; display: flex; flex-direction: column; gap: 6px; padding: 10px; }
.lbg .lbg-op-exames { max-height: calc(100vh - 420px); overflow-y: auto; }
.lbg .lbg-op-linha { display: grid; grid-template-columns: 34px minmax(0, 1fr) 150px minmax(0, 1fr); gap: 8px; align-items: center; padding: 6px 14px; border-bottom: 1px solid var(--p-border-soft); }
.lbg .lbg-op-linha.bloq { background: var(--p-red-soft); }
.lbg .lbg-op-linha .prmd-field { padding: .32rem .45rem; font-size: .72rem; border-radius: 8px; }
.lbg .lbg-op-grp { padding: 7px 14px; background: var(--p-soft); font-size: .62rem; font-weight: 800; letter-spacing: .8px; text-transform: uppercase; color: var(--p-faint); }

/* botão de envio invisível: Enter num campo do modal salva (o rodapé fica fora do <form>) */
.mm-layer .lbg-submit-oculto { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.lbg .mm-tbl tr.sel td { background: var(--p-blue-soft); }
.lbg .lbg-mx { width: 100%; }
.lbg .lbg-ref-faixa .lbg-sub { margin-left: 4px; }
.lbg .lbg-op-filtro { max-width: 150px !important; }
/* o miolo do modal é coluna flex com altura fixa: sem isto os cartões com overflow encolhem até sumir */
.mm-layer .lbg-tm-main > * { flex-shrink: 0; }
.mm-layer .lbg-tm-outro .mm-btn { width: auto; flex: none; }
.mm-layer .lbg-tm-outro select.prmd-field { width: auto; flex: 1; min-width: 0; }
.mm-layer kbd { font: 700 .6rem var(--p-mono); padding: 1px 5px; border-radius: 5px; background: var(--p-soft2); border: 1px solid var(--p-border); color: var(--p-muted); box-shadow: none; }
.lbg .lbg-op-linha > .mm-chip { justify-self: start; }
