body { background: #f6f7f9; }
.metric-card { min-height: 120px; }
.table-responsive { background: #fff; border-radius: 8px; padding: 8px; }
code { color: #34495e; }
.inline-form { margin: 0; }
.feedback-form { min-width: 220px; }

/* Formatacao condicional de linha (tabela tecnica /validacao).
   Usa !important para sobrepor o zebra do table-striped sem alterar dados. */
/* --- V1.9a (legado, mantido por compatibilidade) --- */
.row-format-green    > td { background-color: #d1e7dd !important; }
.row-format-yellow   > td { background-color: #fff3cd !important; }
.row-format-red      > td { background-color: #f8d7da !important; }
.row-format-red-yellow-text > td { background-color: #c0392b !important; color: #ffeb3b !important; }
.row-format-red-yellow-text > td a { color: #ffeb3b !important; text-decoration: underline; }

/* --- V1.9b: cor define variaveis; estilo decide como aplicar --- */
.cf-color-green     { --cf-bg:#d1e7dd; --cf-accent:#198754; --cf-text:#0f5132; }
.cf-color-yellow    { --cf-bg:#fff3cd; --cf-accent:#ffc107; --cf-text:#664d03; }
.cf-color-red       { --cf-bg:#f8d7da; --cf-accent:#dc3545; --cf-text:#842029; }
.cf-color-redyellow { --cf-bg:#c0392b; --cf-accent:#ffeb3b; --cf-text:#ffeb3b; }
.cf-color-blue      { --cf-bg:#cfe2ff; --cf-accent:#0d6efd; --cf-text:#084298; }
.cf-color-gray      { --cf-bg:#e2e3e5; --cf-accent:#6c757d; --cf-text:#41464b; }
.cf-color-purple    { --cf-bg:#e7d6f5; --cf-accent:#7e3ff2; --cf-text:#4b1f8f; }

.cf-row-background      > td { background-color: var(--cf-bg) !important; }
.cf-row-background-bold > td { background-color: var(--cf-bg) !important; font-weight: 700; }
.cf-left-border        > td:first-child { border-left: 6px solid var(--cf-accent) !important; }
.cf-text-only          > td { color: var(--cf-text) !important; font-weight: 600; }
/* badge: marcador lateral forte + leve fundo */
.cf-badge > td:first-child { border-left: 8px solid var(--cf-accent) !important; }
.cf-badge > td { background-color: color-mix(in srgb, var(--cf-bg) 35%, transparent) !important; }

/* vermelho_texto_amarelo: aplica o texto amarelo quando ha fundo */
.cf-color-redyellow.cf-row-background > td,
.cf-color-redyellow.cf-row-background-bold > td,
.cf-color-redyellow.cf-badge > td { color: var(--cf-text) !important; }
.cf-color-redyellow.cf-row-background > td a,
.cf-color-redyellow.cf-row-background-bold > td a { color: var(--cf-text) !important; text-decoration: underline; }

/* --- V1.12a: tokens de estilo por CELULA (aplicados no proprio <td>) --- */
/* contraste/acessibilidade: vermelho x amarelo (critico), amarelo x escuro (atencao) */
td.cf-critical-red-yellow { background-color:#c0392b !important; color:#ffeb3b !important; font-weight:700; }
td.cf-critical-red-yellow a { color:#ffeb3b !important; text-decoration:underline; }
td.cf-warning-yellow-dark { background-color:#ffe08a !important; color:#4a3b00 !important; font-weight:700; }
td.cf-custom-green { background-color:#d1e7dd !important; color:#0f5132 !important; font-weight:600; }
td.cf-custom-blue  { background-color:#cfe2ff !important; color:#084298 !important; font-weight:600; }
td.cf-legacy-row-style { font-weight:600; }

/* ===== Linha da listagem de RMCPs (PROMPT 06F §3/§21) ===================== */
/* Diagnostico e recomendacao LIMITADOS visualmente: a linha nao vira cartao
   alto. O conteudo integral vive nos formularios focados e nos relatorios. */
.rmcp-col-texto { max-width: 24rem; }
.rmcp-texto {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
/* Largura intermediaria: reduz espacamento sem sobrepor coluna nem cortar
   rotulo (§21). Em telas pequenas a barra vira um unico [Acoes] (Bootstrap). */
.rmcp-col-acoes { white-space: nowrap; }
@media (max-width: 1399.98px) {
  .rmcp-barra .btn { padding: .1rem .35rem; font-size: .75rem; }
  .rmcp-col-texto { max-width: 16rem; }
}
/* O motivo do bloqueio precisa alcancar o teclado: o botao desabilitado nao
   recebe foco, entao quem o recebe e o involucro. */
.rmcp-acao-bloqueada:focus { outline: 2px solid #0d6efd; outline-offset: 1px; }

/* ===== Modal de acoes da RMCP (PROMPT 06F-B §3) =========================== */
/* xl vira FULLSCREEN no celular: formulario longo nunca em popup apertado. */
@media (max-width: 575.98px) {
  .rmcp-modal-fullscreen-sm { margin: 0; max-width: 100%; height: 100%; }
  .rmcp-modal-fullscreen-sm .modal-content { height: 100%; border-radius: 0; }
}
#rmcp-modal .rmcp-clamp {
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ========================================================================= */
/* IDENTIDADE DA PRIORIDADE DA RMCP (PROMPT 06F-D) — FONTE UNICA do portal.  */
/*                                                                           */
/* Estes tokens sao a ORIGEM CONCEITUAL das cores de prioridade. Os          */
/* relatorios (rmcp_onepage.html / rmcp_historico.html) repetem os MESMOS    */
/* valores num :root local porque sao paginas de impressao isoladas, que     */
/* nao carregam este arquivo — os valores sao identicos por contrato e ha    */
/* teste garantindo que nao divirjam.                                        */
/*                                                                           */
/* PRIORIDADE != SITUACAO. Nao usar estas classes em badge de status         */
/* (aberta/fechada/cancelada), severidade de inspecao, alarme de sensor ou   */
/* retorno de formulario.                                                    */
/* ========================================================================= */
:root {
  --priority-p1-bg: #A40000;  --priority-p1-fg: #FFD54F;  --priority-p1-border: #6F0000;
  --priority-p2-bg: #F16B6B;  --priority-p2-fg: #111111;  --priority-p2-border: #B13E3E;
  --priority-p3-bg: #F4C542;  --priority-p3-fg: #111111;  --priority-p3-border: #B18A00;
}

.priority-badge {
  display: inline-block; border: 1.5px solid transparent; border-radius: 3px;
  padding: 1px 8px; font-weight: 700; font-size: .78rem; line-height: 1.35;
  text-transform: uppercase; text-align: center; min-width: 2.6rem;
  /* impressao: manter o fundo quando "graficos de fundo" estiver ativo */
  print-color-adjust: exact; -webkit-print-color-adjust: exact;
}
.priority-p1 {
  background: var(--priority-p1-bg); color: var(--priority-p1-fg);
  border-color: var(--priority-p1-border);
  /* P1 com destaque DISCRETAMENTE maior — sem animacao, sem piscar */
  border-width: 2.5px; letter-spacing: .4px;
}
.priority-p2 { background: var(--priority-p2-bg); color: var(--priority-p2-fg);
               border-color: var(--priority-p2-border); }
.priority-p3 { background: var(--priority-p3-bg); color: var(--priority-p3-fg);
               border-color: var(--priority-p3-border); }
/* valor ausente/desconhecido: estado CONTROLADO — nunca assume P3 */
.priority-none { background: transparent; color: #6c757d; border-color: #ced4da;
                 font-weight: 600; }

/* --- chips do filtro de prioridade: mesma identidade, dois estados ------- */
/* Nao selecionado guarda a identidade na BORDA e no texto; selecionado      */
/* preenche. A selecao nunca depende so da cor: o checkbox real permanece,   */
/* com foco de teclado e estado marcado.                                     */
.priority-chip { border-width: 1.5px; font-weight: 700; }
.priority-chip-p1 { background: transparent; color: var(--priority-p1-bg);
                    border-color: var(--priority-p1-bg); }
.priority-chip-p2 { background: transparent; color: var(--priority-p2-border);
                    border-color: var(--priority-p2-border); }
.priority-chip-p3 { background: transparent; color: var(--priority-p3-border);
                    border-color: var(--priority-p3-border); }
.btn-check:checked + .priority-chip-p1,
.priority-chip-p1.priority-chip-on { background: var(--priority-p1-bg);
  color: var(--priority-p1-fg); border-color: var(--priority-p1-border); }
.btn-check:checked + .priority-chip-p2,
.priority-chip-p2.priority-chip-on { background: var(--priority-p2-bg);
  color: var(--priority-p2-fg); border-color: var(--priority-p2-border); }
.btn-check:checked + .priority-chip-p3,
.priority-chip-p3.priority-chip-on { background: var(--priority-p3-bg);
  color: var(--priority-p3-fg); border-color: var(--priority-p3-border); }
.btn-check:focus-visible + .priority-chip { outline: 2px solid #0d6efd;
                                            outline-offset: 1px; }
/* contador dentro do chip: legivel nos dois estados */
.priority-chip .priority-count { background: #fff; color: #111; border: 1px solid #0002;
  border-radius: 2px; padding: 0 .3rem; margin-left: .3rem; font-weight: 700; }
