/**
 * Publication figure shell.
 *
 * These rules extend the site's existing article-figure component. They keep
 * generated controls consistent, keyboard-visible and usable from narrow
 * phones through wide editorial layouts without changing legacy figures.
 */
.publication-figure__brand {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0;
  padding: 13px 32px;
  border-bottom: 1px solid var(--border);
  background: var(--basalt);
}

.publication-figure__logo {
  display: block;
  width: 96px;
  height: auto;
}

.publication-figure__identity {
  margin: 0;
  color: var(--mist);
  font-size: 15px;
  font-weight: 760;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.publication-figure__tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 20px 0 0;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}

.publication-figure__plot--preparing {
  visibility: hidden;
}

.publication-figure__tool {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 7px 12px;
  border: 1px solid var(--border-strong, var(--border));
  border-radius: 2px;
  color: var(--basalt);
  background: var(--white);
  font: inherit;
  font-size: 15px;
  font-weight: 730;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
}

.publication-figure__tool:hover {
  border-color: var(--info);
  color: var(--info);
}

.publication-figure__tool:focus-visible {
  outline: 3px solid var(--info);
  outline-offset: 2px;
}

/* The scripted duplicate is hidden until it can actually operate. The native
   details summary below remains available in every rendering mode. */
.publication-figure__data-action {
  display: none;
}

.publication-figure--controls-ready .publication-figure__data-action {
  display: inline-flex;
}

.publication-figure__method,
.publication-figure__measure {
  margin: 12px 0 0;
  color: var(--graphite);
  font-size: 15px;
  line-height: 1.55;
}

.publication-figure__transformations {
  display: block;
  margin-top: 3px;
}

.publication-figure .figure-data:target {
  scroll-margin-top: 24px;
}

@media (max-width: 560px) {
  .publication-figure__brand {
    padding-inline: 24px;
  }

  .publication-figure__tools {
    align-items: stretch;
    flex-direction: column;
  }

  .publication-figure__tool,
  .publication-figure--controls-ready .publication-figure__data-action {
    justify-content: center;
    width: 100%;
  }
}

@media (forced-colors: active) {
  .publication-figure__tool {
    border: 1px solid ButtonText;
  }
}

/* Editorial shell: shared E20 frame, labels and branded download controls. */
.publication-editorial { margin:32px 0; background:var(--pearl,#f7f6f2); border:1px solid var(--limestone,#e4e1da); }
.publication-editorial .e20-viz__stage { min-height:0; padding:12px 28px 18px; }
.publication-editorial [data-figure-chart] { width:100%;min-width:0;height:auto!important; }
.publication-editorial__caption { margin:0; padding:0 28px 22px; }
.publication-editorial__takeaway { font-size:16px;line-height:1.6;color:#30373a;margin:0; }
.publication-editorial__caveat { font-size:15px;line-height:1.6;color:#50575a;margin:9px 0 0; }
.publication-editorial__status { margin:12px 28px;font-size:15px;line-height:1.5; }
.publication-editorial .e20-viz__actions svg { width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.2; }
.publication-editorial .e20-viz__actions a,.publication-editorial .e20-viz__actions button { min-width:44px;min-height:44px; }
.publication-editorial .e20-viz__actions button:disabled { opacity:.35;cursor:default; }
.publication-editorial__data { margin:0;border-top:1px solid var(--limestone,#e4e1da); }
.publication-editorial__data[hidden] { display:none; }
.publication-editorial__data > p { font-size:15px;line-height:1.6;margin:12px 0; }
.publication-editorial__data .e20-table-scroll { overflow:auto;max-width:100%; }
.publication-editorial__data .e20-table-scroll__hint { margin:8px 0;font-size:15px;line-height:1.5;color:var(--graphite); }
.publication-editorial__data table { min-width:440px;width:100%; }
.publication-editorial__data th { white-space:normal; }
.publication-editorial__data td { max-width:360px;overflow-wrap:anywhere; }
.publication-editorial .e20-table-scroll:focus-visible { outline:2px solid #52758a;outline-offset:3px; }
@media(max-width:760px){
 .publication-editorial .e20-viz__stage {padding:8px 16px 16px;}
 .publication-editorial__caption {padding:0 18px 20px;}
 .publication-editorial__takeaway {font-size:16px;}
 .publication-editorial__status {margin-inline:18px;}
}

.publication-timeline { overflow-x:auto; overscroll-behavior-x:contain; scrollbar-color:var(--basalt) var(--pearl); }
.publication-timeline svg { display:block; max-width:none; }
.publication-timeline:focus-visible { outline:2px solid var(--basalt); outline-offset:3px; }
.publication-editorial[data-renderer="d3"] .e20-viz__stage.timeline-scrollable::before{ content:"Scroll across the timeline →";display:block;font-size:.9375rem;color:var(--graphite);margin-bottom:1rem;}
