/* ==========================================================================
   Intelligence — signals, MEDDIC scorecard, risk, briefing, radar, ICP.
   ========================================================================== */

/* --- signal chips: the measured facts the AI reasons over ---------------- */
.signals { display: flex; flex-wrap: wrap; gap: 6px; }
.signal {
  display: inline-flex; align-items: baseline; gap: 5px;
  padding: 4px 9px; border-radius: var(--r-xs);
  background: var(--surface-3);
  font-size: var(--fs-xs); white-space: nowrap;
  transition: transform var(--t-fast) var(--ease);
}
.signal:hover { transform: translateY(-1px); }
.signal__k { color: var(--text-4); font-weight: 550; }
.signal__v { font-weight: 640; font-variant-numeric: tabular-nums; }
.signal.is-warn { background: var(--amber-soft); }
.signal.is-warn .signal__v, .signal.is-warn .signal__k { color: var(--amber); }
.signal.is-bad { background: var(--red-soft); }
.signal.is-bad .signal__v, .signal.is-bad .signal__k { color: var(--red); }
.signal.is-good { background: var(--green-soft); }
.signal.is-good .signal__v, .signal.is-good .signal__k { color: var(--green); }

/* --- risk banner --------------------------------------------------------- */
.risk-banner {
  display: flex; align-items: center; gap: var(--sp-4);
  padding: var(--sp-4);
  border-radius: var(--r-lg);
  background: var(--hue-soft, var(--surface-3));
  border: var(--hairline) solid color-mix(in srgb, var(--hue, var(--text-3)) 32%, transparent);
  animation: popIn var(--t-slow) var(--ease-spring) both;
}
.risk-banner__level { flex: 0 0 auto; width: 78px; text-align: center; }
.risk-banner__word {
  font-size: var(--fs-lg); font-weight: 720; letter-spacing: -0.02em;
  color: var(--hue, var(--text)); text-transform: uppercase;
}
.risk-banner__sub { font-size: var(--fs-xs); color: var(--text-3); margin-top: 2px; }
.risk-banner__body { min-width: 0; flex: 1 1 auto; }

.driver { display: flex; gap: 9px; align-items: flex-start; padding: 7px 0; }
.driver + .driver { box-shadow: inset 0 var(--hairline) 0 var(--separator); }
.driver__sev {
  flex: 0 0 auto; width: 6px; height: 6px; border-radius: 50%;
  margin-top: 7px; background: var(--hue, var(--text-4));
}
.driver__signal { font-size: var(--fs-sm); font-weight: 560; }
.driver__why { font-size: var(--fs-sm); color: var(--text-3); margin-top: 1px; }

/* --- MEDDIC scorecard ---------------------------------------------------- */
.meddic { display: grid; grid-template-columns: repeat(auto-fit, minmax(215px, 1fr)); gap: var(--sp-2); }
.meddic__cell {
  padding: 10px 12px; border-radius: var(--r-md);
  background: var(--surface-2);
  border: var(--hairline) solid var(--separator);
  border-left: 3px solid var(--hue, var(--separator-firm));
  animation: riseIn var(--t) var(--ease) both;
  animation-delay: calc(var(--i, 0) * 30ms);
}
.meddic__cell.is-confirmed { --hue: var(--green); background: var(--green-soft); }
.meddic__cell.is-partial   { --hue: var(--amber); background: var(--amber-soft); }
.meddic__label { font-size: var(--fs-sm); font-weight: 640; display: flex; align-items: center; gap: 5px; }
.meddic__status {
  margin-left: auto; font-size: 9.5px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.05em; color: var(--hue, var(--text-4));
}
.meddic__text { font-size: var(--fs-xs); color: var(--text-3); margin-top: 4px; line-height: 1.45; }

/* --- objections ---------------------------------------------------------- */
.objection {
  padding: var(--sp-3) var(--sp-4); border-radius: var(--r-md);
  background: var(--surface-2); border: var(--hairline) solid var(--separator);
  animation: riseIn var(--t) var(--ease) both; animation-delay: calc(var(--i, 0) * 40ms);
}
.objection__head { display: flex; align-items: center; gap: 7px; margin-bottom: 6px; }
.objection__text { font-size: var(--fs-base); font-weight: 560; }
.objection__quote {
  font-size: var(--fs-sm); color: var(--text-3); font-style: italic;
  border-left: 2px solid var(--separator-firm); padding-left: 9px; margin: 7px 0;
}
.objection__response { font-size: var(--fs-sm); color: var(--text-2); line-height: var(--lh-loose); }

