/* V2 look for the technical-details popup (nuclear-plant-details.js).
   Loaded after nuclear-plant.css and nuclear-common_v2.css. Every rule is scoped to
   .plant-details-v2, so the legacy popup rules stay the fallback underneath.
   Colors only come from --v2-* / --story-* tokens (see docs/nuclear-common-v2.md). */

.plant-details-v2 {
  --pd-thermal: var(--story-peach);
  --pd-electric: var(--story-lime);
  --pd-heat: var(--story-sage);
  --pd-cold: var(--acc);
  --pd-water: color-mix(in srgb, var(--acc) 72%, var(--v2-ink));
  --pd-steam: color-mix(in srgb, var(--v2-ink) 80%, transparent);
  --pd-intermediate: var(--story-lilac);
  --pd-containment: var(--story-sage);
  --pd-active: var(--story-lime);
  --pd-generation: var(--acc);
  --pd-power: var(--story-lilac);
  --pd-ucf: var(--story-sage);
  --pd-puf: color-mix(in srgb, var(--v2-ink) 58%, transparent);
  --pd-ucl: var(--story-peach);
  --pd-xuf: var(--story-orbit-highlight);
  --pd-panel: color-mix(in srgb, var(--surf2) 58%, transparent);
  --pd-machine: color-mix(in srgb, var(--surf2) 90%, var(--v2-paper));
  --pd-stroke: color-mix(in srgb, var(--v2-ink) 34%, transparent);
  --pd-gutter: clamp(18px, 2.4vw, 36px);
  width: min(1480px, calc(100% - 32px));
  height: calc(100dvh - 32px);
  max-height: calc(100dvh - 32px);
  isolation: isolate;
  border: 1px solid var(--v2-line);
  border-radius: var(--v2-radius);
  background: var(--v2-paper);
  color: var(--v2-ink);
  font-family: Arial, Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
}

.plant-details-v2[open] { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto minmax(0, 1fr); }
.plant-details-v2::backdrop { backdrop-filter: blur(12px); }
.plant-details-v2 > .v2-aurora { opacity: .5; }

/* Header */
.plant-details-v2 .plant-details-dialog-bar {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 18px var(--pd-gutter) 16px;
  border-bottom: 0;
  background: transparent;
}
.plant-details-v2 .plant-details-dialog-mark .v2-atom { --v2-atom-size: 64px; }
.plant-details-v2 .plant-details-dialog-eyebrow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.plant-details-v2 .plant-details-dialog-kicker { color: var(--story-lime); font-size: inherit; letter-spacing: inherit; }
.plant-details-v2 .plant-details-dialog-graphic-title { margin: 0; color: var(--v2-muted); font-size: inherit; font-weight: inherit; }
.plant-details-v2 .plant-details-dialog-graphic-title::before { content: "/"; margin-right: 10px; opacity: .55; }
.plant-details-v2 .plant-details-dialog-bar h2 {
  margin: 8px 0 0;
  color: var(--v2-ink);
  font-family: var(--v2-display);
  font-size: clamp(26px, 3.2vw, 50px);
  line-height: .9;
  letter-spacing: -.055em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}
.plant-details-v2 .plant-details-reactor-meta { gap: 6px 8px; margin-top: 12px; }
.plant-details-v2 .plant-details-reactor-meta strong { margin-right: 4px; color: var(--v2-ink); font-size: 13px; }
.plant-details-v2 .plant-details-reactor-meta span {
  padding: 4px 10px;
  border-color: var(--v2-line);
  background: transparent;
  color: var(--v2-muted);
  font-size: 11px;
  letter-spacing: .04em;
}
.plant-details-v2 .plant-details-reactor-meta span:first-of-type {
  border-color: color-mix(in srgb, var(--story-lime) 55%, var(--v2-line));
  color: var(--story-lime);
}

.plant-details-v2 .plant-details-dialog-actions { align-self: start; gap: 8px; }
.plant-details-v2 .plant-details-unit-nav { gap: 8px; }
.plant-details-v2 .plant-details-prev-unit,
.plant-details-v2 .plant-details-next-unit,
.plant-details-v2 .plant-details-share,
.plant-details-v2 .plant-details-close {
  min-height: 44px;
  border: 1px solid var(--v2-line);
  border-radius: 999px;
  background: color-mix(in srgb, var(--v2-paper) 72%, transparent);
  color: var(--v2-ink);
  font-size: 12px;
  font-weight: 700;
  transition: background .2s, border-color .2s, color .2s;
}
.plant-details-v2 .plant-details-prev-unit:hover,
.plant-details-v2 .plant-details-next-unit:hover,
.plant-details-v2 .plant-details-share:hover,
.plant-details-v2 .plant-details-close:hover {
  border-color: var(--v2-ink);
  background: var(--v2-ink);
  color: var(--v2-paper);
}
.plant-details-v2 .plant-details-prev-unit,
.plant-details-v2 .plant-details-next-unit { gap: 10px; padding: 5px 16px; }
.plant-details-v2 .plant-details-unit-copy { display: grid; line-height: 1.15; text-align: left; }
.plant-details-v2 .plant-details-next-unit .plant-details-unit-copy { text-align: right; }
.plant-details-v2 .plant-details-unit-direction { color: inherit; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; opacity: .62; }
.plant-details-v2 .plant-details-prev-unit strong,
.plant-details-v2 .plant-details-next-unit strong { color: inherit; font-size: 12px; }
.plant-details-v2 .plant-details-unit-arrow { font-size: 16px; }
.plant-details-v2 .plant-details-share { gap: 8px; padding: 5px 16px 5px 13px; color: var(--v2-ink); font-size: 12px; }
.plant-details-v2 .plant-details-share svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.plant-details-v2 .plant-details-close { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; font-size: 26px; font-weight: 400; }

