/* Price evidence uses the shared Hatuli colours in public cards and map modals. */
.hatuli-forecast {
  --pf-ink: var(--heading, #183c35);
  --pf-text: var(--text, #293e38);
  --pf-muted: var(--muted, #65766f);
  --pf-line: var(--border, #dce5dd);
  color: var(--pf-text);
  background: var(--surface2, #edf3ec);
  border: 1px solid var(--pf-line);
  border-radius: 12px;
  padding: 17px 18px;
  font: inherit;
  min-width: 0;
  overflow-wrap: anywhere;
}
.hatuli-forecast *, .hatuli-forecast *::before, .hatuli-forecast *::after { box-sizing: border-box; }
.hatuli-forecast p, .hatuli-forecast h4, .hatuli-forecast dl, .hatuli-forecast dd { margin: 0; }
.pf-heading { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 5px 14px; margin-bottom: 14px; }
.pf-heading h4 { color: var(--pf-ink); font-size: 14px; font-weight: 700; line-height: 1.35; }
.pf-date { font-size: 10px; line-height: 1.5; color: var(--pf-muted); }
.pf-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px 20px; }
.pf-value + .pf-value { padding-left: 20px; border-left: 1px solid var(--pf-line); }
.pf-value dt { font-size: 11px; line-height: 1.5; color: var(--pf-muted); margin-bottom: 5px; }
.pf-amount { color: var(--pf-ink); font-size: 23px; font-weight: 750; letter-spacing: -.5px; line-height: 1.3; font-variant-numeric: tabular-nums; }
.pf-range { display: block; font-size: 11px; line-height: 1.5; color: var(--pf-text); margin-top: 5px; font-variant-numeric: tabular-nums; }
.pf-caption, .pf-reason { font-size: 11px; line-height: 1.55; color: var(--pf-muted); margin-top: 5px !important; }
.pf-unavailable { color: var(--pf-ink); font-size: 13px; line-height: 1.5; font-weight: 600; }
.pf-method { border-top: 1px solid var(--pf-line); margin-top: 14px; padding-top: 10px; }
.pf-method summary { cursor: pointer; font-size: 11px; line-height: 1.6; font-weight: 600; color: var(--pf-ink); }
.pf-method summary:focus-visible { outline: 2px solid var(--focus, #74982c); outline-offset: 4px; border-radius: 2px; }
.pf-method-body { display: grid; gap: 7px; font-size: 11px; line-height: 1.6; color: var(--pf-muted); padding-top: 9px; }
.pf-method-body p, .pf-method-body ul { margin: 0 !important; }
.pf-method-body ul { padding-left: 18px; }
.pf-method-body li + li { margin-top: 5px; }
.pf-footnote { color: var(--pf-muted); font-size: 10px; line-height: 1.6; margin-top: 10px !important; }
.pf-horizons { color: var(--pf-muted); font-size: 10px; line-height: 1.6; margin-top: 9px !important; }
.hatuli-forecast--compact { padding: 13px 14px; margin-top: 17px; }
.hatuli-forecast--compact .pf-heading { margin-bottom: 10px; }
.hatuli-forecast--compact .pf-heading h4 { font-size: 12px; }
.hatuli-forecast--compact .pf-values { grid-template-columns: 1fr; gap: 12px; }
.hatuli-forecast--compact .pf-value + .pf-value { padding-left: 0; padding-top: 11px; border-left: 0; border-top: 1px solid var(--pf-line); }
.hatuli-forecast--compact .pf-amount { font-size: 19px; letter-spacing: -.3px; }
.hatuli-forecast--modal { margin: 16px 22px 0; }
.pf-values:has(> :only-child) { grid-template-columns: 1fr; }
@media (max-width: 520px) {
  .hatuli-forecast { padding: 14px; }
  .pf-values { grid-template-columns: 1fr; gap: 12px; }
  .pf-value + .pf-value { padding-left: 0; padding-top: 11px; border-left: 0; border-top: 1px solid var(--pf-line); }
  .pf-amount { font-size: 21px; }
  .hatuli-forecast--modal { margin-inline: 14px; }
}
