/* Certified Payroll & Prevailing Wage (.cp) — Signal in-slot page. Tokens are injected on
   .cp-root at runtime (light + dark) by the viewmodel; this file is structure/animation only,
   fully namespaced. Verbatim translation of
   docs/design/export/Certified Payroll & Prevailing Wage.dc.html. */
.cp-root { font-family: 'Plus Jakarta Sans', system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
.cp-root *,
.cp-root *::before,
.cp-root *::after { box-sizing: border-box; }
.cp-root ::selection { background: var(--brand-200, #C2CCFB); }
.cp-mono { font-family: 'IBM Plex Mono', ui-monospace, monospace; }

.cp-row { transition: background .12s; }
.cp-row:hover { background: var(--surface-2, #FAFBFE); }
.cp-act { transition: filter .14s; }
.cp-act:hover { filter: brightness(.97); }

/* restitution editor inputs (drawer) */
.cp-in {
  width: 100%; font: 600 13px 'IBM Plex Mono', monospace; color: var(--text, #1A1D2E);
  padding: 10px 12px; border: 1.5px solid var(--border, #E5E8F2); border-radius: 10px;
  background: var(--surface-2, #FAFBFE); outline: none;
}
.cp-in:focus { border-color: var(--brand-500, #5E76EE); box-shadow: 0 0 0 3px rgba(94,118,238,.15); }

@keyframes cp-pop  { 0% { transform: translateY(8px); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } }
@keyframes cp-fade { 0% { opacity: 0; } 100% { opacity: 1; } }
@keyframes cp-slide { 0% { transform: translateX(34px); opacity: .4; } 100% { transform: translateX(0); opacity: 1; } }
.cp-toast { animation: cp-pop .25s var(--ease, cubic-bezier(.2,.8,.2,1)); }
.cp-scrim { animation: cp-fade .18s ease; }
.cp-drawer { animation: cp-slide .26s var(--ease, cubic-bezier(.2,.8,.2,1)); }

/* metric strip + main grid collapse on narrow / mobile widths */
@media (max-width: 1080px) {
  .cp-metrics { grid-template-columns: repeat(2, 1fr) !important; }
  .cp-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 560px) {
  .cp-metrics { grid-template-columns: 1fr !important; }
}
