/* Financial Life Simulator V2 — remaining standalone calculators, Phase 9. */

body.editorial-ui.v2-foundation:has(#module-view:not([hidden]) .v2-standalone-page) {
  --v2s-paper: #f6ead7;
  --v2s-paper-pale: #fbf3e5;
  --v2s-ink: #113858;
  --v2s-accent: #744665;
  --v2s-accent-deep: #563548;
  --v2s-secondary: #2f7f7d;
  color: var(--v2s-ink);
  background-color: var(--v2s-paper);
}

body.editorial-ui.v2-foundation:has(#module-view:not([hidden]) .v2-standalone-page) .app-shell {
  width: min(1440px, calc(100% - 64px));
  overflow: visible;
}

body.editorial-ui.v2-foundation:has(#module-view:not([hidden]) .v2-standalone-page) :is(#module-view, #module-content) {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

body.editorial-ui.v2-foundation:has(#module-view:not([hidden]) .v2-standalone-page) .site-footer { display: none; }

body.editorial-ui.v2-foundation .site-header[data-profile="standalone"] {
  position: relative;
  z-index: 20;
  display: grid;
  width: calc(100% - 34px);
  height: 66px;
  min-height: 66px;
  margin-inline: 17px;
  grid-template-columns: 1fr auto;
  align-items: center;
  border-bottom: 1px solid rgba(17, 56, 88, .72);
  background: transparent;
}

body.editorial-ui.v2-foundation .site-header[data-profile="standalone"] .site-name {
  color: var(--v2s-ink);
  font-family: var(--v2-font-interface);
  font-size: 16px;
  font-weight: 800;
  letter-spacing: .015em;
  text-transform: uppercase;
}

body.editorial-ui.v2-foundation .site-header[data-profile="standalone"] .primary-nav { gap: 4px; }

body.editorial-ui.v2-foundation .site-header[data-profile="standalone"] .nav-action {
  min-height: 42px;
  padding: 9px 18px;
  border: 1px solid transparent;
  border-radius: 1px;
  color: var(--v2s-ink);
  font-family: var(--v2-font-editorial);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

body.editorial-ui.v2-foundation .site-header[data-profile="standalone"] .nav-action[aria-current="page"] {
  border-color: var(--v2s-ink);
  background: rgba(251, 243, 229, .55);
}

.v2-standalone-page {
  width: 100%;
  color: var(--v2s-ink);
  --v2s-accent: #744665;
  --v2s-accent-deep: #563548;
  --v2s-soft: rgba(116, 70, 101, .11);
}

.v2s-safety { --v2s-accent: #2f7f7d; --v2s-accent-deep: #225e5d; --v2s-soft: rgba(47, 127, 125, .12); }
.v2s-goal { --v2s-accent: #b77d27; --v2s-accent-deep: #815515; --v2s-soft: rgba(183, 125, 39, .12); }
.v2s-events { --v2s-accent: #c95833; --v2s-accent-deep: #953f27; --v2s-soft: rgba(201, 88, 51, .11); }

.v2s-hero {
  position: relative;
  width: 100vw;
  height: 330px;
  min-height: 330px;
  margin-left: calc(50% - 50vw);
  overflow: hidden;
  border-bottom: 1px solid rgba(17, 56, 88, .5);
  isolation: isolate;
}

.v2s-hero::after {
  position: absolute;
  z-index: 4;
  inset: auto 0 0;
  height: 40px;
  background: linear-gradient(to bottom, transparent, var(--v2s-paper));
  content: "";
}

.v2s-hero-copy {
  position: relative;
  z-index: 7;
  width: 54%;
  margin-left: clamp(42px, 5vw, 72px);
  padding-top: 48px;
}

.v2s-hero-copy > p {
  margin: 0 0 11px;
  color: var(--v2s-accent);
  font-family: var(--v2-font-interface);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.v2s-hero h1 {
  max-width: 690px;
  margin: 0 0 18px;
  color: var(--v2s-ink);
  font-family: var(--v2-font-editorial);
  font-size: clamp(45px, 4.6vw, 66px);
  font-weight: 400;
  letter-spacing: -.038em;
  line-height: .98;
}

.v2s-hero-copy > span {
  display: block;
  max-width: 520px;
  font-family: var(--v2-font-editorial);
  font-size: 18px;
  line-height: 1.38;
}

.v2s-word {
  position: absolute;
  z-index: 2;
  top: 7px;
  right: 42px;
  color: var(--v2s-accent);
  font-family: var(--v2-font-display);
  font-size: clamp(128px, 17vw, 205px);
  font-weight: 900;
  letter-spacing: -.05em;
  line-height: .82;
  opacity: .96;
  transform: scaleX(.84);
  transform-origin: right top;
}

.v2s-safety .v2s-word { top: 16px; font-size: clamp(105px, 14vw, 172px); }
.v2s-events .v2s-word { top: 18px; font-size: clamp(94px, 13vw, 160px); }

.v2s-hero-art {
  position: absolute;
  z-index: 1;
  right: -4%;
  bottom: -62%;
  width: 76%;
  height: 140%;
  overflow: hidden;
  opacity: .88;
  mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.18) 16%, #000 38%);
  mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.18) 16%, #000 38%);
}

.v2s-hero-art img { width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
.v2s-budget .v2s-hero-art { right: -1%; bottom: -68%; width: 100%; }
.v2s-safety .v2s-hero-art { right: -6%; bottom: -52%; width: 68%; }
.v2s-goal .v2s-hero-art { right: -2%; bottom: -66%; width: 67%; }
.v2s-events .v2s-hero-art { right: -5%; bottom: -48%; width: 64%; }

.v2s-example {
  display: flex;
  min-height: 54px;
  margin: 16px 0 10px;
  padding: 11px 16px;
  align-items: center;
  gap: 11px;
  border: 1px solid rgba(17, 56, 88, .42);
  background: rgba(251, 243, 229, .45);
}

.v2s-example svg { width: 22px; height: 22px; flex: 0 0 auto; }
.v2s-example p { margin: 0; font-size: 13px; line-height: 1.45; }
.v2s-example strong { font-family: var(--v2-font-editorial); font-size: 15px; }

.v2s-workspace {
  display: grid;
  padding: 4px 0 16px;
  grid-template-columns: minmax(285px, 31.2%) minmax(0, 68.8%);
  align-items: start;
  gap: 8px;
}

.v2s-input-panel,
.v2s-result-panel {
  min-width: 0;
  border: 1px solid rgba(17, 56, 88, .48);
  border-radius: 0;
  background: rgba(251, 243, 229, .36);
  box-shadow: none;
}

.v2s-input-panel { padding: 22px 20px 20px; }
.v2s-result-panel { padding: 22px 24px; scroll-margin-top: 18px; }
.v2s-input-panel > .panel-heading { display: none; }

.v2s-primary-fields { display: grid; }
.v2s-primary-fields > .field,
.v2s-contribution-primary {
  margin: 0;
  padding: 14px 0 15px;
  border-bottom: 1px solid rgba(17, 56, 88, .23);
}

.v2s-input-panel .field {
  display: grid;
  min-width: 0;
  color: var(--v2s-ink);
  font-family: var(--v2-font-editorial);
  font-size: 15px;
  line-height: 1.25;
  gap: 7px;
}

.v2s-input-panel .field > .field-label,
.v2s-input-panel .field > span:first-child { font-size: 15px; }

.v2s-input-panel .field-grid { display: grid; grid-template-columns: 1fr; gap: 0; }
.v2s-input-panel .input-wrap {
  display: grid;
  width: 100%;
  min-width: 0;
  min-height: 54px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  border: 1px solid rgba(17, 56, 88, .44);
  border-radius: 0;
  background: rgba(255, 250, 241, .58);
  box-shadow: none;
}

.v2s-input-panel .input-wrap:not(.prefix):not(.suffix) { grid-template-columns: minmax(0, 1fr); }
.v2s-input-panel .input-wrap.prefix:not(.suffix) { grid-template-columns: auto minmax(0, 1fr); }
.v2s-input-panel .input-wrap.suffix:not(.prefix) { grid-template-columns: minmax(0, 1fr) auto; }
.v2s-input-panel .input-wrap input,
.v2s-input-panel .input-wrap select,
.v2s-input-panel input[type="text"],
.v2s-input-panel input[type="search"] {
  width: 100%;
  min-width: 0;
  min-height: 52px;
  padding: 7px 10px;
  border: 0;
  border-radius: 0;
  outline-offset: -2px;
  background: transparent;
  color: var(--v2s-ink);
  font-family: var(--v2-font-editorial);
  font-size: 22px;
  font-variant-numeric: tabular-nums;
}

.v2s-input-panel .input-prefix,
.v2s-input-panel .input-suffix {
  display: grid;
  min-width: 36px;
  min-height: 52px;
  padding: 0 8px;
  place-items: center;
  border-right: 1px solid rgba(17, 56, 88, .22);
  color: rgba(17, 56, 88, .75);
  font-family: var(--v2-font-editorial);
  font-size: 16px;
}

.v2s-input-panel .input-suffix { min-width: 54px; border: 0; border-left: 1px solid rgba(17, 56, 88, .22); font-family: var(--v2-font-interface); font-size: 11px; font-weight: 700; }
.v2s-primary-note { margin: 12px 0 20px; color: var(--v2-ink-muted); font-size: 12px; line-height: 1.45; }

.v2s-contribution-primary > .field { padding: 0 0 10px; border: 0; }
.v2s-contribution-primary .choice-label { display: block; margin: 10px 0 6px; font-family: var(--v2-font-editorial); font-size: 14px; }
.v2s-input-panel .segmented { display: grid; grid-template-columns: repeat(var(--segments), 1fr); }
.v2s-input-panel .segment {
  min-height: 44px;
  padding: 8px 6px;
  border: 1px solid rgba(17, 56, 88, .42);
  border-radius: 0;
  background: rgba(251, 243, 229, .4);
  color: var(--v2s-ink);
  font-size: 12px;
}
.v2s-input-panel .segment + .segment { border-left: 0; }
.v2s-input-panel .segment.active,
.v2s-input-panel .segment[aria-pressed="true"] { color: #fff8e9; background: var(--v2s-accent); }

.v2s-input-panel .dollar-mode { margin: 16px 0 0; padding: 0; border: 0; }
.v2s-input-panel .dollar-mode legend { margin-bottom: 7px; font-family: var(--v2-font-editorial); font-size: 14px; }
.v2s-input-panel .dollar-mode > div { display: grid; grid-template-columns: 1fr 1fr; }
.v2s-input-panel .dollar-mode button { min-height: 44px; border: 1px solid rgba(17, 56, 88, .42); border-radius: 0; background: transparent; }
.v2s-input-panel .dollar-mode button + button { border-left: 0; }
.v2s-input-panel .dollar-mode button[aria-pressed="true"] { color: #fff8e9; background: var(--v2s-ink); }

.v2s-advanced { margin-top: 22px; border-bottom: 1px solid rgba(17, 56, 88, .35); }
.v2s-advanced > summary {
  display: grid;
  min-height: 64px;
  padding: 10px 0;
  grid-template-columns: minmax(0, 1fr) 28px;
  align-items: center;
  column-gap: 10px;
  list-style: none;
  cursor: pointer;
}
.v2s-advanced > summary::-webkit-details-marker { display: none; }
.v2s-advanced > summary > span { font-family: var(--v2-font-editorial); font-size: 18px; }
.v2s-advanced > summary > small { grid-column: 1; color: var(--v2-ink-muted); font-size: 11px; }
.v2s-advanced > summary > svg { width: 21px; height: 21px; grid-column: 2; grid-row: 1 / span 2; transition: transform var(--v2-motion-fast) ease; }
.v2s-advanced[open] > summary > svg { transform: rotate(45deg); }
.v2s-advanced .assumption-body { padding: 5px 0 18px; }
.v2s-advanced .form-section { margin: 10px 0; padding: 0; border: 0; }
.v2s-advanced .form-section-title { margin: 16px 0 6px; color: var(--v2s-accent); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.v2s-advanced .field { padding: 10px 0; border-bottom: 1px solid rgba(17, 56, 88, .16); font-size: 13px; }
.v2s-advanced .input-wrap { min-height: 44px; }
.v2s-advanced .input-wrap input,
.v2s-advanced .input-wrap select { min-height: 42px; font-size: 17px; }
.v2s-advanced .input-prefix,
.v2s-advanced .input-suffix { min-height: 42px; }
.v2s-wide { grid-column: 1 / -1; }
.v2s-input-panel .text-button { min-height: 44px; padding: 6px 2px; border: 0; color: var(--v2s-accent-deep); background: none; text-decoration: underline; cursor: pointer; }

.v2s-run {
  display: flex;
  width: 100%;
  min-height: 66px;
  margin-top: 18px;
  padding: 12px 17px;
  align-items: center;
  justify-content: space-between;
  border: 1px solid var(--v2s-accent);
  border-radius: 0;
  color: #fff8e9;
  background: var(--v2s-accent);
  font-family: var(--v2-font-display);
  font-size: 19px;
  font-weight: 800;
  letter-spacing: .025em;
  text-transform: uppercase;
  cursor: pointer;
}
.v2s-run:hover { background: var(--v2s-accent-deep); }

.v2s-result-panel :is(.result-heading, .budget-result-heading) {
  display: grid;
  min-height: 86px;
  margin: 0;
  padding: 0 0 15px;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 14px;
  border-bottom: 1px solid rgba(17, 56, 88, .5);
}
.v2s-result-panel :is(.result-heading, .budget-result-heading) .overline,
.v2s-result-panel :is(.result-heading, .budget-result-heading) > div > span:first-child { color: var(--v2s-accent); font-size: 12px; letter-spacing: .12em; }
.v2s-result-panel :is(.result-heading, .budget-result-heading) h2 { margin: 5px 0 2px; color: var(--v2s-ink); font-family: var(--v2-font-editorial); font-size: 34px; font-weight: 400; line-height: 1; }
.v2s-result-panel :is(.result-heading, .budget-result-heading) p { margin: 0; color: var(--v2-ink-muted); font-size: 12px; line-height: 1.4; }
.v2s-result-panel .simulation-badge { align-self: center; padding: 8px 10px; border-radius: 18px; color: var(--v2s-accent-deep); background: var(--v2s-soft); font-size: 11px; font-weight: 800; white-space: nowrap; }

.v2s-result-panel .hero-result,
.v2s-result-panel .budget-hero-result { padding: 22px 0 19px; border-bottom: 1px solid rgba(17, 56, 88, .4); }
.v2s-result-panel .hero-result { display: grid; grid-template-columns: 1fr 130px; align-items: center; gap: 20px; }
.v2s-result-panel .budget-hero-result { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
.v2s-result-panel .hero-result-label { color: var(--v2s-ink); font-family: var(--v2-font-interface); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.v2s-result-panel .hero-result-value,
.v2s-result-panel .budget-hero-result > strong { display: block; color: var(--v2s-accent); font-family: var(--v2-font-editorial); font-size: clamp(48px, 5vw, 68px); font-weight: 400; letter-spacing: -.04em; line-height: 1; }
.v2s-result-panel .budget-hero-result > strong small { font-size: 16px; }
.v2s-result-panel .hero-result-sub,
.v2s-result-panel .budget-hero-result > span { display: block; margin-top: 7px; color: var(--v2-ink-muted); font-size: 12px; }
.v2s-result-panel .probability-ring { width: 112px; height: 112px; }

.v2s-result-panel :is(.result-metrics, .budget-metrics, .v2s-month-range) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid rgba(17, 56, 88, .4); }
.v2s-result-panel :is(.result-metric, .budget-metrics > div, .v2s-month-range article) { min-width: 0; padding: 14px 12px; border-right: 1px solid rgba(17, 56, 88, .22); }
.v2s-result-panel :is(.result-metric, .budget-metrics > div, .v2s-month-range article):last-child { border-right: 0; }
.v2s-result-panel :is(.result-metric, .budget-metrics > div, .v2s-month-range article) > span { display: block; color: var(--v2s-ink); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.v2s-result-panel :is(.result-metric, .budget-metrics > div, .v2s-month-range article) > strong { display: block; margin: 5px 0; color: var(--v2s-secondary); font-family: var(--v2-font-editorial); font-size: 23px; font-weight: 400; line-height: 1.08; overflow-wrap: anywhere; }
.v2s-result-panel :is(.result-metric, .budget-metrics > div, .v2s-month-range article) > small { display: block; color: var(--v2-ink-muted); font-size: 11px; line-height: 1.35; }

.v2s-result-panel :is(.budget-visual-block, .chart-block, .module-decision-chart, .meter-block, .budget-tradeoff, .budget-allocation, .insight-card) { margin: 0; border-radius: 0; box-shadow: none; }
.v2s-result-panel :is(.budget-visual-block, .chart-block, .module-decision-chart) { padding: 18px 0; border-bottom: 1px solid rgba(17, 56, 88, .34); }
.v2s-result-panel :is(.budget-section-title, .chart-title, .decision-chart-heading) h3,
.v2s-result-panel :is(.budget-section-title, .chart-title, .decision-chart-heading) strong { color: var(--v2s-ink); font-family: var(--v2-font-editorial); font-size: 19px; font-weight: 400; }
.v2s-result-panel :is(.budget-chart, .chart-host, .decision-chart-host) { width: 100%; overflow: hidden; }
.v2s-result-panel :is(.budget-chart, .chart-host, .decision-chart-host) svg { display: block; width: 100%; height: auto; min-width: 0; }
.v2s-result-panel :is(.budget-chart, .chart-host, .decision-chart-host) svg text { font-size: 12px; }
.v2s-result-panel :is(.chart-interaction-hint, .decision-chart-note, .model-status) { color: var(--v2-ink-muted); font-size: 11px; line-height: 1.4; }

/* SVG hit areas must remain visually transparent. Without an explicit fill,
   SVG rects default to black and obscure the plotted series. */
.v2s-budget .budget-hover-field { fill: transparent; pointer-events: all; }
.v2s-budget .budget-hover-line { stroke: var(--v2s-secondary); stroke-width: 1; opacity: 0; }
.v2s-budget .budget-hover-point { stroke: var(--v2s-paper); stroke-width: 2; opacity: 0; }
.v2s-budget .budget-hover-point.income { fill: #0b626b; }
.v2s-budget .budget-hover-point.spending { fill: #a9431f; }
.v2s-budget .budget-hover-point.capacity { fill: var(--v2s-secondary); }
.v2s-budget .budget-chart-hover-zone:is(:hover, :focus-visible) .budget-hover-line,
.v2s-budget .budget-chart-hover-zone:is(:hover, :focus-visible) .budget-hover-point { opacity: 1; }

.v2s-calendar { padding: 18px 0; border-bottom: 1px solid rgba(17, 56, 88, .35); }
.v2s-calendar header { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.v2s-calendar header span { display: block; font-family: var(--v2-font-editorial); font-size: 19px; }
.v2s-calendar header small { display: block; color: var(--v2-ink-muted); font-family: var(--v2-font-interface); font-size: 11px; font-weight: 400; }
.v2s-calendar header > strong { color: var(--v2s-accent); font-family: var(--v2-font-editorial); font-size: 24px; font-weight: 400; }
.v2s-calendar > div { display: grid; height: 92px; margin-top: 13px; grid-template-columns: repeat(12, 1fr); align-items: end; gap: 3px; }
.v2s-calendar > div > span { display: grid; height: 100%; grid-template-rows: auto 1fr auto; align-items: end; justify-items: center; color: var(--v2s-ink); font-size: 10px; outline-offset: 2px; }
.v2s-calendar i { display: block; width: 70%; max-width: 20px; background: var(--v2s-accent); opacity: .76; }
.v2s-calendar em { margin-top: 3px; font-size: 9px; font-style: normal; }
.v2s-calendar > p { margin: 10px 0 0; color: var(--v2-ink-muted); font-size: 11px; }

.v2s-disruption-compare,
.v2s-date-sensitivity { padding: 17px 0; border-bottom: 1px solid rgba(17, 56, 88, .35); }
.v2s-disruption-compare header,
.v2s-date-sensitivity header { display: flex; justify-content: space-between; gap: 14px; }
.v2s-disruption-compare header span,
.v2s-date-sensitivity header span { font-family: var(--v2-font-editorial); font-size: 19px; }
.v2s-disruption-compare header small,
.v2s-date-sensitivity header small { color: var(--v2-ink-muted); font-size: 11px; text-align: right; }
.v2s-disruption-compare > div,
.v2s-date-sensitivity > div { display: grid; margin-top: 11px; grid-template-columns: repeat(2, 1fr); border: 1px solid rgba(17, 56, 88, .28); }
.v2s-date-sensitivity > div { grid-template-columns: repeat(3, 1fr); }
.v2s-disruption-compare article,
.v2s-date-sensitivity article { padding: 12px; border-right: 1px solid rgba(17, 56, 88, .22); }
.v2s-disruption-compare article:last-child,
.v2s-date-sensitivity article:last-child { border-right: 0; }
.v2s-disruption-compare article span,
.v2s-date-sensitivity article span { display: block; font-size: 11px; text-transform: uppercase; }
.v2s-disruption-compare article strong,
.v2s-date-sensitivity article strong { display: block; margin-top: 4px; color: var(--v2s-secondary); font-family: var(--v2-font-editorial); font-size: 20px; font-weight: 400; }
.v2s-date-sensitivity article strong small { font-size: 9px; }

.v2s-goal-breakdown { display: grid; grid-template-columns: 1fr 1fr; margin-top: 14px; border: 1px solid rgba(17, 56, 88, .35); }
.v2s-goal-breakdown article { padding: 15px 18px; border-right: 1px solid rgba(17, 56, 88, .28); }
.v2s-goal-breakdown article:last-child { border-right: 0; }
.v2s-goal-breakdown span { display: block; font-family: var(--v2-font-editorial); font-size: 16px; }
.v2s-goal-breakdown strong { display: block; margin: 3px 0; color: var(--v2s-accent); font-family: var(--v2-font-editorial); font-size: 32px; font-weight: 400; }
.v2s-goal-breakdown small { color: var(--v2-ink-muted); font-size: 11px; }
.v2s-goal-math { display: grid; margin-top: 12px; padding: 15px; grid-template-columns: 180px 1fr; align-items: center; gap: 17px; border: 1px solid var(--v2s-accent); background: var(--v2s-soft); }
.v2s-goal-math > div { padding-right: 15px; border-right: 1px solid rgba(17, 56, 88, .25); }
.v2s-goal-math span { display: block; font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.v2s-goal-math strong { display: block; color: var(--v2s-accent-deep); font-family: var(--v2-font-editorial); font-size: 34px; font-weight: 400; }
.v2s-goal-math small,
.v2s-goal-math p { color: var(--v2-ink-muted); font-size: 11px; line-height: 1.45; }

.v2s-result-panel .result-actions { margin-top: 16px; }
.v2s-result-panel .result-actions .primary-button {
  min-height: 54px;
  padding: 11px 18px;
  border: 1px solid var(--v2s-ink);
  border-radius: 0;
  color: #fff8e9;
  background: var(--v2s-ink);
  font-family: var(--v2-font-editorial);
  font-size: 16px;
}
.v2s-result-panel .result-actions .primary-button[aria-pressed="true"] { border-color: var(--v2s-secondary); background: var(--v2s-secondary); }
.v2s-result-panel .insight-card { margin-top: 14px; padding: 15px 17px; border: 1px solid rgba(47, 127, 125, .55); background: rgba(47, 127, 125, .09); }
.v2s-result-panel .insight-card h3 { margin: 5px 0; font-family: var(--v2-font-editorial); font-size: 20px; font-weight: 400; }

.v2s-result-panel .budget-tradeoff { display: grid; margin-top: 14px; padding: 14px; grid-template-columns: 1.1fr .8fr .8fr 1fr; gap: 10px; border: 1px solid rgba(17, 56, 88, .3); background: rgba(116, 70, 101, .05); }
.v2s-result-panel .budget-tradeoff h3 { margin: 4px 0 0; font-family: var(--v2-font-editorial); font-size: 16px; font-weight: 400; }
.v2s-result-panel .budget-tradeoff label { font-size: 10px; font-weight: 800; }
.v2s-result-panel .budget-tradeoff input { width: 100%; min-height: 42px; margin-top: 5px; padding: 6px; border: 1px solid rgba(17, 56, 88, .35); background: var(--v2s-paper-pale); }
.v2s-result-panel .budget-tradeoff small { display: block; color: var(--v2-ink-muted); font-size: 10px; line-height: 1.35; }
.v2s-result-panel .budget-allocation { margin-top: 12px; border: 1px solid rgba(17, 56, 88, .32); }
.v2s-result-panel .budget-allocation > summary {
  display: grid;
  min-height: 64px;
  padding: 10px 12px;
  grid-template-columns: minmax(0, 1fr) auto 18px;
  align-items: center;
  gap: 12px;
  font-family: var(--v2-font-editorial);
  list-style: none;
  cursor: pointer;
}
.v2s-result-panel .budget-allocation > summary::-webkit-details-marker { display: none; }
.v2s-result-panel .budget-allocation > summary::after { color: var(--v2s-accent); font-family: var(--v2-font-display); font-size: 20px; content: "+"; }
.v2s-result-panel .budget-allocation[open] > summary::after { content: "−"; }
.v2s-result-panel .budget-allocation > summary > span { display: grid; min-width: 0; gap: 3px; }
.v2s-result-panel .budget-allocation > summary b { font-size: 16px; font-weight: 400; line-height: 1.2; }
.v2s-result-panel .budget-allocation > summary small { color: var(--v2-ink-muted); font-family: var(--v2-font-interface); font-size: 11px; line-height: 1.35; }
.v2s-result-panel .budget-allocation > summary > strong { color: var(--v2s-secondary); font-family: var(--v2-font-interface); font-size: 11px; white-space: nowrap; }

.v2s-mechanism {
  display: grid;
  margin-top: 9px;
  grid-template-columns: 165px minmax(0, 1fr);
  min-height: 170px;
  border: 1px solid rgba(17, 56, 88, .48);
  background: rgba(251, 243, 229, .45);
}
.v2s-mechanism picture { display: block; overflow: hidden; border-right: 1px solid rgba(17, 56, 88, .28); }
.v2s-mechanism img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; }
.v2s-mechanism > div { padding: 18px 20px; }
.v2s-mechanism > div > p:first-child { margin: 0 0 5px; color: var(--v2s-accent); font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.v2s-mechanism h3 { margin: 0 0 6px; font-family: var(--v2-font-editorial); font-size: 23px; font-weight: 400; }
.v2s-mechanism p { margin: 0 0 9px; font-size: 12px; line-height: 1.45; }
.v2s-mechanism a { color: var(--v2s-ink); font-size: 12px; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }

.v2s-learning { display: grid; margin-top: 8px; grid-template-columns: 1fr 1fr; border-block: 1px solid rgba(17, 56, 88, .55); }
.v2s-learning .learning-card { margin: 0; padding: 19px 22px; border: 0; border-right: 1px solid rgba(17, 56, 88, .28); border-radius: 0; background: transparent; box-shadow: none; }
.v2s-learning .learning-card:last-child { border-right: 0; }
.v2s-learning .learning-card h3 { margin: 4px 0; font-family: var(--v2-font-editorial); font-size: 19px; font-weight: 400; }
.v2s-learning .learning-card p { font-size: 11px; line-height: 1.45; }
.v2s-boundary { display: flex; min-height: 58px; padding: 13px 2px 26px; align-items: center; justify-content: space-between; gap: 18px; font-size: 11px; }
.v2s-boundary a { color: var(--v2s-ink); text-decoration: underline; text-underline-offset: 3px; }

/* Life Events keeps a collection in the input column rather than pretending it is four scalar fields. */
.v2s-events .event-library { margin: 0; padding: 0; border: 0; }
.v2s-events .event-library-top { display: grid; grid-template-columns: 1fr; gap: 10px; }
.v2s-events .event-library-top h3 { margin: 4px 0 0; font-family: var(--v2-font-editorial); font-size: 25px; font-weight: 400; }
.v2s-events .event-preset-grid { display: grid; grid-template-columns: 1fr; }
.v2s-events .event-preset { border: 0; border-bottom: 1px solid rgba(17, 56, 88, .22); border-radius: 0; background: transparent; }
.v2s-events .event-preset-primary {
  display: grid;
  width: 100%;
  min-height: 84px;
  padding: 9px 0;
  grid-template-columns: 36px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 9px;
  color: var(--v2s-ink);
  border: 0;
  background: transparent;
  text-align: left;
}
.v2s-events .event-preset-mark {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  color: var(--v2s-paper);
  border-radius: 50%;
  background: var(--v2s-accent);
}
.v2s-events .event-preset:nth-child(2n) .event-preset-mark { background: var(--v2s-secondary); }
.v2s-events .event-preset:nth-child(3n) .event-preset-mark { background: #b44a26; }
.v2s-events .event-preset-mark svg { width: 20px; height: 20px; }
.v2s-events .event-preset-copy { display: grid; min-width: 0; gap: 2px; }
.v2s-events .event-preset-copy small {
  color: var(--v2s-accent);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1.1;
  text-transform: uppercase;
}
.v2s-events .event-preset-copy strong { font-family: var(--v2-font-editorial); font-size: 17px; font-weight: 400; line-height: 1.08; }
.v2s-events .event-preset-copy em { color: var(--v2-ink-muted); font-size: 10px; font-style: normal; line-height: 1.35; }
.v2s-events .event-preset-arrow { color: var(--v2s-accent); }
.v2s-events .event-preset-arrow svg { width: 15px; height: 15px; }
.v2s-events .event-preset .reference-button { width: calc(100% - 45px); min-height: 28px; margin: -3px 0 8px 45px; }
.v2s-events .event-preset-primary:is(:hover, :focus-visible) { background: rgba(17, 56, 88, .045); }
.v2s-events .event-library-more > summary { min-height: 48px; padding: 10px 0; }
.v2s-events .event-timeline { margin-top: 18px; }
.v2s-events .event-item { border: 1px solid rgba(17, 56, 88, .28); border-radius: 0; background: rgba(251, 243, 229, .45); }
.v2s-events .event-item + .event-item { margin-top: 6px; }
.v2s-events .event-item-main { min-height: 60px; }
.v2s-events .event-item-actions button { min-height: 44px; }
.v2s-events .event-editor { margin-top: 14px; border-radius: 0; box-shadow: none; }
.v2s-events .sticky-add-event { position: static; }
.v2s-events .event-baseline-disclosure { margin: 0; }
.v2s-events .v2s-result-panel { min-height: 650px; }

@media (min-width: 1180px) {
  .v2s-input-panel { position: sticky; top: 10px; }
}

@media (max-width: 900px) {
  body.editorial-ui.v2-foundation:has(#module-view:not([hidden]) .v2-standalone-page) .app-shell { width: min(100% - 28px, 820px); }
  body.editorial-ui.v2-foundation .site-header[data-profile="standalone"] { width: 100%; margin-inline: 0; grid-template-columns: 1fr; height: auto; padding: 12px 0; gap: 7px; }
  body.editorial-ui.v2-foundation .site-header[data-profile="standalone"] .primary-nav { display: grid; grid-template-columns: repeat(4, 1fr); width: 100%; }
  body.editorial-ui.v2-foundation .site-header[data-profile="standalone"] .nav-action { padding: 8px 4px; font-size: 12px; }
  .v2s-hero { height: 300px; min-height: 300px; }
  .v2s-hero-copy { width: 68%; margin-left: 28px; padding-top: 38px; }
  .v2s-hero h1 { font-size: 43px; }
  .v2s-word { right: 12px; font-size: 112px; }
  .v2s-workspace { min-width: 0; grid-template-columns: minmax(0, 1fr); }
  .v2s-input-panel,
  .v2s-output-column,
  .v2s-result-panel,
  .v2s-mechanism { width: 100%; max-width: 100%; min-width: 0; }
  .v2s-input-panel { position: static; overflow: hidden; }
  .v2s-result-panel { min-height: 0; }
}

@media (max-width: 560px) {
  body.editorial-ui.v2-foundation:has(#module-view:not([hidden]) .v2-standalone-page) .app-shell { width: min(100% - 20px, 520px); }
  body.editorial-ui.v2-foundation .site-header[data-profile="standalone"] .site-name { font-size: 14px; }
  body.editorial-ui.v2-foundation .site-header[data-profile="standalone"] .primary-nav { grid-template-columns: 1fr 1fr; }
  .v2s-hero { height: 390px; min-height: 390px; }
  .v2s-hero-copy { width: calc(100% - 42px); margin-left: 20px; padding-top: 28px; }
  .v2s-hero h1 { max-width: 10ch; font-size: 42px; }
  .v2s-hero-copy > span { max-width: 24ch; font-size: 16px; }
  .v2s-word, .v2s-safety .v2s-word, .v2s-events .v2s-word { top: 246px; right: 0; font-size: 78px; }
  .v2s-hero-art, .v2s-budget .v2s-hero-art, .v2s-safety .v2s-hero-art, .v2s-goal .v2s-hero-art, .v2s-events .v2s-hero-art { right: -34%; bottom: -34%; width: 145%; height: 90%; }
  .v2s-input-panel, .v2s-result-panel { padding: 18px 14px; }
  .v2s-result-panel :is(.result-heading, .budget-result-heading) { grid-template-columns: 1fr; }
  .v2s-result-panel .hero-result { grid-template-columns: 1fr; }
  .v2s-result-panel .budget-hero-result { display: block; }
  .v2s-result-panel :is(.result-metrics, .budget-metrics, .v2s-month-range) { grid-template-columns: 1fr; }
  .v2s-result-panel :is(.result-metric, .budget-metrics > div, .v2s-month-range article) { border-right: 0; border-bottom: 1px solid rgba(17, 56, 88, .2); }
  .v2s-result-panel :is(.budget-chart, .chart-host, .decision-chart-host, .event-chart-host) { width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
  .v2s-result-panel :is(.budget-chart, .chart-host, .decision-chart-host) svg { min-width: 620px; }
  .v2s-result-panel .budget-tradeoff { grid-template-columns: 1fr; }
  .v2s-calendar > div { overflow-x: auto; grid-template-columns: repeat(12, 42px); }
  .v2s-goal-breakdown, .v2s-goal-math, .v2s-mechanism, .v2s-learning { grid-template-columns: 1fr; }
  .v2s-goal-breakdown article, .v2s-mechanism picture, .v2s-learning .learning-card { border-right: 0; border-bottom: 1px solid rgba(17, 56, 88, .25); }
  .v2s-goal-math > div { padding: 0 0 10px; border: 0; border-bottom: 1px solid rgba(17, 56, 88, .25); }
  .v2s-date-sensitivity > div { grid-template-columns: 1fr; }
  .v2s-date-sensitivity article { border-right: 0; border-bottom: 1px solid rgba(17, 56, 88, .2); }
  .v2s-boundary { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .v2s-advanced > summary > svg { transition: none; }
}

@media print {
  body.editorial-ui.v2-foundation .site-header,
  .v2s-hero,
  .v2s-example,
  .v2s-input-panel,
  .v2s-mechanism,
  .v2s-learning,
  .v2s-boundary { display: none !important; }
  .v2s-workspace { display: block; padding: 0; }
  .v2s-result-panel { border: 0; }
}