/* Chapter tabs */
.plant-details-v2 .plant-details-dialog-chapters {
  position: relative;
  min-width: 0;
  border-block: 1px solid var(--v2-line);
  background: color-mix(in srgb, var(--v2-paper) 84%, transparent);
  backdrop-filter: blur(18px);
}
.plant-details-v2 .plant-details-dialog-nav {
  position: relative;
  justify-content: flex-start;
  gap: clamp(20px, 3.4vw, 54px);
  padding: 0 var(--pd-gutter);
  border-top: 0;
  background: transparent;
  scrollbar-width: none;
}
.plant-details-v2 .plant-details-dialog-nav::-webkit-scrollbar { display: none; }
.plant-details-v2 .plant-details-dialog-nav .plant-details-slide-tab {
  position: relative;
  flex: 0 0 auto;
  min-width: 0;
  max-width: none;
  min-height: 58px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--v2-muted);
}
.plant-details-v2 .plant-details-dialog-nav .plant-details-slide-tab::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 3px;
  background: var(--story-lime);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s;
}
.plant-details-v2 .plant-details-dialog-nav .plant-details-slide-tab:hover,
.plant-details-v2 .plant-details-dialog-nav .plant-details-slide-tab.is-active {
  border: 0;
  background: transparent;
  box-shadow: none;
  color: var(--v2-ink);
}
.plant-details-v2 .plant-details-dialog-nav .plant-details-slide-tab.is-active::after { transform: scaleX(1); }
.plant-details-v2 .plant-details-dialog-nav .plant-details-slide-tab:focus-visible { outline-offset: -4px; }
.plant-details-v2 .plant-details-slide-tab .plant-details-slide-tab-number,
.plant-details-v2 .plant-details-slide-tab.is-active .plant-details-slide-tab-number {
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  background: none;
  color: var(--story-lime);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
}
.plant-details-v2 .plant-details-slide-tab .plant-details-slide-tab-label,
.plant-details-v2 .plant-details-slide-tab.is-active .plant-details-slide-tab-label {
  overflow: visible;
  color: inherit;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
  white-space: nowrap;
}
.plant-details-v2 .plant-details-progress {
  position: absolute;
  inset: -1px 0 auto;
  height: 2px;
  background: var(--story-lime);
  transform: scaleX(var(--pd-progress, 0));
  transform-origin: left;
  transition: transform .45s cubic-bezier(.2, .7, .2, 1);
  pointer-events: none;
}

/* Slide frame */
.plant-details-v2 .plant-details-slide {
  background: transparent;
  scrollbar-color: var(--v2-line) transparent;
  scrollbar-width: thin;
}
.plant-details-v2 .plant-detail-graphic { padding: clamp(22px, 2.8vw, 44px) var(--pd-gutter) 30px; }
.nuclear-v2:not(.v2-motion-paused) .plant-details-v2 .plant-detail-graphic { animation: pd-enter .5s cubic-bezier(.2, .7, .2, 1) both; }
.plant-details-v2 .plant-detail-heading {
  grid-template-columns: auto minmax(0, 1.25fr) minmax(0, .75fr);
  align-items: end;
  gap: 14px clamp(18px, 3vw, 52px);
  max-width: none;
  margin-bottom: clamp(20px, 2.6vw, 36px);
}
.plant-details-v2 .plant-detail-number {
  display: block;
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  color: var(--story-lime);
  font-family: var(--v2-display);
  font-size: clamp(46px, 5.4vw, 86px);
  font-weight: 400;
  line-height: .78;
  letter-spacing: -.07em;
}
.plant-details-v2 .plant-detail-number small {
  margin-left: 6px;
  color: var(--v2-muted);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .1em;
  vertical-align: top;
}
.plant-details-v2 .plant-detail-heading h3 {
  margin: 0;
  color: var(--v2-ink);
  font-family: var(--v2-display);
  font-size: clamp(24px, 2.7vw, 44px);
  line-height: .94;
  letter-spacing: -.05em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}
.plant-details-v2 .plant-detail-heading p { justify-self: end; max-width: 440px; color: var(--v2-muted); font-size: 13px; line-height: 1.55; }
.plant-details-v2 .plant-detail-note { color: var(--v2-muted); font-size: 11.5px; line-height: 1.55; }
.plant-details-v2 .plant-detail-note strong { color: var(--v2-ink); }

.plant-details-v2 .plant-sankey-wrap,
.plant-details-v2 .plant-circuit-wrap,
.plant-details-v2 .plant-history-chart-wrap,
.plant-details-v2 .plant-core-visual,
.plant-details-v2 .plant-core-facts,
.plant-details-v2 .plant-circuit-callout,
.plant-details-v2 .plant-history-tooltip,
.plant-details-v2 .plant-history-summary {
  border: 1px solid var(--v2-line);
  border-radius: var(--v2-radius);
  background: var(--pd-panel);
}

