body { min-height: 100vh; }
.card { border-radius: .8rem; }
code { color: #6f42c1; }

/* Stage 3 overview */
.ai-stat-label { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; }
.ai-stat-value { font-size: 1.75rem; line-height: 1.05; font-weight: 650; margin-top: .2rem; }
.ai-stat-note { font-size: .68rem; margin-top: .25rem; }
.ai-chart-wrap { height: 285px; }
.ai-observation-list { font-size: .84rem; line-height: 1.35; }
.ai-observation-list > div { padding: .55rem 0; border-bottom: 1px solid var(--bs-border-color-translucent); }
.ai-observation-list > div:last-child { border-bottom: 0; }
.ai-filter-card .form-label { font-size: .72rem; text-transform: uppercase; letter-spacing: .03em; color: var(--bs-secondary-color); }

/* Compact Stage 3 workbench tables */
.ai-data-table { font-size: .76rem; line-height: 1.15; }
.ai-data-table > :not(caption) > * > * { padding: .3rem .42rem; vertical-align: middle; }
.ai-data-table thead th { font-size: .64rem; text-transform: uppercase; letter-spacing: .045em; white-space: nowrap; color: var(--bs-secondary-color); background: var(--bs-tertiary-bg); }
.ai-data-table tbody tr:hover { background: var(--bs-tertiary-bg); }
.ai-data-table code { font-size: .72rem; }
.ai-row-sub { font-size: .64rem; margin-top: .08rem; max-width: 520px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Existing tables stay compact enough to scan */
.table:not(.ai-data-table) > :not(caption) > * > * { padding: .55rem .65rem; }
