/* Shared analytical demand presentation; route and data policy live in the host. */
.demand-preview { max-width: 72rem; margin: auto; padding: 2rem 1.25rem 4rem; font-variant-numeric: tabular-nums; }
.demand-preview-notice { border-left: 3px solid var(--focus); padding: .6rem 1rem; color: var(--text-muted); font-size: .85rem; background: var(--background-raised); }
.demand-preview-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin: 2rem 0; }
.demand-eyebrow { color: var(--accent); margin: 0; }
.demand-preview h1 { font-size: clamp(2rem, 5vw, 3rem); line-height: 1.15; margin: .4rem 0; }
.demand-preview h2 { font-size: 1.1rem; margin: 0 0 .5rem; }
.demand-read-time, .demand-panel > p, .demand-method, .demand-reading-state { color: var(--text-muted); font-size: .9rem; }
.demand-panel { background: var(--background-raised); border: 1px solid var(--line); border-radius: .5rem; padding: 1.5rem; margin-bottom: 1.25rem; }
.demand-reading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; }
.demand-value { overflow-wrap: anywhere; font-size: clamp(2.5rem, 6vw, 4rem); line-height: 1.1; margin: 1rem 0; letter-spacing: -.04em; }
.demand-value span { color: var(--text-muted); font-size: 1.1rem; letter-spacing: normal; }
.demand-reading-state dl { display: grid; grid-template-columns: auto 1fr; column-gap: 1rem; margin: .5rem 0; }
.demand-reading-state dd { margin: 0; }
.demand-status-warning { color: var(--focus); }
.demand-chart { position: relative; margin: 1.5rem 0; padding-left: 4.5rem; }
.demand-chart svg { display: block; width: 100%; height: 13rem; overflow: visible; }
.demand-chart-scale { position: absolute; top: .25rem; left: 0; height: 12rem; display: flex; flex-direction: column; justify-content: space-between; color: var(--text-muted); font-size: .8rem; }
.demand-chart-times { display: grid; grid-template-columns: repeat(3, 1fr); color: var(--text-muted); font-size: .75rem; gap: .3rem; }
.demand-chart-times span:nth-child(2) { text-align: center; }
.demand-chart-times span:last-child { text-align: right; }
.demand-grid { stroke: var(--line); stroke-width: 1; }
.demand-trace { stroke: var(--accent); stroke-width: 2.5; vector-effect: non-scaling-stroke; }
.demand-chart figcaption { color: var(--text-muted); font-size: .8rem; margin-top: .75rem; }
.demand-table-details summary { cursor: pointer; padding: .65rem 0; color: var(--accent); }
.demand-table-details summary:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.demand-table-scroll { max-height: 26rem; overflow: auto; margin-top: 1rem; }
.demand-preview table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.demand-preview caption { text-align: left; padding-bottom: .75rem; color: var(--text-muted); }
.demand-preview th, .demand-preview td { padding: .65rem .5rem; border-bottom: 1px solid var(--line); text-align: left; font-weight: normal; }
.demand-preview thead th { color: var(--text-muted); }
.demand-preview th:first-child { padding-left: 0; }
.demand-method { max-width: 52rem; padding: .5rem 0; }
@media (max-width: 40rem) {
  .demand-preview-heading { display: block; }
  .demand-reading { grid-template-columns: 1fr; gap: .5rem; }
  .demand-panel { padding: 1rem; }
  .demand-preview table { font-size: .75rem; }
  .demand-preview th, .demand-preview td { padding: .6rem .3rem; }
}
