/* Faturamento PS — complementos do app.css (identidade OM30 compartilhada com o painelps). */
.cp { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 2px 6px; margin: -2px -6px; border: 0; border-radius: 6px; background: none; color: inherit; font: inherit; text-align: left; cursor: copy; }
.cp:hover { background: #f1f3f5; }
.cp:focus-visible { outline: 2px solid var(--grafite); outline-offset: 1px; }
.cp::after { content: ""; flex: none; width: 13px; height: 13px; opacity: 0; transition: opacity .12s;
  background: no-repeat center/13px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6775' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E"); }
.cp:hover::after, .cp:focus-visible::after { opacity: 1; }
.cp.copiado { background: #e6f4ea; }
.cp.forte { font-weight: 600; }
.cp.mono { font-variant-numeric: tabular-nums; letter-spacing: .2px; white-space: nowrap; }

tr.faturado td { background: #fafbfc; }
tr.faturado td:not(.col-fat) { color: var(--muted); }
.col-fat { width: 1%; white-space: nowrap; }
.tick { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: 13px; font-weight: 500; user-select: none; }
.tick input { width: 18px; height: 18px; accent-color: #2b8a3e; cursor: pointer; }
.tick small { display: block; font-size: 11.5px; font-weight: 400; color: var(--muted); }

.grade-kpi.quatro { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.selo-cns { display: inline-block; margin-left: 6px; padding: 1px 7px; border-radius: 999px; font-size: 11px; font-weight: 600; color: var(--warn); background: var(--warn-soft); }

.aviso-topo { display: flex; gap: 10px; align-items: flex-start; padding: 12px 16px; margin-bottom: 16px; border-radius: 12px; background: #f1f3f5; color: var(--ink-2); font-size: 13px; }
.aviso-topo b { color: var(--ink); }

.toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%) translateY(20px); opacity: 0; padding: 10px 16px; border-radius: 10px; background: var(--grafite); color: #fff; font-size: 13px; font-weight: 500; transition: .18s; pointer-events: none; z-index: 60; }
.toast.on { opacity: 1; transform: translateX(-50%) translateY(0); }

@media (max-width: 760px) {
  .grade-kpi.quatro { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
