.dash-intro, .dash-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; flex-wrap: wrap; }
.dash-metrics, .dash-links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.dash-metrics strong { display: block; font-size: clamp(1.5rem, 2.1vw, 2.25rem); margin: .5rem 0; font-variant-numeric: tabular-nums; }
.dash-metrics small, .dash-table small, .dash-freshness small, .dash-links span { display: block; opacity: .75; font-size: .8rem; margin-top: .25rem; }
.dash-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.dash-side { display: grid; gap: 1.25rem; min-width: 0; }
.dash-layout .card, .dash-layout .card-body { min-width: 0; }
.dash-layout h2 { font-size: 1.05rem; margin: 0 0 .75rem; }
.dash-layout p, .dash-window { font-size: .85rem; opacity: .8; }
.dash-scroll { overflow: auto; max-height: 640px; }
.dash-table thead { position: sticky; top: 0; background: var(--bg-surface); z-index: 1; }
.dash-table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.dash-table th, .dash-table td { text-align: left; vertical-align: top; padding: .8rem .5rem; border-bottom: 1px solid var(--border-color, #8884); overflow-wrap: anywhere; }
.dash-table th { font-size: .75rem; white-space: nowrap; }
.dash-table details { min-width: 10rem; max-width: 24rem; }
.dash-table summary { cursor: pointer; }
.dash-table dl { margin: .75rem 0 0; }
.dash-table dd { margin: 0 0 .6rem; }
.dash-note { margin: 1rem 0 0; line-height: 1.6; }
.dash-freshness dt { margin-top: .9rem; font-size: .85rem; }
.dash-freshness dd { margin: .2rem 0 0; font-size: .8rem; }
.dash-links a { padding: 1rem; text-decoration: none; }
.dash-empty { padding: 1.5rem 0; }
@media (max-width: 1100px) { .dash-metrics, .dash-links { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dash-layout { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) { .dash-metrics, .dash-links { grid-template-columns: minmax(0, 1fr); } }