/* --- next best action ---------------------------------------------------- */
.nba {
  border-radius: var(--r-lg); padding: var(--sp-4);
  background: linear-gradient(150deg, var(--blue-50), transparent 72%);
  border: var(--hairline) solid color-mix(in srgb, var(--blue) 28%, transparent);
  animation: popIn var(--t-slow) var(--ease-spring) both;
}
.nba__action { font-size: var(--fs-lg); font-weight: 660; letter-spacing: -0.02em; }
.nba__why { font-size: var(--fs-sm); color: var(--text-2); margin-top: 5px; line-height: var(--lh-loose); }
.nba__draft {
  margin-top: var(--sp-3); padding: 11px 13px;
  border-radius: var(--r-md); background: var(--surface);
  border: var(--hairline) solid var(--separator);
  font-size: var(--fs-sm); line-height: var(--lh-loose); white-space: pre-wrap;
}

/* --- forecast ------------------------------------------------------------ */
.forecast__bar { height: 10px; border-radius: var(--r-pill); background: var(--surface-3); overflow: hidden; }
.forecast__fill {
  height: 100%; width: 0; border-radius: var(--r-pill);
  background: linear-gradient(90deg, var(--blue), var(--purple));
  transition: width var(--t-lazy) var(--ease);
}
.forecast__pct {
  font-size: var(--fs-2xl); font-weight: 700; letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums; line-height: 1;
}

/* --- portfolio intelligence --------------------------------------------- */
.brief {
  padding: var(--sp-5); border-radius: var(--r-xl);
  background: linear-gradient(145deg, var(--purple-50), transparent 68%);
  border: var(--hairline) solid color-mix(in srgb, var(--purple) 26%, transparent);
  animation: popIn var(--t-slow) var(--ease-spring) both;
}
.brief__headline {
  font-size: var(--fs-xl); font-weight: 660; letter-spacing: -0.025em;
  line-height: var(--lh-tight);
}
.brief__stat {
  display: inline-flex; align-items: center; gap: 6px; margin-top: var(--sp-3);
  padding: 5px 11px; border-radius: var(--r-pill);
  background: var(--surface); border: var(--hairline) solid var(--separator);
  font-size: var(--fs-sm); font-weight: 560;
}

.radar-row {
  display: flex; gap: var(--sp-3); align-items: flex-start;
  padding: var(--sp-3) var(--sp-4);
  border-radius: var(--r-md);
  border-left: 3px solid var(--hue, var(--text-4));
  background: var(--surface-2);
  animation: riseIn var(--t) var(--ease) both; animation-delay: calc(var(--i, 0) * 40ms);
  transition: background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
  width: 100%; text-align: left;
}
.radar-row:hover { background: var(--surface-3); transform: translateX(2px); }
.radar-row.is-clickable { cursor: pointer; }
.radar-row__go {
  flex: 0 0 auto; align-self: center; color: var(--text-4);
  opacity: 0; transform: translateX(-5px);
  transition: opacity var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}
.radar-row.is-clickable:hover .radar-row__go { opacity: 1; transform: none; }
.radar-row__name { font-size: var(--fs-base); font-weight: 600; }
.radar-row__ev { font-size: var(--fs-sm); color: var(--text-3); margin-top: 2px; }
.radar-row__play { font-size: var(--fs-sm); color: var(--text-2); margin-top: 6px; }

.icp-col { display: flex; flex-direction: column; gap: 7px; }
.icp-item {
  display: flex; gap: 8px; align-items: flex-start;
  font-size: var(--fs-sm); line-height: var(--lh-loose);
}
.icp-item .icon { flex: 0 0 auto; margin-top: 3px; }

/* --- phase-grouped board ------------------------------------------------- */
.phase-group { display: flex; flex-direction: column; min-height: 0; flex: 0 0 auto; }
.phase-group__head {
  display: flex; align-items: center; gap: 8px;
  padding: 0 var(--sp-1) var(--sp-2);
  flex: 0 0 auto;
}
.phase-group__label {
  font-size: var(--fs-xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: var(--tracking-wide); color: var(--hue, var(--text-4));
}
.phase-group__n {
  font-size: var(--fs-xs); color: var(--text-4); font-variant-numeric: tabular-nums;
}
.phase-group__rule {
  flex: 1 1 auto; height: var(--hairline);
  background: linear-gradient(90deg, color-mix(in srgb, var(--hue, var(--separator)) 45%, transparent), transparent);
}
.phase-group__cols { display: flex; gap: var(--sp-3); flex: 1 1 auto; min-height: 0; }