/* Energy flow */
.plant-details-v2 .plant-energy-layout { grid-template-columns: minmax(0, 1fr) minmax(300px, 360px); gap: clamp(14px, 1.6vw, 22px); }
.plant-details-v2 .plant-sankey-wrap { padding: clamp(10px, 1.4vw, 22px); }
.plant-details-v2 .plant-sankey { height: clamp(340px, 52dvh, 490px); }
.plant-details-v2 .sankey-flow { opacity: .8; }
.plant-details-v2 .sankey-stop-thermal-start { stop-color: var(--pd-thermal); }
.plant-details-v2 .sankey-stop-thermal-end { stop-color: color-mix(in srgb, var(--pd-thermal) 70%, var(--pd-electric)); }
.plant-details-v2 .sankey-stop-electric-start { stop-color: color-mix(in srgb, var(--pd-thermal) 60%, var(--pd-electric)); }
.plant-details-v2 .sankey-stop-electric-end { stop-color: var(--pd-electric); }
.plant-details-v2 .sankey-flow-heat { stroke: var(--pd-heat); }
.plant-details-v2 .sankey-flow-cooling { stroke: var(--pd-cold); opacity: .36; }
.plant-details-v2 .sankey-node rect { fill: var(--pd-machine); stroke: var(--pd-stroke); stroke-width: 1.5; }
.plant-details-v2 .sankey-node-reactor rect { fill: color-mix(in srgb, var(--pd-thermal) 14%, var(--v2-paper)); stroke: var(--pd-thermal); }
.plant-details-v2 .sankey-node-turbine rect { fill: color-mix(in srgb, var(--v2-ink) 8%, var(--v2-paper)); stroke: var(--pd-steam); }
.plant-details-v2 .sankey-node-electric rect { fill: color-mix(in srgb, var(--pd-electric) 12%, var(--v2-paper)); stroke: var(--pd-electric); }
.plant-details-v2 .sankey-node-heat rect { fill: color-mix(in srgb, var(--pd-heat) 12%, var(--v2-paper)); stroke: var(--pd-heat); }
.plant-details-v2 .sankey-node-cooling rect { fill: color-mix(in srgb, var(--pd-cold) 12%, var(--v2-paper)); stroke: var(--pd-cold); }
.plant-details-v2 .sankey-node text { fill: var(--v2-muted); font-family: Arial, Helvetica, sans-serif; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.plant-details-v2 .sankey-node .sankey-value { fill: var(--v2-ink); font-family: var(--v2-display); font-size: 26px; font-weight: 400; letter-spacing: -.04em; text-transform: none; }
.plant-details-v2 .sankey-node-turbine .sankey-value { font-size: 21px; }
.plant-details-v2 .sankey-node .sankey-unit { font-size: 11px; font-weight: 700; letter-spacing: .02em; text-transform: none; }
.plant-details-v2 .sankey-node-turbine .sankey-unit { font-size: 9.5px; }
.plant-details-v2 .sankey-node { transform-box: fill-box; transform-origin: center; }
.nuclear-v2:not(.v2-motion-paused) .plant-details-v2 .v2-animate .sankey-flow { stroke-dasharray: 100; animation: pd-draw 1s cubic-bezier(.4, 0, .2, 1) .15s both; }
.nuclear-v2:not(.v2-motion-paused) .plant-details-v2 .v2-animate .sankey-flow:not(.sankey-flow-thermal) { animation-delay: .75s; }
.nuclear-v2:not(.v2-motion-paused) .plant-details-v2 .v2-animate .sankey-node { animation: v2-pop .45s cubic-bezier(.2, .9, .3, 1.3) both; }
.nuclear-v2:not(.v2-motion-paused) .plant-details-v2 .v2-animate .sankey-node-turbine { animation-delay: .6s; }
.nuclear-v2:not(.v2-motion-paused) .plant-details-v2 .v2-animate :is(.sankey-node-electric, .sankey-node-heat, .sankey-node-cooling) { animation-delay: 1.35s; }

.plant-details-v2 .plant-detail-facts { gap: 12px; }
.plant-details-v2 .plant-detail-fact { padding: 16px 18px; border: 1px solid var(--v2-line); border-radius: 18px; background: var(--pd-panel); }
.plant-details-v2 .plant-detail-fact::before { display: none; }
.plant-details-v2 .plant-detail-fact span { color: var(--v2-muted); font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.plant-details-v2 .plant-detail-fact strong {
  margin-top: 10px;
  color: var(--fact-color, var(--v2-ink));
  font-family: var(--v2-display);
  font-size: clamp(28px, 2.5vw, 40px);
  font-weight: 400;
  line-height: .9;
  letter-spacing: -.05em;
  font-variant-numeric: tabular-nums;
}
.plant-details-v2 .plant-detail-fact strong b { font-weight: inherit; }
.plant-details-v2 .plant-detail-fact.is-thermal { --fact-color: var(--pd-thermal); }
.plant-details-v2 .plant-detail-fact.is-electric { --fact-color: var(--pd-electric); }
.plant-details-v2 .plant-detail-fact.is-heat { --fact-color: var(--pd-heat); }
.plant-details-v2 .plant-detail-fact.is-heat strong { font-size: clamp(20px, 1.7vw, 26px); }
.plant-details-v2 .plant-energy-balance {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  padding: 16px 18px;
  border: 1px solid var(--v2-line);
  border-radius: 18px;
  background: var(--pd-panel);
}
.plant-details-v2 .plant-energy-balance .v2-ring { --v2-ring-size: 76px; }
.plant-details-v2 .plant-energy-balance .v2-bars-row { grid-template-columns: 7.2em minmax(0, 1fr) 3.7em; gap: 8px; font-size: 11px; }
.plant-details-v2 .plant-detail-facts .plant-detail-note { margin-top: 0; padding: 4px 2px 0; }

/* Plant schematics */
.plant-details-v2 .plant-circuit-layout { grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); gap: clamp(14px, 1.6vw, 22px); }
.plant-details-v2 .plant-circuit-wrap { padding: clamp(8px, 1.2vw, 16px); }
.plant-details-v2 .circuit-zone-label,
.plant-details-v2 .family-topology-source,
.plant-details-v2 .family-cooling-title,
.plant-details-v2 .component-system-zone { fill: var(--v2-muted); font-family: Arial, Helvetica, sans-serif; }
.plant-details-v2 .family-topology-label { fill: var(--v2-ink); font-family: var(--v2-display); font-weight: 400; letter-spacing: -.02em; }
.plant-details-v2 .circuit-boundary { stroke: var(--v2-line); opacity: 1; }

.plant-details-v2 .circuit-component { color: var(--v2-muted); }
.plant-details-v2 .circuit-component text { font-family: Arial, Helvetica, sans-serif; }
.plant-details-v2 .circuit-component rect,
.plant-details-v2 .circuit-component circle,
.plant-details-v2 .circuit-component > path,
.plant-details-v2 .family-machine-shell { fill: var(--pd-machine); stroke: var(--pd-stroke); }
.plant-details-v2 .circuit-component > path + path { fill: none; }
.plant-details-v2 .circuit-component:hover rect,
.plant-details-v2 .circuit-component:hover circle,
.plant-details-v2 .circuit-component:hover > path,
.plant-details-v2 .circuit-component:focus rect,
.plant-details-v2 .circuit-component:focus circle,
.plant-details-v2 .circuit-component:focus > path,
.plant-details-v2 .circuit-component.is-active rect,
.plant-details-v2 .circuit-component.is-active circle,
.plant-details-v2 .circuit-component.is-active > path,
.plant-details-v2 .family-node[role="button"]:hover .family-machine-shell,
.plant-details-v2 .family-node[role="button"]:focus .family-machine-shell,
.plant-details-v2 .family-node.is-active .family-machine-shell,
.plant-details-v2 .family-node[role="button"]:hover .family-machine-core,
.plant-details-v2 .family-node[role="button"]:focus .family-machine-core,
.plant-details-v2 .family-node.is-active .family-machine-core {
  fill: color-mix(in srgb, var(--pd-active) 11%, var(--v2-paper));
  stroke: var(--pd-active);
  filter: drop-shadow(0 0 10px color-mix(in srgb, var(--pd-active) 32%, transparent));
}
.plant-details-v2 .circuit-component:is(:hover, :focus, .is-active) { color: var(--v2-ink); }

.plant-details-v2 .circuit-component .circuit-metric-badge rect,
.plant-details-v2 .circuit-component:hover .circuit-metric-badge rect,
.plant-details-v2 .circuit-component:focus .circuit-metric-badge rect,
.plant-details-v2 .circuit-component.is-active .circuit-metric-badge rect {
  fill: color-mix(in srgb, var(--v2-paper) 82%, transparent);
  stroke: var(--v2-line);
  filter: none;
}
.plant-details-v2 .circuit-component:hover .circuit-metric-badge rect,
.plant-details-v2 .circuit-component:focus .circuit-metric-badge rect,
.plant-details-v2 .circuit-component.is-active .circuit-metric-badge rect { stroke: var(--pd-active); }
.plant-details-v2 .circuit-component .circuit-metric-badge .circuit-metric-value { fill: var(--v2-ink); }
.plant-details-v2 .circuit-component .circuit-metric-badge .circuit-metric-label { fill: var(--v2-muted); }

.plant-details-v2 .circuit-containment-shell > .containment-shell-outer { fill: color-mix(in srgb, var(--pd-containment) 4%, transparent); stroke: var(--pd-containment); stroke-width: 4; }
.plant-details-v2 .circuit-containment-shell > .containment-shell-inner { fill: none; stroke: color-mix(in srgb, var(--pd-containment) 62%, var(--v2-ink)); }
.plant-details-v2 .circuit-containment-shell:hover > .containment-shell-outer,
.plant-details-v2 .circuit-containment-shell:focus > .containment-shell-outer,
.plant-details-v2 .circuit-containment-shell.is-active > .containment-shell-outer {
  fill: color-mix(in srgb, var(--pd-containment) 9%, transparent);
  stroke: var(--pd-containment);
  filter: drop-shadow(0 0 12px color-mix(in srgb, var(--pd-containment) 30%, transparent));
}
.plant-details-v2 .circuit-containment-shell:hover > .containment-shell-inner,
.plant-details-v2 .circuit-containment-shell:focus > .containment-shell-inner,
.plant-details-v2 .circuit-containment-shell.is-active > .containment-shell-inner { fill: none; stroke: var(--v2-ink); }
.plant-details-v2 .circuit-containment-shell .containment-badge rect,
.plant-details-v2 .circuit-containment-shell:hover .containment-badge rect,
.plant-details-v2 .circuit-containment-shell:focus .containment-badge rect,
.plant-details-v2 .circuit-containment-shell.is-active .containment-badge rect {
  fill: color-mix(in srgb, var(--pd-containment) 14%, var(--v2-paper));
  stroke: var(--pd-containment);
  filter: none;
}
.plant-details-v2 .circuit-containment-shell .containment-badge text,
.plant-details-v2 .circuit-containment-shell .containment-shell-label { fill: var(--pd-containment); }

.plant-details-v2 .circuit-pipe.hot { stroke: var(--pd-thermal); }
.plant-details-v2 .circuit-pipe.cold { stroke: var(--pd-cold); }
.plant-details-v2 .circuit-pipe.steam { stroke: var(--pd-steam); }
.plant-details-v2 .circuit-pipe.condensate { stroke: var(--pd-water); }
.plant-details-v2 .circuit-shaft { stroke: var(--pd-stroke); }
.plant-details-v2 #plantArrowHot path { fill: var(--pd-thermal); }
.plant-details-v2 #plantArrowCold path { fill: var(--pd-cold); }
.plant-details-v2 #plantArrowSteam path { fill: var(--pd-steam); }
.plant-details-v2 .circuit-pumps circle { fill: color-mix(in srgb, var(--pd-cold) 14%, var(--v2-paper)); stroke: var(--pd-water); }
.plant-details-v2 .circuit-pumps > path { fill: var(--pd-water); stroke: none; }
.plant-details-v2 .circuit-pumps .circuit-pump-count { fill: var(--pd-water); }

.plant-details-v2 .family-node-primary .family-machine-shell { stroke: var(--pd-thermal); }
.plant-details-v2 .family-node-intermediate .family-machine-shell { stroke: var(--pd-intermediate); }
.plant-details-v2 .family-node-secondary .family-machine-shell,
.plant-details-v2 .family-node-steam .family-machine-shell { stroke: var(--pd-steam); }
.plant-details-v2 .family-node-water .family-machine-shell { stroke: var(--pd-cold); }
.plant-details-v2 .family-machine-detail,
.plant-details-v2 .family-machine-shaft { stroke: var(--pd-stroke); }
.plant-details-v2 .family-machine-coil { stroke: var(--pd-water); }
.plant-details-v2 .family-machine-partition,
.plant-details-v2 .family-machine-liquid { stroke: var(--pd-intermediate); }
.plant-details-v2 .family-machine-moderator { fill: color-mix(in srgb, var(--pd-cold) 8%, transparent); stroke: color-mix(in srgb, var(--pd-cold) 55%, transparent); }
.plant-details-v2 .family-machine-tube { stroke: var(--v2-ink); }
.plant-details-v2 .family-machine-graphite { fill: color-mix(in srgb, var(--v2-ink) 14%, var(--v2-paper)); stroke: var(--pd-stroke); }
.plant-details-v2 .family-machine-core { fill: color-mix(in srgb, var(--pd-thermal) 22%, var(--v2-paper)); stroke: var(--pd-thermal); }
.plant-details-v2 .family-machine-symbol { fill: var(--v2-ink); font-family: var(--v2-display); font-weight: 400; }
.plant-details-v2 .family-node-title,
.plant-details-v2 .family-node-subtitle,
.plant-details-v2 .family-flow text { font-family: Arial, Helvetica, sans-serif; }
.plant-details-v2 .family-node-title { fill: var(--v2-ink); }
.plant-details-v2 .family-node-subtitle,
.plant-details-v2 .family-flow text { fill: var(--v2-muted); }
.plant-details-v2 .family-flow-primary path { stroke: var(--pd-thermal); }
.plant-details-v2 .family-flow-primary-cold path { stroke: var(--pd-cold); }
.plant-details-v2 .family-flow-intermediate path { stroke: var(--pd-intermediate); }
.plant-details-v2 .family-flow-intermediate-cold path { stroke: color-mix(in srgb, var(--pd-intermediate) 55%, var(--v2-muted)); }
.plant-details-v2 .family-flow-secondary path,
.plant-details-v2 .family-flow-steam path { stroke: var(--pd-steam); }
.plant-details-v2 .family-flow-water path,
.plant-details-v2 .family-cooling-link { stroke: var(--pd-water); }

.plant-details-v2 .circuit-cooling .circuit-cooling-tower,
.plant-details-v2 .family-cooling-system .circuit-cooling-tower,
.plant-details-v2 .component-data-tower { fill: color-mix(in srgb, var(--v2-ink) 4%, transparent); stroke: var(--pd-stroke); }
.plant-details-v2 .circuit-cooling-bank,
.plant-details-v2 .component-data-bank { stroke: var(--pd-heat); }
.plant-details-v2 .circuit-cooling-water,
.plant-details-v2 .component-data-water,
.plant-details-v2 .circuit-cooling-return,
.plant-details-v2 .component-data-return { stroke: var(--pd-cold); }
.plant-details-v2 .circuit-cooling-intake,
.plant-details-v2 .component-data-pipe,
.plant-details-v2 .circuit-cooling-horizon,
.plant-details-v2 .component-data-horizon { stroke: var(--pd-stroke); }
.plant-details-v2 .circuit-cooling-basin,
.plant-details-v2 .component-data-basin { fill: color-mix(in srgb, var(--pd-cold) 12%, transparent); stroke: var(--pd-cold); }
.plant-details-v2 .circuit-cooling-plume,
.plant-details-v2 .component-data-plume { stroke: color-mix(in srgb, var(--v2-ink) 72%, transparent); }
.plant-details-v2 .circuit-cooling-label { fill: var(--v2-muted); font-family: Arial, Helvetica, sans-serif; }

/* Component preview in the side panel */
.plant-details-v2 .plant-circuit-callout { padding: clamp(16px, 1.6vw, 22px); }
.plant-details-v2 .plant-circuit-callout > span { color: var(--story-lime); font-size: 11px; font-weight: 700; letter-spacing: .15em; }
.plant-details-v2 .plant-circuit-callout > strong {
  margin-top: 10px;
  color: var(--v2-ink);
  font-family: var(--v2-display);
  font-size: clamp(18px, 1.45vw, 22px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.035em;
  text-transform: uppercase;
  overflow-wrap: break-word;
  hyphens: auto;
}
.plant-details-v2 .plant-component-visual {
  margin-top: 16px;
  border: 1px solid var(--v2-line);
  border-radius: 18px;
  background:
    radial-gradient(circle at 50% 55%, color-mix(in srgb, var(--story-lime) 7%, transparent), transparent 60%),
    color-mix(in srgb, var(--v2-paper) 70%, transparent);
}
.plant-details-v2 .component-system-boundary { fill: color-mix(in srgb, var(--pd-containment) 4%, transparent); stroke: color-mix(in srgb, var(--pd-containment) 65%, transparent); }
.plant-details-v2 .component-system-reactor,
.plant-details-v2 .component-system-sg,
.plant-details-v2 .component-system-generator,
.plant-details-v2 .component-data-vessel,
.plant-details-v2 .component-data-machine { fill: var(--pd-machine); stroke: var(--pd-stroke); }
.plant-details-v2 .component-system-coil,
.plant-details-v2 .component-data-coil,
.plant-details-v2 .component-data-impeller,
.plant-details-v2 .component-data-line { stroke: var(--pd-water); }
.plant-details-v2 .component-system-flow.is-hot { stroke: var(--pd-thermal); }
.plant-details-v2 .component-system-flow.is-cold { stroke: var(--pd-cold); }
.plant-details-v2 .component-system-steam { stroke: var(--pd-steam); }
.plant-details-v2 .component-system-turbine,
.plant-details-v2 .component-data-turbine { fill: color-mix(in srgb, var(--pd-electric) 6%, transparent); stroke: var(--pd-stroke); }
.plant-details-v2 .component-system-turbine.is-hp { stroke: var(--pd-steam); }
.plant-details-v2 .component-data-turbine.is-hp { stroke: var(--pd-electric); }
.plant-details-v2 .component-system-shaft,
.plant-details-v2 .component-data-shaft { stroke: var(--pd-stroke); }
.plant-details-v2 .component-data-shell { fill: color-mix(in srgb, var(--pd-containment) 4%, transparent); stroke: var(--pd-containment); }
.plant-details-v2 .component-data-core circle { fill: var(--pd-thermal); stroke: color-mix(in srgb, var(--pd-thermal) 50%, var(--v2-ink)); }
.plant-details-v2 .component-data-value,
.plant-details-v2 .component-data-label,
.plant-details-v2 .component-data-symbol { fill: var(--v2-ink); font-family: Arial, Helvetica, sans-serif; }
.plant-details-v2 .component-data-label { fill: var(--v2-muted); }

.plant-details-v2 .plant-component-values { gap: 0; margin-top: 14px; }
.plant-details-v2 .plant-component-values li {
  min-height: 0;
  padding: 10px 0 10px 18px;
  border: 0;
  border-top: 1px solid var(--v2-line);
  border-radius: 0;
  background: none;
  color: var(--v2-muted);
  font-size: 12px;
}
.plant-details-v2 .plant-component-values li::before { top: 17px; left: 2px; width: 6px; height: 6px; background: var(--story-lime); box-shadow: none; }
.plant-details-v2 .plant-component-values li strong { color: var(--v2-ink); font-family: var(--v2-display); font-size: 18px; font-weight: 400; letter-spacing: -.03em; }
.plant-details-v2 .plant-family-facts .plant-detail-note { margin-top: 16px; }

/* Operating history */
.plant-details-v2 .plant-history-layout { grid-template-columns: minmax(0, 1fr) minmax(250px, 300px); gap: clamp(12px, 1.4vw, 20px); }
.plant-details-v2 .plant-history-legend { gap: 8px 20px; color: var(--v2-muted); font-size: 11px; font-weight: 700; letter-spacing: .04em; }
.plant-details-v2 .plant-history-legend i { width: 18px; }
.plant-details-v2 .plant-history-legend .is-generation { --legend-color: var(--pd-generation); }
.plant-details-v2 .plant-history-legend .is-power { --legend-color: var(--pd-power); }
.plant-details-v2 .plant-history-legend .is-ucf { --legend-color: var(--pd-ucf); }
.plant-details-v2 .plant-history-legend .is-puf { --legend-color: var(--pd-puf); }
.plant-details-v2 .plant-history-legend .is-ucl { --legend-color: var(--pd-ucl); }
.plant-details-v2 .plant-history-legend .is-xuf { --legend-color: var(--pd-xuf); }
.plant-details-v2 .plant-history-chart-wrap { padding: clamp(8px, 1vw, 14px); }
.plant-details-v2 .history-grid line { stroke: var(--v2-ink); opacity: .1; }
.plant-details-v2 .history-grid text,
.plant-details-v2 .history-x-axis text,
.plant-details-v2 .history-axis-title { fill: var(--v2-muted); font-family: Arial, Helvetica, sans-serif; }
.plant-details-v2 .history-axis-title { font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.plant-details-v2 .history-x-axis line { stroke: var(--v2-line); }
.plant-details-v2 .history-bar { opacity: .32; }
.plant-details-v2 .history-bar.ucf { fill: var(--pd-ucf); }
.plant-details-v2 .history-bar.puf { fill: var(--pd-puf); }
.plant-details-v2 .history-bar.ucl { fill: var(--pd-ucl); }
.plant-details-v2 .plant-history-year:hover .history-bar,
.plant-details-v2 .plant-history-year:focus .history-bar,
.plant-details-v2 .plant-history-year.is-active .history-bar { opacity: 1; filter: none; }
.plant-details-v2 .plant-history-year:is(:hover, :focus, .is-active) .history-hit { fill: color-mix(in srgb, var(--story-lime) 9%, transparent); }
.plant-details-v2 .history-line.generation { stroke: var(--pd-generation); }
.plant-details-v2 .history-line.power,
.plant-details-v2 .history-uprate { stroke: var(--pd-power); }
.plant-details-v2 .history-line.xuf { stroke: var(--pd-xuf); }
.plant-details-v2 .history-uprate-label { fill: var(--pd-power); font-family: Arial, Helvetica, sans-serif; }
.nuclear-v2:not(.v2-motion-paused) .plant-details-v2 .v2-animate .history-bar { transform-box: fill-box; transform-origin: bottom; animation: pd-grow-y .6s cubic-bezier(.2, .7, .2, 1) calc(var(--i, 0) * 12ms) both; }
.nuclear-v2:not(.v2-motion-paused) .plant-details-v2 .v2-animate .history-line.generation { stroke-dasharray: 100; animation: pd-draw 1.5s ease-out .3s both; }
.nuclear-v2:not(.v2-motion-paused) .plant-details-v2 .v2-animate :is(.history-line.power, .history-line.xuf, .history-uprate, .history-uprate-label) { animation: pd-fade .6s ease-out 1.2s both; }

.plant-details-v2 .plant-history-tooltip { padding: clamp(16px, 1.6vw, 22px); }
.plant-details-v2 .history-tooltip-year { color: var(--story-lime); font-family: var(--v2-display); font-size: clamp(40px, 4vw, 62px); font-weight: 400; line-height: .85; letter-spacing: -.06em; }
.plant-details-v2 .history-tooltip-stats { gap: 1px; margin-top: 16px; overflow: hidden; border: 1px solid var(--v2-line); border-radius: 16px; background: var(--v2-line); }
.plant-details-v2 .history-tooltip-stats span { padding: 10px 12px; border: 0; border-radius: 0; background: var(--v2-paper); color: var(--v2-muted); font-size: 10px; font-weight: 700; letter-spacing: .04em; }
.plant-details-v2 .history-tooltip-stats strong { margin-bottom: 3px; color: var(--v2-ink); font-family: var(--v2-display); font-size: 15px; font-weight: 400; letter-spacing: -.02em; }
.plant-details-v2 .history-tooltip-stats .is-ucf strong { color: var(--pd-ucf); }
.plant-details-v2 .history-tooltip-stats .is-puf strong { color: var(--pd-puf); }
.plant-details-v2 .history-tooltip-stats .is-ucl strong { color: var(--pd-ucl); }
.plant-details-v2 .history-tooltip-stats .is-xuf strong { color: var(--pd-xuf); }
.plant-details-v2 .plant-history-tooltip p { margin-top: 14px; color: var(--v2-muted); font-size: 12px; }

.plant-details-v2 .plant-history-summary { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1px; padding: 0; overflow: hidden; background: var(--v2-line); }
.plant-details-v2 .plant-history-summary-cell { padding: 18px 18px 16px; border-radius: 0; background: var(--v2-paper); }
.plant-details-v2 .plant-history-summary-cell::before { inset: 0 auto auto 18px; width: 28px; height: 3px; border-radius: 0 0 3px 3px; background: var(--summary-color); }
.plant-details-v2 .plant-history-summary-cell.is-period { --summary-color: var(--v2-muted); }
.plant-details-v2 .plant-history-summary-cell.is-power { --summary-color: var(--pd-power); }
.plant-details-v2 .plant-history-summary-cell.is-generation { --summary-color: var(--pd-generation); }
.plant-details-v2 .plant-history-summary-cell.is-load { --summary-color: var(--story-lime); }
.plant-details-v2 .plant-history-summary-cell.is-ucf { --summary-color: var(--pd-ucf); }
.plant-details-v2 .plant-history-summary-cell.is-hours { --summary-color: var(--story-peach); }
.plant-details-v2 .plant-history-summary-cell span { color: var(--v2-muted); font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.plant-details-v2 .plant-history-summary-cell strong { margin-top: 8px; color: var(--v2-ink); font-family: var(--v2-display); font-size: clamp(20px, 1.8vw, 28px); font-weight: 400; line-height: .95; letter-spacing: -.04em; }
.plant-details-v2 .plant-history-summary-cell small { margin-top: 7px; font-size: 11px; }
.plant-details-v2 .plant-history-summary-note { margin: 0; padding: 12px 18px 14px; background: var(--v2-paper); color: var(--v2-muted); font-size: 11px; }

/* Core and fuel cycle */
.plant-details-v2 .plant-core-layout { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(14px, 1.6vw, 22px); }
.plant-details-v2 .plant-core-visual,
.plant-details-v2 .plant-core-facts { padding: clamp(16px, 1.8vw, 24px); }
.plant-details-v2 .core-cylinder-body {
  border-color: var(--pd-cold);
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--pd-cold) 10%, transparent), color-mix(in srgb, var(--pd-thermal) 26%, transparent), color-mix(in srgb, var(--pd-cold) 10%, transparent)),
    var(--v2-paper);
  box-shadow: inset 0 0 28px color-mix(in srgb, var(--pd-cold) 18%, transparent);
}
.plant-details-v2 .core-cylinder-body::before,
.plant-details-v2 .core-cylinder-body::after { border-color: var(--pd-cold); background: color-mix(in srgb, var(--pd-cold) 16%, var(--v2-paper)); }
.plant-details-v2 .core-cylinder-glow { background: radial-gradient(circle, color-mix(in srgb, var(--pd-thermal) 62%, transparent), transparent 70%); }
.nuclear-v2:not(.v2-motion-paused) .plant-details-v2 .core-cylinder-glow { animation: pd-glow 2.6s ease-in-out infinite alternate; }
.plant-details-v2 .core-dimension { color: var(--v2-muted); letter-spacing: .06em; }
.plant-details-v2 .core-cross-section,
.plant-details-v2 .core-height-section {
  border-color: var(--pd-cold);
  background: radial-gradient(circle, color-mix(in srgb, var(--pd-thermal) 42%, transparent), color-mix(in srgb, var(--pd-cold) 8%, transparent) 72%);
  box-shadow: inset 0 0 28px color-mix(in srgb, var(--pd-cold) 16%, transparent);
}
.plant-details-v2 .core-cross-section span,
.plant-details-v2 .core-height-section span { color: var(--v2-ink); }
.plant-details-v2 .plant-core-dimension-card > strong { font-family: var(--v2-display); font-size: 30px; font-weight: 400; letter-spacing: -.04em; }
.plant-details-v2 .core-count-card { padding: 18px; border: 1px solid var(--v2-line); border-radius: 18px; background: color-mix(in srgb, var(--v2-paper) 60%, transparent); }
.plant-details-v2 .core-count-card strong { color: var(--story-lime); font-family: var(--v2-display); font-size: clamp(36px, 3.4vw, 54px); font-weight: 400; line-height: .9; letter-spacing: -.06em; font-variant-numeric: tabular-nums; }
.plant-details-v2 .core-count-card + .core-count-card strong { color: var(--v2-ink); }
.plant-details-v2 .core-count-card span { margin-top: 10px; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.plant-details-v2 .plant-core-facts { gap: 12px; }
.plant-details-v2 .core-fact { min-height: 112px; padding: 16px 18px; border: 1px solid var(--v2-line); border-radius: 18px; background: color-mix(in srgb, var(--v2-paper) 60%, transparent); }
.plant-details-v2 .core-fact > span { font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.plant-details-v2 .core-fact > strong { margin: 10px 0 7px; color: var(--v2-ink); font-family: var(--v2-display); font-size: clamp(22px, 2.1vw, 32px); font-weight: 400; line-height: .95; letter-spacing: -.04em; overflow-wrap: anywhere; }
.plant-details-v2 .core-fact > small { font-size: 11px; }
.plant-details-v2 .core-fact.is-cycle { padding-right: 116px; }
.plant-details-v2 .core-fact.has-quality-warning { border-color: color-mix(in srgb, var(--story-peach) 60%, var(--v2-line)); }
.plant-details-v2 .pris-quality-warning { color: var(--story-peach); font-size: 10px; }
.plant-details-v2 .core-cycle-ring { right: 18px; background: conic-gradient(var(--pd-thermal) var(--cycle-share), color-mix(in srgb, var(--v2-ink) 10%, transparent) 0); }
.plant-details-v2 .core-cycle-ring.is-v2 { width: auto; height: auto; border-radius: 0; background: none; --v2-ring-size: 80px; }
.plant-details-v2 .core-cycle-ring.is-v2::after { display: none; }
.plant-details-v2 .core-cycle-ring.is-v2 span { color: var(--v2-ink); }

.plant-details-v2 .plant-details-pris-source { margin-top: clamp(18px, 2vw, 28px); padding-top: 12px; border-top-color: var(--v2-line); color: var(--v2-muted); font-size: 11px; letter-spacing: .04em; }
.plant-details-v2 .plant-details-pris-source a { color: var(--story-lime); }

@keyframes pd-enter { from { opacity: 0; translate: 0 16px; } }
@keyframes pd-draw { from { stroke-dashoffset: 100; } }
@keyframes pd-grow-y { from { transform: scaleY(0); } }
@keyframes pd-fade { from { opacity: 0; } }
@keyframes pd-glow { from { opacity: .55; } }

@media (max-width: 1100px) {
  .plant-details-v2 .plant-energy-layout,
  .plant-details-v2 .plant-circuit-layout,
  .plant-details-v2 .plant-history-layout,
  .plant-details-v2 .plant-core-layout { grid-template-columns: minmax(0, 1fr); }
  .plant-details-v2 .plant-detail-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
  .plant-details-v2 .plant-detail-facts > :is(.plant-energy-balance, .plant-detail-note) { grid-column: 1 / -1; }
  .plant-details-v2 .plant-detail-heading { grid-template-columns: auto minmax(0, 1fr); }
  .plant-details-v2 .plant-detail-heading p { grid-column: 1 / -1; justify-self: start; max-width: 720px; }
}

@media (max-width: 640px) {
  .plant-details-v2 { --pd-gutter: 12px; width: calc(100% - 12px); height: calc(100dvh - 12px); max-height: calc(100dvh - 12px); border-radius: 18px; }
  .plant-details-v2 .plant-details-dialog-bar { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 10px; padding-block: 12px 10px; }
  .plant-details-v2 .plant-details-dialog-mark,
  .plant-details-v2 .plant-details-dialog-graphic-title { display: none; }
  .plant-details-v2 .plant-details-dialog-copy { display: contents; }
  .plant-details-v2 .plant-details-dialog-eyebrow { grid-column: 1; grid-row: 1; font-size: 9.5px; letter-spacing: .12em; }
  .plant-details-v2 .plant-details-dialog-actions { grid-column: 2; grid-row: 1; gap: 6px; }
  .plant-details-v2 .plant-details-unit-nav { gap: 6px; }
  .plant-details-v2 .plant-details-dialog-bar h2,
  .plant-details-v2 .plant-details-reactor-meta { grid-column: 1 / -1; max-width: none; }
  .plant-details-v2 .plant-details-dialog-bar h2 { margin: 2px 0 0; overflow: visible; font-size: clamp(22px, 7vw, 30px); white-space: normal; }
  .plant-details-v2 .plant-details-reactor-meta { margin-top: 0; }
  .plant-details-v2 .plant-details-reactor-meta strong { font-size: 12px; }
  .plant-details-v2 .plant-details-prev-unit,
  .plant-details-v2 .plant-details-next-unit,
  .plant-details-v2 .plant-details-share,
  .plant-details-v2 .plant-details-close { width: 38px; max-width: none; height: 38px; min-height: 38px; justify-content: center; padding: 0; }
  .plant-details-v2 .plant-details-unit-copy,
  .plant-details-v2 .plant-details-share-label { display: none; }
  .plant-details-v2 .plant-details-dialog-nav { gap: 22px; }
  .plant-details-v2 .plant-details-dialog-nav .plant-details-slide-tab { min-height: 48px; }
  .plant-details-v2 .plant-details-slide-tab .plant-details-slide-tab-label { font-size: 11px; }
  .plant-details-v2 .plant-detail-graphic { padding-block: 18px 22px; }
  .plant-details-v2 .plant-detail-number { font-size: 40px; }
  .plant-details-v2 .plant-detail-heading h3 { font-size: clamp(21px, 6.4vw, 30px); }
  .plant-details-v2 .plant-sankey { height: 340px; }
  .plant-details-v2 .plant-detail-facts { grid-template-columns: minmax(0, 1fr); }
  .plant-details-v2 .plant-history-summary { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
  .plant-details-v2 .plant-core-facts { grid-template-columns: minmax(0, 1fr); }
  .plant-details-v2 .core-fact.is-cycle { padding-right: 108px; }
}
