/* Page-only composition for index.html — the Consultant Dashboard.
   Shared rules live in assets/app.css, which loads first. Tokens only. */

/* Greeting block — display-scale line, only this page carries one */
.greeting { --od-gap: var(--s-1); }
.greeting-title { font-family: var(--font-display); font-size: var(--fs-display); line-height: var(--lh-display); font-weight: 700; letter-spacing: -.01em; }
.greeting-date { font-size: var(--fs-small); line-height: var(--lh-small); color: var(--ink-muted); }

/* Pipeline legend — a rail on small screens, a wrapped row from 768px up.
   The negative inline margin lets the rail bleed to the card's edge so the
   next legend item peeks; the 768px block cancels it once wrapping starts. */
.pipeline-legend { --od-gap: var(--s-2); --od-rail-pad: var(--s-4); }
.card-body > .pipeline-legend { margin-inline: calc(-1 * var(--s-4)); }
@media (min-width: 768px) {
  .pipeline-legend { flex-wrap: wrap; overflow-x: visible; scroll-snap-type: none; --od-rail-pad: 0px; }
  .card-body > .pipeline-legend { margin-inline: 0; }
  .pipeline-legend > :last-child { margin-inline-end: 0; }
  .legend-item { flex: 1 1 112px; }
}

/* Today's schedule — the time is the row's anchor, so it is sized and
   tabular-aligned rather than left to the row's body type */
.schedule-slot { --od-gap: var(--s-3); }
.slot-time {
  display: block;
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  min-width: 52px;
}
