@import url("tokens.65456f588365.css");

/* One component, driven by available content width rather than device models. */
.institution-outlook {
  container-type: inline-size;
  box-sizing: border-box;
  min-width: 0;
  margin-block: 1.25rem;
  padding: clamp(1rem, 2.5%, 1.75rem);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-xl);
  background: var(--ui-panel-strong);
  color: var(--ui-ink);
  box-shadow: var(--ui-shadow);
  font-family: var(--ui-font);
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.institution-outlook * { box-sizing: border-box; min-width: 0; }
.institution-outlook h2, .institution-outlook h3, .institution-outlook p { margin: 0; }
.institution-outlook h2 { font-size: 1.25rem; }
.outlook-heading, .outlook-range-heading, .outlook-reference {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; flex-wrap: wrap;
}
.outlook-heading p, .outlook-range-heading span, .outlook-reference,
.outlook-range-labels, .outlook-disclaimer, .outlook-details p {
  color: var(--ui-muted); font-size: .8125rem;
}
.outlook-heading p { margin-top: .25rem; }
.outlook-status { color: var(--ui-warning); font-size: .8125rem; }
.outlook-metrics {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
  gap: 1.5rem; margin-block: 1.5rem;
}
.outlook-metrics > div { display: flex; flex-direction: column; gap: .5rem; }
.outlook-metrics > div > span { font-size: .8125rem; color: var(--ui-muted); }
.outlook-metrics strong { font-size: 1.625rem; line-height: 1.35; font-variant-numeric: tabular-nums; }
.outlook-metrics small { font-size: .75rem; font-weight: 400; color: var(--ui-muted); }
.outlook-metrics .outlook-text-value { font-size: 1.125rem; }
.institution-outlook .outlook-positive { color: var(--ui-positive); }
.institution-outlook .outlook-negative { color: var(--ui-negative); }
.outlook-range { border-block: 1px solid var(--ui-line); padding-block: 1rem; }
.outlook-range h3 { font-size: .9375rem; font-weight: 600; }
.outlook-range svg { display: block; width: 100%; height: 2.75rem; overflow: visible; margin-block: .5rem; padding-inline: .25rem; }
.outlook-range-track { stroke: var(--ui-line-solid); stroke-width: 6px; stroke-linecap: round; }
.outlook-range-mean { stroke: var(--ui-accent); stroke-width: 4px; }
.outlook-range-labels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; font-variant-numeric: tabular-nums; }
.outlook-range-labels span:nth-child(2) { text-align: center; }
.outlook-range-labels span:last-child { text-align: right; }
.outlook-reference { margin-block: 1rem; align-items: baseline; }
.outlook-reference-quote { display: flex; flex-wrap: wrap; gap: .25rem .75rem; max-inline-size: 100%; }
.outlook-details { border-block-start: 1px solid var(--ui-line); }
.outlook-details summary { cursor: pointer; padding-block: .75rem; min-height: var(--ui-control-height); color: var(--ui-accent); font-size: .875rem; }
.outlook-details summary:focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 3px; }
.outlook-details p + p { margin-top: .75rem; }
.outlook-details a { color: var(--ui-accent); text-underline-offset: .2em; }
.institution-outlook .outlook-disclaimer { margin-top: 1rem; }
.institution-outlook .outlook-notice { color: var(--ui-warning); margin-block: .75rem; font-size: .8125rem; }
.institution-outlook .outlook-empty { padding-block: 1.25rem .25rem; color: var(--ui-muted); }
@container (max-width: 26rem) {
  .outlook-range-labels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .outlook-range-labels span:nth-child(2) { grid-row: 2; grid-column: 1 / -1; }
  .outlook-range-labels span:last-child { grid-row: 1; grid-column: 2; }
}

/* Individual report view shares the site's tokens and the two detail entrances. */
.institution-reports {
  container-type: inline-size; min-width: 0; box-sizing: border-box;
  margin-block: 1.25rem; padding: clamp(1rem, 2.5%, 1.75rem);
  color: var(--ui-ink); background: var(--ui-panel-strong);
  border: 1px solid var(--ui-border); border-radius: var(--ui-radius-xl);
  font-family: var(--ui-font); line-height: 1.6; overflow-wrap: anywhere;
}
.institution-reports * { box-sizing: border-box; min-width: 0; }
.institution-reports h2, .institution-reports h3, .institution-reports p { margin: 0; }
.institution-reports h2 { font-size: 1.25rem; }
.institution-reports h3 { font-size: 1rem; }
.report-heading { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: baseline; justify-content: space-between; }
.report-heading p, .report-note, .report-disclaimer, .report-evidence p { color: var(--ui-muted); font-size: .8125rem; }
.report-card { padding-block: 1.25rem; border-block-end: 1px solid var(--ui-line); }
.report-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: 1.5rem; margin-block: 1.25rem; }
.report-metrics > div { display: flex; flex-direction: column; gap: .35rem; }
.report-metrics span, .report-meta dt, .report-basis > span { color: var(--ui-muted); font-size: .8125rem; }
.report-metrics strong { color: var(--ui-accent); font-size: 1.625rem; line-height: 1.35; font-variant-numeric: tabular-nums; }
.report-metrics .report-term { font-size: 1.125rem; line-break: strict; word-break: break-all; padding-inline-end: .5em; }
.report-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr)); gap: 1rem; margin-block: 1rem; padding-block: 1rem; border-block: 1px solid var(--ui-line); }
.report-meta dd { margin: .25rem 0 0; font-size: .875rem; }
.institution-reports .report-association { margin-top: .75rem; color: var(--ui-muted); font-size: .875rem; }
.institution-reports .report-state { margin-block: .75rem; }
.report-basis > span { display: block; margin-bottom: .25rem; }
.report-evidence { margin-top: .75rem; }
.report-evidence summary, .report-aggregate > summary { cursor: pointer; padding-block: .75rem; min-height: var(--ui-control-height); color: var(--ui-accent); font-size: .875rem; }
.report-evidence p + p { margin-top: .5rem; }
.report-links { display: flex; gap: .5rem 1rem; flex-wrap: wrap; margin-top: .5rem; }
.report-links a { display: inline-flex; align-items: center; min-height: var(--ui-control-height); color: var(--ui-accent); font-size: .875rem; text-underline-offset: .2em; }
.institution-reports .report-disclaimer { margin-top: 1rem; }
.institution-reports .report-empty { margin-block: 1rem; color: var(--ui-muted); }
.report-aggregate .institution-outlook { margin-block: .5rem; box-shadow: none; }
