

.art-fig .art-fig-cap .art-fig-tag-inline { font-style: italic; color: inherit; }
.art-fig details.fig-sources { margin: 6px 0 0; }
.art-fig details.fig-sources > summary {
  list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; min-height: 32px;
  font: 600 13px/1.2 var(--font-ui); color: var(--muted); background: none; border: 0; padding: 0 2px; border-radius: var(--radius-0);
}
.art-fig details.fig-sources > summary::-webkit-details-marker { display: none; }
.art-fig details.fig-sources > summary::marker { content: ""; }
.art-fig details.fig-sources > summary::before { content: "\25B8"; font-size: 10px; line-height: 1; color: inherit; }
.art-fig details.fig-sources[open] > summary::before { content: "\25BE"; }
.art-fig details.fig-sources > summary:hover,
.art-fig details.fig-sources > summary:focus-visible { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.art-fig details.fig-sources > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.art-fig details.fig-sources .fs-open { display: none; }
.art-fig details.fig-sources[open] .fs-open { display: inline; }
.art-fig details.fig-sources[open] .fs-closed { display: none; }
.art-fig details.fig-sources > summary + * { margin-top: 6px; }
.pair-article-well .art-fig details.fig-sources .art-fig-src,
.pair-article-well .art-fig details.fig-sources .art-fig-note,
.pair-article-well .art-fig details.fig-sources .art-fig-prov { font: 400 13px/1.45 var(--font-ui); color: var(--muted); }
.pair-article-well .art-fig details.fig-sources .art-fig-prov { font-size: 12px; }
@media print {
  .art-fig details.fig-sources > summary { display: none; }
  .art-fig details.fig-sources > :not(summary) { display: block !important; }
}

#tv-calc .tv-horizon { margin: 0 0 0.25rem; }
#tv-money { position: relative; }
#tv-money .tv-num-slot { position: relative; }
#tv-money #tv-mult:empty::before { content: "\00a0"; }
#tv-money .tv-past67 { position: absolute; inset: 0; margin: 0; display: flex; align-items: center; justify-content: center; text-align: center;
  font-family: var(--font-display); font-style: italic; font-size: 20px; line-height: 1.2; color: var(--accent); }
#tv-money .tv-past67[hidden] { display: none; }
#tv-money.is-past67 .tv-slim-lead,
#tv-money.is-past67 .tv-slim-tail { visibility: hidden; }

#tv-life .tv-life-head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.25rem 1rem; margin: 0 0 0.5rem; }
#tv-life .tv-age-readout { font-family: var(--font-display); font-weight: 600; font-size: 2.4rem; line-height: 1; color: var(--accent); margin: 0; font-variant-numeric: tabular-nums; min-width: 4.6ch; }
#tv-life .tv-life-head .tv-life-end { margin: 0; }
#tv-life .tv-scrub-label { margin: 0 0 0.45rem; }

#tv-life .tv-life-grid, #tv-life .tvl-cells { touch-action: pan-y; }
#tv-life .tvl-cells { user-select: none; -webkit-user-select: none; }
#tv-life .tvl-cell[data-age] { cursor: pointer; }
#tv-life .tvl-row-last .tvl-cells { grid-template-columns: repeat(11, 22px) auto; }
#tv-life .tvl-plus { border: 1px dashed color-mix(in srgb,var(--accent) 35%,transparent); background: transparent; }
#tv-life .tvl-plus.is-ahead { background: var(--grid-x); }
#tv-life .tvl-plus-label { font: 500 11px/1 var(--font-ui); color: var(--muted); align-self: center; margin-left: 2px; white-space: nowrap; }
#tv-life .tv-life-grid.is-dragging .tvl-cell { transition: none; }

#tv-life .tv-age-slider { margin: 0.9rem 0 0.4rem; min-width: 280px; }
#tv-life .tv-slider-label { display: block; margin: 0 0 0.25rem; }
#tv-life .tv-range-wrap { position: relative; padding-top: 30px; }
#tv-life .tv-thumb-age { position: absolute; top: 0; left: 11px; transform: translateX(-50%); font-family: var(--font-display); font-weight: 600; font-size: 20px; line-height: 24px; color: var(--accent); white-space: nowrap; pointer-events: none; font-variant-numeric: tabular-nums; }
#tv-life .tv-range { -webkit-appearance: none; appearance: none; display: block; width: 100%; height: 44px; margin: 0; background: transparent; cursor: pointer; touch-action: pan-y; }
#tv-life .tv-range:focus { outline: none; }

