#noviVisualIntelligence {
  --novi-accent: #20f6ff;
  --novi-good: #6dff7a;
  --novi-warn: #ffd45c;
  --novi-bad: #ff6b79;
  --novi-panel: rgba(3, 15, 31, .72);
  --novi-line: rgba(92, 224, 255, .22);
  --novi-text: #e9fbff;
  --novi-muted: #7fb3c4;
  margin-top: 18px;
  color: var(--novi-text);
}
#noviVisualIntelligence * { box-sizing: border-box; }
.nv-head {
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  margin-bottom:10px; padding:10px 12px; border:1px solid var(--novi-line);
  background:rgba(3,20,40,.55); border-radius:12px;
}
.nv-title { font-weight:800; letter-spacing:.08em; }
.nv-status { font-size:.8rem; color:var(--novi-good); }
.nv-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:12px; }
.nv-card {
  background:var(--novi-panel); border:1px solid var(--novi-line); border-radius:14px;
  padding:12px; overflow:hidden; position:relative;
}
.nv-card h3 { margin:0 0 8px; font-size:.9rem; letter-spacing:.04em; }
.nv-sub { color:var(--novi-muted); font-size:.74rem; }
.nv-forecast { grid-column:span 12; }
.nv-execs { grid-column:span 7; }
.nv-meta { grid-column:span 5; min-height:310px; }
.nv-truth { grid-column:span 6; min-height:310px; }
.nv-equity { grid-column:span 6; min-height:310px; }
.nv-regime { grid-column:span 5; min-height:330px; }
.nv-events { grid-column:span 7; min-height:330px; }

@media(max-width:980px){
  .nv-execs,.nv-meta,.nv-truth,.nv-equity,.nv-regime,.nv-events { grid-column:span 12; }
}
.nv-svg { width:100%; height:auto; display:block; }
.nv-axis { stroke:rgba(160,230,255,.18); stroke-width:1; }
.nv-path { fill:none; stroke:var(--novi-accent); stroke-width:2.3; }
.nv-path2 { fill:none; stroke:#88ff9a; stroke-width:2; }
.nv-area { fill:rgba(32,246,255,.08); }
.nv-point { fill:#081729; stroke:var(--novi-accent); stroke-width:2; }
.nv-point.active { animation:nvPulse 1.2s ease-out 1; }
.nv-label { fill:#cfeef6; font-size:12px; }
.nv-small { fill:#78a8b6; font-size:10px; }
.nv-value { fill:#ffffff; font-size:12px; font-weight:700; }
@keyframes nvPulse {
  0%{ filter:drop-shadow(0 0 0 rgba(32,246,255,0)); r:5; }
  40%{ filter:drop-shadow(0 0 9px rgba(32,246,255,.95)); r:8; }
  100%{ filter:drop-shadow(0 0 0 rgba(32,246,255,0)); r:5; }
}

.exec-row { display:grid; grid-template-columns:84px 1fr 96px 74px; gap:8px; align-items:center; margin:8px 0; }
.exec-name { font-weight:800; font-size:.78rem; }
.exec-track { height:12px; border-radius:999px; background:rgba(255,255,255,.06); overflow:hidden; position:relative; }
.exec-fill { height:100%; width:0%; border-radius:999px; background:linear-gradient(90deg, rgba(32,246,255,.45), rgba(32,246,255,.96)); transition:width .8s ease; }
.exec-row.leader .exec-track { box-shadow:0 0 12px rgba(32,246,255,.25); }
.exec-row.leader .exec-name { color:var(--novi-accent); }
.exec-action,.exec-equity { font-size:.75rem; text-align:right; }
.exec-badge { font-size:.65rem; color:var(--novi-muted); }

.meta-wrap { position:relative; width:100%; min-height:260px; }
.meta-orb {
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:112px; height:112px; border-radius:50%; display:flex; flex-direction:column;
  align-items:center; justify-content:center; border:2px solid var(--novi-accent);
  background:radial-gradient(circle at 35% 30%, rgba(32,246,255,.24), rgba(3,18,36,.94) 64%);
  box-shadow:0 0 22px rgba(32,246,255,.22);
  transition:box-shadow .4s ease, transform .4s ease;
}
.meta-orb.changed { animation:metaPulse .9s ease-out 1; }
@keyframes metaPulse {
  0%{ transform:translate(-50%,-50%) scale(1); }
  45%{ transform:translate(-50%,-50%) scale(1.08); box-shadow:0 0 38px rgba(32,246,255,.55); }
  100%{ transform:translate(-50%,-50%) scale(1); }
}
.meta-action { font-weight:900; font-size:1.05rem; }
.meta-conf { font-size:.8rem; color:var(--novi-muted); }
.meta-node {
  position:absolute; width:72px; text-align:center; font-size:.68rem; font-weight:800;
  color:#bde7f0;
}
.meta-node span { display:block; font-weight:400; color:var(--novi-muted); margin-top:2px; }
.meta-line { stroke:rgba(78,216,255,.35); stroke-linecap:round; transition:stroke-width .6s ease, opacity .6s ease; }

.truth-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:8px; }
.truth-kpi { background:rgba(255,255,255,.035); border:1px solid var(--novi-line); border-radius:10px; padding:8px; }
.truth-kpi b { display:block; font-size:1rem; }
.truth-kpi span { color:var(--novi-muted); font-size:.66rem; }
.regime-legend { display:grid; grid-template-columns:1fr 1fr; gap:6px 12px; margin-top:8px; font-size:.7rem; color:var(--novi-muted); }
.event-list { display:flex; flex-direction:column; gap:7px; max-height:260px; overflow:auto; padding-right:4px; }
.event {
  display:grid; grid-template-columns:72px 1fr 72px; gap:8px; align-items:center;
  border-bottom:1px solid rgba(100,210,240,.12); padding-bottom:6px; font-size:.72rem;
}
.event .kind { color:var(--novi-accent); font-weight:800; }
.event .time { color:var(--novi-muted); text-align:right; font-size:.65rem; }
.nv-callout {
  margin-top:8px; padding:8px 10px; border-left:3px solid var(--novi-accent);
  background:rgba(32,246,255,.05); color:#dff9ff; font-size:.74rem;
}

/* Keep the regime readings legible over the dashboard artwork. */
.nv-card.nv-regime { background: #061b28 !important; min-width: 0; }
.nv-regime .nv-sub, .nv-regime .regime-legend { color: #c3dce6; }
.nv-regime #regimeSvg { display: block; width: 100%; height: auto; max-width: 520px; margin: 8px auto; }
.nv-regime .nv-small { fill: #bddae5; }
.nv-regime .regime-legend { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 0 16px; font-size: 14px; line-height: 1.4; }
.nv-regime .regime-legend > div { padding: 6px 0; border-bottom: 1px solid #173645; }
.nv-regime .regime-legend > div:nth-child(even) { text-align: right; font-variant-numeric: tabular-nums; }
@media(max-width:720px) { .nv-card.nv-regime { padding: 14px !important; } .nv-regime h3 { font-size: 18px; } .nv-regime .nv-sub { font-size: 13px; line-height: 1.5; } }
