/* critical_path.css — the CPA network lab (see critical_path.js).
   Exam notation: split-circle event nodes, activity arrows; the critical route glows. */

.cpa .lv-stage { padding: 8px 6px; }
.cpa .lv-stage svg { display: block; width: 100%; height: auto; }

/* event nodes: earliest event time over latest event time */
.cpa-node circle { fill: rgba(8, 14, 30, 0.9); stroke: #8fa8cf; stroke-width: 1.6; }
.cpa-node line { stroke: rgba(143, 168, 207, 0.55); stroke-width: 1.1; }
.cpa-est { fill: #7dd3fc; font-size: 10px; font-weight: 700; font-variant-numeric: tabular-nums; }
.cpa-lft { fill: #fda4af; font-size: 10px; font-weight: 700; font-variant-numeric: tabular-nums; }
.cpa-keylab { fill: #8a9bb0; font-size: 9px; font-weight: 600; letter-spacing: 0.04em; }
.cpa-legend text { fill: #8a9bb0; font-size: 9px; }

/* activities: the critical route is bold amber, slack routes recede */
.cpa-arrow { stroke-linecap: round; }
.cpa-crit .cpa-arrow { stroke: #fbbf24; stroke-width: 3; color: #fbbf24; filter: drop-shadow(0 0 5px rgba(251, 191, 36, 0.5)); }
.cpa-slack .cpa-arrow { stroke: #56688a; stroke-width: 1.8; color: #56688a; stroke-dasharray: 7 4; }
.cpa-act, .cpa-float {
  paint-order: stroke; stroke: #0b1220; stroke-width: 2.6px; stroke-linejoin: round;
  font-variant-numeric: tabular-nums;
}
.cpa-act { fill: #e8eef6; font-size: 11px; font-weight: 700; }
.cpa-slack .cpa-act { fill: #9fb0c4; }
.cpa-float { fill: #7dd3fc; font-size: 9px; font-weight: 600; }