#tv-life .tv-track, #tv-life .tv-fill { position: absolute; left: 0; top: 50px; height: 4px; border-radius: var(--radius-0); pointer-events: none; }
#tv-life .tv-track { right: 0; background: var(--grid-x); }
#tv-life .tv-fill { width: calc(11px + (100% - 22px) * var(--fill, 31.63) / 100); background: var(--accent); }
#tv-life .tv-range { position: relative; z-index: 1; }
#tv-life .tv-range::-webkit-slider-runnable-track { height: 4px; background: transparent; }
#tv-life .tv-range::-moz-range-track { height: 4px; background: transparent; }
#tv-life .tv-range::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; margin-top: -9px; border-radius: 50%; background: var(--accent); border: 2px solid var(--paper); box-shadow: 0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent); }
#tv-life .tv-range::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: var(--accent); border: 2px solid var(--paper); }
#tv-life .tv-range:focus-visible::-webkit-slider-thumb { outline: 2px solid var(--accent); outline-offset: 3px; }
#tv-life .tv-range:focus-visible::-moz-range-thumb { outline: 2px solid var(--accent); outline-offset: 3px; }
#tv-life .tv-tick67 { position: absolute; bottom: 12px; height: 20px; width: 0; border-left: 1px dashed var(--grid-end); left: calc(11px + (100% - 22px) * var(--p) / 100); pointer-events: none; }
#tv-life .tv-scale { position: relative; height: 1.4em; margin: 0 11px; font: 400 12px/1.2 var(--font-ui); color: var(--muted); }
#tv-life .tv-scale-l { position: absolute; top: 0; left: calc(var(--p) * 1%); transform: translateX(-50%); white-space: nowrap; }
#tv-life .tv-scale-l.is-first { transform: translateX(-30%); }
#tv-life .tv-scale-l.is-last { transform: translateX(-70%); }
@media (prefers-reduced-motion: reduce) { #tv-life .tvl-cell { transition: none !important; } }
@media (max-width: 560px) {
  #tv-life .tvl-row-last .tvl-cells { grid-template-columns: repeat(11, 18px) auto; }
  #tv-life .tv-age-readout { font-size: 2rem; }
  #tv-life .tv-thumb-age { font-size: 18px; }
  #tv-life .tv-age-slider { min-width: 0; }
  #tv-life .tv-scale-desk { display: none; }
  #tv-life .tv-scale { height: 2.6em; }
  #tv-life .tv-scale-67 { text-align: center; }
  #tv-life .tv-scale-67 .tv-scale-sep { display: none; }
  #tv-life .tv-scale-67 .tv-scale-note { display: block; }
}

.years-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.3rem; }
.yo-chip { font: inherit; font-size: 0.85rem; padding: 0.35rem 0.8rem; min-height: 36px; border-radius: var(--radius-0); border: 1px solid var(--rule); background: var(--paper-2); color: var(--body); cursor: pointer; }
.yo-chip[aria-checked="true"] { background: var(--accent); border-color: var(--accent); color: var(--card); }
.yo-stepper { margin-top: 0.55rem; }
.yo-step-row { display: flex; align-items: center; gap: 0.4rem; }
.yo-step-row input { width: 4.5rem; text-align: center; }
.yo-step { font: inherit; min-width: 36px; min-height: 36px; border-radius: var(--radius-0); border: 1px solid var(--rule); background: var(--paper-2); cursor: pointer; }
.yo-premium { margin-top: 0.85rem; padding: 0.75rem 0.85rem; }
.yo-funding { border: 0; margin: 0.4rem 0 0; padding: 0; display: grid; gap: 0.3rem; }
.yo-funding label { display: flex; gap: 0.4rem; align-items: center; color: var(--muted); }
.yo-windfall-note { margin: 0.45rem 0 0; }
.yo-past-five { margin: -0.4rem 0 0.75rem; font-style: italic; }
.yo-run-out { margin: -0.4rem 0 0.75rem; color: var(--event-neg); font-weight: 600; }
