/* Possibility Machine — additions on top of lawsphere.css */

.pm-hero {
  background: linear-gradient(135deg, var(--ls-teal-900), var(--ls-teal-700));
  color: #fff; border-radius: var(--ls-radius-lg);
  padding: 28px 30px; margin-bottom: 24px;
}
.pm-hero h1 { font-size: 24px; font-weight: 800; letter-spacing: -0.02em; }
.pm-hero p { color: #cfe2de; font-size: 14px; margin-top: 6px; max-width: 640px; }

/* Layered universe */
.pm-universe { display: flex; gap: 18px; overflow-x: auto; padding-bottom: 10px; }
.pm-layer { min-width: 220px; flex: 1; }
.pm-layer-title {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .08em; color: var(--ls-muted); margin-bottom: 10px;
  border-bottom: 2px solid var(--ls-teal-100); padding-bottom: 6px;
}
.pm-node {
  display: block; background: var(--ls-surface); border: 1px solid var(--ls-border);
  border-radius: 9px; padding: 8px 11px; margin-bottom: 7px; font-size: 12.5px;
  font-weight: 600; color: var(--ls-ink); box-shadow: var(--ls-shadow-sm);
  transition: var(--ls-transition);
}
.pm-node:hover { border-color: var(--ls-teal-600); text-decoration: none; transform: translateY(-1px); box-shadow: var(--ls-shadow); }
.pm-node .pm-node-domain { display: block; font-size: 10.5px; font-weight: 500; color: var(--ls-muted); margin-top: 2px; }
.pm-node.emergent { border-color: var(--ls-gold); background: var(--ls-gold-soft); }
.pm-node.missing { border-style: dashed; border-color: var(--ls-danger); color: var(--ls-danger); }

/* Type chips */
.pm-chip {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 10.5px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .05em; padding: 3px 9px; border-radius: 999px;
  background: var(--ls-teal-100); color: var(--ls-teal-800);
}
.pm-chip.gold { background: var(--ls-gold-soft); color: var(--ls-warning); }
.pm-chip.danger { background: #fbe4e0; color: var(--ls-danger); }
.pm-chip.info { background: #e0eafc; color: var(--ls-info); }
.pm-chip.neutral { background: #eef2f1; color: var(--ls-muted); }

/* Score meters */
.pm-score { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.pm-score .lbl { width: 110px; font-size: 12px; color: var(--ls-muted); text-transform: capitalize; }
.pm-score .val { width: 44px; font-size: 12px; font-weight: 700; color: var(--ls-teal-900); text-align: right; font-variant-numeric: tabular-nums; }
.pm-score .bar { flex: 1; height: 6px; background: var(--ls-border); border-radius: 999px; overflow: hidden; }
.pm-score .bar > span { display: block; height: 100%; background: var(--ls-teal-700); border-radius: 999px; }
.pm-score .bar > span.weak { background: var(--ls-danger); }
.pm-score .bar > span.mid { background: var(--ls-gold); }

/* Innovation card */
.pm-card { border: 1px solid var(--ls-border); border-radius: var(--ls-radius-lg); background: var(--ls-surface); overflow: hidden; }
.pm-card-head { padding: 16px 20px; border-bottom: 1px solid var(--ls-border); display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.pm-card-title { font-size: 15px; font-weight: 800; color: var(--ls-teal-900); }
.pm-card-emergent { font-size: 12.5px; color: var(--ls-teal-700); margin-top: 3px; font-weight: 600; }
.pm-bigscore { text-align: center; min-width: 74px; }
.pm-bigscore .n { font-size: 24px; font-weight: 800; color: var(--ls-teal-900); }
.pm-bigscore .l { font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--ls-muted); }
.pm-card-body { padding: 16px 20px; }
.pm-inputs { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.pm-input { background: var(--ls-teal-50); border: 1px solid var(--ls-teal-100); padding: 4px 10px; border-radius: 7px; font-size: 12px; font-weight: 600; color: var(--ls-teal-800); }
.pm-plus { color: var(--ls-muted); font-weight: 700; align-self: center; }

/* Pipeline steps */
.pm-steps { list-style: none; }
.pm-steps li { display: flex; gap: 10px; padding: 7px 0; border-bottom: 1px dashed var(--ls-border); font-size: 13px; }
.pm-steps li:last-child { border-bottom: none; }
.pm-steps .step-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--ls-teal-700); margin-top: 5px; flex-shrink: 0; }
.pm-steps .step-name { font-weight: 700; color: var(--ls-teal-800); text-transform: capitalize; min-width: 110px; }
.pm-steps .step-detail { color: var(--ls-muted); flex: 1; }
.pm-steps .step-at { color: var(--ls-muted); font-size: 11px; }

/* Capability checkbox picker */
.pm-cap-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; max-height: 340px; overflow-y: auto; padding: 2px; }
.pm-cap-pick { display: flex; align-items: flex-start; gap: 8px; padding: 9px 11px; border: 1px solid var(--ls-border); border-radius: 9px; font-size: 12.5px; cursor: pointer; background: var(--ls-surface); }
.pm-cap-pick:hover { border-color: var(--ls-teal-600); }
.pm-cap-pick input { margin-top: 2px; }
.pm-cap-pick.picked { border-color: var(--ls-teal-800); background: var(--ls-teal-50); }
@media (max-width: 900px) { .pm-cap-grid { grid-template-columns: 1fr 1fr; } }

/* Decomposition tree */
.pm-tree { font-size: 13.5px; }
.pm-tree ul { list-style: none; margin-left: 18px; border-left: 1px solid var(--ls-border); padding-left: 16px; }
.pm-tree li { padding: 4px 0; }
.pm-tree .lbl { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--ls-muted); margin-right: 6px; }

/* Verdict badges map */
.pm-verdict-exists, .pm-verdict-duplicate { }
