| /* Cohort longitudinal-outcomes module (LongitudinalCohort.tsx, #181). Design tokens only. Kept in its own | |
| file rather than index.css to stay out of a parallel edit. */ | |
| .lc { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 18px; | |
| } | |
| .lc-empty { | |
| margin: 0; | |
| font-size: 13px; | |
| color: var(--ink-muted); | |
| } | |
| .lc-stats { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); | |
| gap: 12px; | |
| } | |
| .lc-stat { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 2px; | |
| padding: 12px 14px; | |
| background: var(--surface-2); | |
| border: 1px solid var(--hairline); | |
| border-radius: var(--r-card); | |
| } | |
| .lc-stat-value { | |
| font-size: 24px; | |
| font-weight: 600; | |
| color: var(--ink); | |
| font-variant-numeric: tabular-nums; | |
| } | |
| .lc-stat-accent .lc-stat-value { | |
| color: var(--accent); | |
| } | |
| .lc-stat-label { | |
| font-size: 12px; | |
| color: var(--ink-muted); | |
| } | |
| .lc-block { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 6px; | |
| } | |
| .lc-block-title { | |
| font-size: 13px; | |
| font-weight: 500; | |
| color: var(--ink); | |
| } | |
| .lc-bar { | |
| display: flex; | |
| height: 14px; | |
| border-radius: 999px; | |
| overflow: hidden; | |
| background: var(--surface-2); | |
| } | |
| .lc-seg { | |
| height: 100%; | |
| } | |
| /* Clinical outcomes are categories, not pass/fail: a recurrence or a death is an outcome of the cohort, not | |
| an error, and red/green alone is a colourblind hazard (#203). Two weights of the house accent name the | |
| two outcomes without valence (the salient count saturated, the baseline soft), grey names the unknowns, | |
| and red stays reserved for a genuine failure. */ | |
| .lc-seg-strong { | |
| background: var(--accent); | |
| } | |
| .lc-seg-soft { | |
| background: color-mix(in srgb, var(--accent) 55%, var(--surface)); | |
| } | |
| .lc-seg-mut { | |
| background: var(--ink-muted); | |
| } | |
| .lc-legend { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 12px; | |
| font-size: 12px; | |
| color: var(--ink-muted); | |
| } | |
| .lc-legend-item { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 5px; | |
| font-variant-numeric: tabular-nums; | |
| } | |
| .lc-dot { | |
| width: 9px; | |
| height: 9px; | |
| border-radius: 999px; | |
| } | |
| .lc-tx-row { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| font-size: 12px; | |
| } | |
| .lc-tx-label { | |
| flex: 0 0 96px; | |
| color: var(--ink); | |
| } | |
| .lc-tx-track { | |
| flex: 1; | |
| height: 10px; | |
| border-radius: 999px; | |
| background: var(--surface-2); | |
| overflow: hidden; | |
| } | |
| .lc-tx-fill { | |
| display: block; | |
| height: 100%; | |
| background: var(--accent); | |
| } | |
| .lc-tx-count { | |
| flex: 0 0 auto; | |
| min-width: 64px; | |
| text-align: right; | |
| color: var(--ink); | |
| font-variant-numeric: tabular-nums; | |
| } | |
| .lc-tx-pct { | |
| color: var(--ink-muted); | |
| } | |