/* Zeus AI shared page bits (Sprint 7e): the few things several pages use that are not components. Everything else lives in the
   component library (components.css) or in the page's own stylesheet. Tokens only: no raw colors. */
.dealtitle { margin: 0; font-size: var(--fs-lg); font-weight: 700; letter-spacing: -.01em; }
.dealsub { font-size: var(--fs-xs); color: var(--text-2); }
.meta { font-size: var(--fs-xs); color: var(--text-2); }

/* ---------- vertical timeline (milestones, activity logs) ---------- */
.timeline { list-style: none; margin: 0; padding: 0; }
.timeline li { position: relative; margin-left: 5px; padding: 0 0 var(--s-4) var(--s-5); border-left: 2px solid var(--line); }
.timeline li:last-child { border-color: transparent; }
.timeline li::before { content: ""; position: absolute; left: -7px; top: 2px; width: 12px; height: 12px; border-radius: 50%; background: var(--good); border: 2px solid var(--surface); }
.timeline li.at-risk::before { background: var(--warn); } .timeline li.upcoming::before { background: var(--n-400); }
.timeline .t-title { font-size: var(--fs-sm); font-weight: 600; } .timeline .t-meta { font-size: var(--fs-xs); color: var(--text-2); }

/* ---------- risk list with a severity dot ---------- */
.risklist { list-style: none; margin: 0; padding: 0; }
.risklist li { display: flex; gap: var(--s-3); align-items: flex-start; padding: var(--s-3) 0; border-bottom: 1px solid var(--line); }
.risklist li:last-child { border-bottom: 0; }
.sev-dot { width: 8px; height: 8px; margin-top: 7px; border-radius: 50%; flex: 0 0 auto; }
.sev-dot.high { background: var(--danger); } .sev-dot.medium { background: var(--warn); } .sev-dot.low { background: var(--n-400); }
.risklist .r-title { font-size: var(--fs-sm); font-weight: 600; } .risklist .r-meta { font-size: var(--fs-xs); color: var(--text-2); }
